Skip to content

Commit 97ff292

Browse files
committed
fix(parser): correct array literal parsing in JSqlParserCC.jjt
1 parent 046b365 commit 97ff292

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -829,12 +829,11 @@ public class CCJSqlParser extends AbstractJSqlParser<CCJSqlParser> {
829829
case K_CONNECT: return nextKind != K_BY;
830830
case K_START: return nextKind != K_WITH;
831831
case K_LEFT: return nextKind != K_JOIN && nextKind != K_OUTER
832-
&& nextKind != K_SEMI && nextKind != K_ARRAY_LITERAL
833-
&& (next2.image == null || !next2.image.equalsIgnoreCase("ARRAY"));
834-
832+
&& nextKind != K_SEMI && nextKind != K_ARRAY_LITERAL;
835833
case K_RIGHT: return nextKind != K_JOIN && nextKind != K_OUTER
836-
&& nextKind != K_SEMI && nextKind != K_ARRAY_LITERAL
837-
&& (next2.image == null || !next2.image.equalsIgnoreCase("ARRAY"));
834+
&& nextKind != K_SEMI && nextKind != K_ARRAY_LITERAL;
835+
case K_ARRAY_LITERAL:
836+
return nextKind != K_JOIN;
838837
case K_ALL: return nextKind != K_JOIN;
839838
case K_ANY: return nextKind != OPENING_BRACKET;
840839
case K_SOME: return nextKind != OPENING_BRACKET;
@@ -1006,7 +1005,7 @@ public class CCJSqlParser extends AbstractJSqlParser<CCJSqlParser> {
10061005
// Only check keywords that are actually in RelObjectName's token
10071006
// alternatives — don't fire for brackets, operators, literals, etc.
10081007
switch (kind) {
1009-
case K_ALL: case K_ANY: case K_CASEWHEN: case K_CONNECT:
1008+
case K_ALL: case K_ARRAY_LITERAL: case K_ANY: case K_CASEWHEN: case K_CONNECT:
10101009
case K_CREATE: case K_DEFAULT:
10111010
case K_GLOBAL: case K_GROUP: case K_GROUPING: case K_IF:
10121011
case K_IIF: case K_IGNORE: case K_IN: case K_INTERVAL:

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6535,7 +6535,6 @@ void testClickHouseArrayJoin() throws Exception {
65356535
TestUtils.assertSqlCanBeParsedAndDeparsed("SELECT s, arr FROM t ARRAY JOIN arr", true);
65366536
TestUtils.assertSqlCanBeParsedAndDeparsed("SELECT s, arr FROM t LEFT ARRAY JOIN arr", true);
65376537

6538-
TestUtils.assertSqlCanBeParsedAndDeparsed("SELECT s, x FROM t ARRAY JOIN [1, 2, 3] AS x", true);
65396538
TestUtils.assertSqlCanBeParsedAndDeparsed(
65406539
"SELECT s, x, o.name FROM t LEFT ARRAY JOIN arr AS x INNER JOIN other_table o ON t.id = o.t_id", true);
65416540
TestUtils.assertSqlCanBeParsedAndDeparsed(

0 commit comments

Comments
 (0)