Skip to content

Commit 22f8390

Browse files
committed
fixes #30
1 parent 4ebb568 commit 22f8390

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,8 +1191,14 @@ Expression InExpression() :
11911191

11921192
}
11931193
{
1194-
( LOOKAHEAD(3) leftExpression=SimpleExpression() { result.setLeftExpression(leftExpression); }
1195-
| "(" leftItemsList = SimpleExpressionList() { result.setLeftItemsList(leftItemsList); } ")"
1194+
( LOOKAHEAD(1) "(" (
1195+
LOOKAHEAD(SimpleExpressionList()) leftItemsList = SimpleExpressionList() { result.setLeftItemsList(leftItemsList); }
1196+
|
1197+
leftExpression=SimpleExpression()
1198+
)
1199+
")"
1200+
|
1201+
leftExpression=SimpleExpression() { result.setLeftExpression(leftExpression); }
11961202
)
11971203
[<K_NOT> { result.setNot(true); } ] <K_IN> "(" (LOOKAHEAD(SubSelect()) rightItemsList=SubSelect() | rightItemsList=SimpleExpressionList() ) ")"
11981204
{

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,4 +989,9 @@ public void testMultiValueIn() throws JSQLParserException {
989989
String stmt = "SELECT * FROM mytable WHERE (a, b, c) IN (SELECT a, b, c FROM mytable2)";
990990
assertSqlCanBeParsedAndDeparsed(stmt);
991991
}
992+
993+
public void testMultiValueIn2() throws JSQLParserException {
994+
String stmt = "SELECT * FROM mytable WHERE (trim(a), trim(b)) IN (SELECT a, b FROM mytable2)";
995+
assertSqlCanBeParsedAndDeparsed(stmt);
996+
}
992997
}

0 commit comments

Comments
 (0)