Skip to content

Commit b85dc2f

Browse files
feat: allow EXTRACT to be parsed as regular function also
- fixes object_access01.sql - fixes #1992 Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
1 parent a38581a commit b85dc2f

4 files changed

Lines changed: 19 additions & 3 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4346,7 +4346,7 @@ Expression PrimaryExpression() #PrimaryExpression:
43464346

43474347
| LOOKAHEAD(2, {!interrupted}) retval=NumericBind()
43484348

4349-
| LOOKAHEAD(3, {!interrupted}) retval=ExtractExpression()
4349+
| LOOKAHEAD( ExtractExpression() , {!interrupted}) retval=ExtractExpression()
43504350

43514351
| LOOKAHEAD(3) retval=MySQLGroupConcat()
43524352

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package net.sf.jsqlparser.expression;
2+
3+
import net.sf.jsqlparser.JSQLParserException;
4+
import net.sf.jsqlparser.test.TestUtils;
5+
import org.junit.jupiter.api.Test;
6+
7+
class ExtractExpressionTest {
8+
9+
@Test
10+
void testRegularFunctionCall() throws JSQLParserException {
11+
String sqlStr = "select extract(engine_full, '''(.*?)''')";
12+
TestUtils.assertSqlCanBeParsedAndDeparsed(sqlStr, true);
13+
14+
}
15+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public class SpecialOracleTest {
9999
"join21.sql", "keywordasidentifier01.sql", "keywordasidentifier02.sql",
100100
"keywordasidentifier03.sql", "keywordasidentifier04.sql", "keywordasidentifier05.sql",
101101
"lexer02.sql", "lexer03.sql", "lexer04.sql", "lexer05.sql", "like01.sql", "merge01.sql",
102-
"merge02.sql", "merge03.sql", "merge04.sql", "order_by01.sql", "order_by02.sql",
102+
"merge02.sql", "merge03.sql", "merge04.sql", "object_access01.sql", "order_by01.sql", "order_by02.sql",
103103
"order_by03.sql", "order_by04.sql",
104104
"order_by05.sql", "order_by06.sql", "pivot01.sql", "pivot02.sql", "pivot03.sql",
105105
"pivot04.sql", "pivot05.sql", "pivot06.sql", "pivot07.sql", "pivot07_Parenthesis.sql",

src/test/resources/net/sf/jsqlparser/statement/select/oracle-tests/object_access01.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ table
2626
) t
2727

2828

29-
--@FAILURE: Encountered unexpected token: "(" "(" recorded first on Aug 3, 2021, 7:20:07 AM
29+
--@FAILURE: Encountered unexpected token: "(" "(" recorded first on Aug 3, 2021, 7:20:07 AM
30+
--@SUCCESSFULLY_PARSED_AND_DEPARSED first on 16 Apr 2024, 12:57:31

0 commit comments

Comments
 (0)