Skip to content

Commit f154446

Browse files
committed
refactored join processor to be more restrictive
1 parent 531d617 commit f154446

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ Join JoinerExpression():
10051005
cross join
10061006
natural join
10071007
*/
1008-
[ (
1008+
/* [ (
10091009
<K_LEFT> { join.setLeft(true); }
10101010
| <K_RIGHT> { join.setRight(true); }
10111011
| <K_FULL> { join.setFull(true); }
@@ -1019,7 +1019,14 @@ Join JoinerExpression():
10191019
<K_OUTER> { join.setOuter(true); }
10201020
| <K_INNER> { join.setInner(true); }
10211021
)
1022-
]
1022+
] */
1023+
1024+
[ ( <K_LEFT> { join.setLeft(true); }
1025+
| <K_RIGHT> { join.setRight(true); }
1026+
| <K_FULL> { join.setFull(true); } ) [ <K_OUTER> { join.setOuter(true); } ]
1027+
| <K_INNER> { join.setInner(true); }
1028+
| <K_NATURAL> { join.setNatural(true); }
1029+
| <K_CROSS> { join.setCross(true); } ]
10231030

10241031
( <K_JOIN> | "," { join.setSimple(true); } ) right=FromItem()
10251032
[

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ public void testJoin() throws JSQLParserException {
473473
statement = "SELECT * FROM tab1 RIGHT OUTER JOIN tab2 USING (id, id2)";
474474
assertSqlCanBeParsedAndDeparsed(statement);
475475

476-
statement = "SELECT * FROM foo AS f LEFT INNER JOIN (bar AS b RIGHT OUTER JOIN baz AS z ON f.id = z.id) ON f.id = b.id";
476+
statement = "SELECT * FROM foo AS f LEFT OUTER JOIN (bar AS b RIGHT OUTER JOIN baz AS z ON f.id = z.id) ON f.id = b.id";
477477
select = (Select) parserManager.parse(new StringReader(statement));
478478
assertStatementCanBeDeparsedAs(select, statement);
479479

0 commit comments

Comments
 (0)