Skip to content

Commit ab2ab73

Browse files
committed
allow more complex expressions in extract clause
1 parent 8562d78 commit ab2ab73

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,7 @@ ExtractExpression ExtractExpression() :
15551555
"("
15561556
token=<S_IDENTIFIER> { retval.setName(token.image); }
15571557
<K_FROM>
1558-
expr=PrimaryExpression() { retval.setExpression(expr); }
1558+
expr=SimpleExpression() { retval.setExpression(expr); }
15591559
")"
15601560
{
15611561
return retval;

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,16 @@ public void testExtractFrom2() throws JSQLParserException {
763763
String stmt = "SELECT EXTRACT(year FROM now()) FROM testtable";
764764
assertSqlCanBeParsedAndDeparsed(stmt);
765765
}
766+
767+
public void testExtractFrom3() throws JSQLParserException {
768+
String stmt = "SELECT EXTRACT(year FROM (now() - 2)) FROM testtable";
769+
assertSqlCanBeParsedAndDeparsed(stmt);
770+
}
771+
772+
public void testExtractFrom4() throws JSQLParserException {
773+
String stmt = "SELECT EXTRACT(minutes FROM now() - '01:22:00') FROM testtable";
774+
assertSqlCanBeParsedAndDeparsed(stmt);
775+
}
766776

767777
public void testProblemFunction() throws JSQLParserException {
768778
String stmt = "SELECT test() FROM testtable";

0 commit comments

Comments
 (0)