Skip to content

Commit b3d91de

Browse files
committed
fixes #117
1 parent f194b7c commit b3d91de

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,7 +1345,7 @@ Expression RegularCondition():
13451345
[ <K_NOT> { not = true; } ]
13461346
leftExpression=ComparisonItem() { result = leftExpression; }
13471347

1348-
[ "(+)" { oracleJoin=EqualsTo.ORACLE_JOIN_RIGHT; } ]
1348+
[ "(" "+" ")" { oracleJoin=EqualsTo.ORACLE_JOIN_RIGHT; } ]
13491349

13501350
(
13511351
">" { result = new GreaterThan(); }
@@ -1365,7 +1365,7 @@ Expression RegularCondition():
13651365
rightExpression=ComparisonItem()
13661366

13671367
[ <K_PRIOR> { oraclePrior = EqualsTo.ORACLE_PRIOR_END; } ]
1368-
[ "(+)" { oracleJoin=EqualsTo.ORACLE_JOIN_LEFT; } ]
1368+
[ "(" "+" ")" { oracleJoin=EqualsTo.ORACLE_JOIN_LEFT; } ]
13691369

13701370
{
13711371
BinaryExpression regCond = (BinaryExpression) result;
@@ -1411,12 +1411,12 @@ Expression InExpression() :
14111411
LOOKAHEAD(SimpleExpressionList()) leftItemsList = SimpleExpressionList() { result.setLeftItemsList(leftItemsList); }
14121412
|
14131413
leftExpression=SimpleExpression()
1414-
[ "(+)" { result.setOldOracleJoinSyntax(EqualsTo.ORACLE_JOIN_RIGHT); } ]
1414+
[ "(" "+" ")" { result.setOldOracleJoinSyntax(EqualsTo.ORACLE_JOIN_RIGHT); } ]
14151415
)
14161416
")"
14171417
|
14181418
leftExpression=SimpleExpression() { result.setLeftExpression(leftExpression); }
1419-
[ "(+)" { result.setOldOracleJoinSyntax(EqualsTo.ORACLE_JOIN_RIGHT); } ]
1419+
[ "(" "+" ")" { result.setOldOracleJoinSyntax(EqualsTo.ORACLE_JOIN_RIGHT); } ]
14201420
)
14211421
[<K_NOT> { result.setNot(true); } ] <K_IN> "(" (LOOKAHEAD(SubSelect()) rightItemsList=SubSelect() | rightItemsList=SimpleExpressionList() ) ")"
14221422
{

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,20 @@ public void testOracleJoin2() throws JSQLParserException {
12141214
assertSqlCanBeParsedAndDeparsed(stmt);
12151215
}
12161216

1217+
public void testOracleJoin2_1() throws JSQLParserException {
1218+
String[] values = new String[]{"(+)", "( +)", "(+ )", "( + )"," (+) "};
1219+
for (String value : values) {
1220+
assertSqlCanBeParsedAndDeparsed("SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.a" + value + " = tabelle2.b", true);
1221+
}
1222+
}
1223+
1224+
public void testOracleJoin2_2() throws JSQLParserException {
1225+
String[] values = new String[]{"(+)", "( +)", "(+ )", "( + )"," (+) "};
1226+
for (String value : values) {
1227+
assertSqlCanBeParsedAndDeparsed("SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.a = tabelle2.b" + value, true);
1228+
}
1229+
}
1230+
12171231
public void testOracleJoin3() throws JSQLParserException {
12181232
String stmt = "SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.a(+) > tabelle2.b";
12191233
assertSqlCanBeParsedAndDeparsed(stmt);
@@ -1600,9 +1614,9 @@ public void testReservedKeyword() throws JSQLParserException {
16001614
final Select select = (Select) parserManager.parse(new StringReader(statement));
16011615
assertStatementCanBeDeparsedAs(select, statement);
16021616
}
1603-
1604-
public void testReservedKeyword2() throws JSQLParserException {
1605-
final String stmt = "SELECT open FROM tableName";
1617+
1618+
public void testReservedKeyword2() throws JSQLParserException {
1619+
final String stmt = "SELECT open FROM tableName";
16061620
assertSqlCanBeParsedAndDeparsed(stmt);
16071621
}
16081622

@@ -1647,15 +1661,15 @@ public void testSelectOracleColl() throws JSQLParserException {
16471661
public void testSelectInnerWith() throws JSQLParserException {
16481662
assertSqlCanBeParsedAndDeparsed("SELECT * FROM (WITH actor AS (SELECT 'a' aid FROM DUAL) SELECT aid FROM actor)");
16491663
}
1650-
1664+
16511665
public void testSelectWithinGroup() throws JSQLParserException {
16521666
assertSqlCanBeParsedAndDeparsed("SELECT LISTAGG(col1, '##') WITHIN GROUP (ORDER BY col1) FROM table1");
16531667
}
1654-
1668+
16551669
public void testSelectUserVariable() throws JSQLParserException {
16561670
assertSqlCanBeParsedAndDeparsed("SELECT @col FROM t1");
16571671
}
1658-
1672+
16591673
public void testSelectNumericBind() throws JSQLParserException {
16601674
assertSqlCanBeParsedAndDeparsed("SELECT a FROM b WHERE c = :1");
16611675
}

0 commit comments

Comments
 (0)