Skip to content

Commit

Permalink
fixes #69
Browse files Browse the repository at this point in the history
  • Loading branch information
wumpz committed May 10, 2015
1 parent 536ba9d commit 35164e5
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
*/
public class IntervalExpression implements Expression {
private String parameter = null;
private String intervalType = null;

public String getParameter() {
return parameter;
Expand All @@ -35,10 +36,18 @@ public String getParameter() {
public void setParameter(String parameter) {
this.parameter = parameter;
}

public String getIntervalType() {
return intervalType;
}

public void setIntervalType(String intervalType) {
this.intervalType = intervalType;
}

@Override
public String toString() {
return "INTERVAL " + parameter;
return "INTERVAL " + parameter + (intervalType!=null?" " + intervalType:"");
}

@Override
Expand Down
1 change: 1 addition & 0 deletions src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj
Original file line number Diff line number Diff line change
Expand Up @@ -1880,6 +1880,7 @@ IntervalExpression IntervalExpression() : {
}
{
<K_INTERVAL> token=<S_CHAR_LITERAL> { interval.setParameter(token.image); }
[ LOOKAHEAD(2) token = <S_IDENTIFIER> { interval.setIntervalType(token.image); } ]
{
return interval;
}
Expand Down
5 changes: 5 additions & 0 deletions src/test/java/net/sf/jsqlparser/test/select/SelectTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -1460,6 +1460,11 @@ public void testInterval2() throws JSQLParserException {

assertEquals("'45 MINUTE'", iexpr.getParameter());
}

public void testInterval3() throws JSQLParserException {
String stmt = "SELECT 5 + INTERVAL '3' day";
assertSqlCanBeParsedAndDeparsed(stmt);
}

public void testMultiValueIn() throws JSQLParserException {
String stmt = "SELECT * FROM mytable WHERE (a, b, c) IN (SELECT a, b, c FROM mytable2)";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public void testAllSqlsParseDeparse() throws IOException {
}

LOG.log(Level.INFO, "tested {0} files. got {1} correct parse results", new Object[]{count, success});
assertTrue(success>=127);
assertTrue(success>=128);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
select interval'20' day - interval'240' hour from dual
select interval '20' day - interval '240' hour from dual

0 comments on commit 35164e5

Please sign in to comment.