Skip to content

Commit ebac9db

Browse files
tomershaywumpz
authored andcommitted
Adding support for simple expressions in INTERVAL expressions (#910)
1 parent aba6f3a commit ebac9db

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3102,7 +3102,7 @@ IntervalExpression IntervalExpression() : {
31023102
{
31033103

31043104
{ interval = new IntervalExpression(); }
3105-
<K_INTERVAL> ["-" {signed=true;}] (token=<S_LONG> | token=<S_DOUBLE> | token=<S_CHAR_LITERAL> | expr = Column())
3105+
<K_INTERVAL> ["-" {signed=true;}] (token=<S_LONG> | token=<S_DOUBLE> | token=<S_CHAR_LITERAL> | expr = SimpleExpression())
31063106
{
31073107
if (expr != null) {
31083108
if (signed) expr = new SignedExpression('-', expr);

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,6 +1322,11 @@ public void testIssue862CaseWhenConcat() throws JSQLParserException {
13221322
assertSqlCanBeParsedAndDeparsed("SELECT c1, CASE c1 || c2 WHEN '091' THEN '2' ELSE '1' END AS c11 FROM T2");
13231323
}
13241324

1325+
@Test
1326+
public void testExpressionsInIntervalExpression() throws JSQLParserException {
1327+
assertSqlCanBeParsedAndDeparsed("SELECT DATE_SUB(mydate, INTERVAL DAY(anotherdate) - 1 DAY) FROM tbl");
1328+
}
1329+
13251330
@Test
13261331
public void testReplaceAsFunction() throws JSQLParserException {
13271332
String statement = "SELECT REPLACE(a, 'b', c) FROM tab1";

0 commit comments

Comments
 (0)