@@ -7643,9 +7643,6 @@ public void visitInListPredicate(InListPredicate inListPredicate) {
7643
7643
.getExpressions ().get ( 0 );
7644
7644
}
7645
7645
else if ( !dialect .supportsRowValueConstructorSyntaxInInList () ) {
7646
- final ComparisonOperator comparisonOperator = inListPredicate .isNegated () ?
7647
- ComparisonOperator .NOT_EQUAL :
7648
- ComparisonOperator .EQUAL ;
7649
7646
// Some DBs like Oracle support tuples only for the IN subquery predicate
7650
7647
if ( dialect .supportsRowValueConstructorSyntaxInInSubQuery () && dialect .supportsUnionAll () ) {
7651
7648
inListPredicate .getTestExpression ().accept ( this );
@@ -7664,20 +7661,20 @@ else if ( !dialect.supportsRowValueConstructorSyntaxInInList() ) {
7664
7661
appendSql ( CLOSE_PARENTHESIS );
7665
7662
}
7666
7663
else {
7667
- if ( inListPredicate .isNegated ()) {
7668
- appendSql ( "not " );
7669
- }
7664
+ final ComparisonOperator tupleComparisonOperator = inListPredicate .isNegated () ?
7665
+ ComparisonOperator . NOT_EQUAL :
7666
+ ComparisonOperator . EQUAL ;
7670
7667
appendSql ( OPEN_PARENTHESIS );
7671
7668
String separator = NO_SEPARATOR ;
7672
7669
for (Expression expression : listExpressions ) {
7673
7670
appendSql (separator );
7674
7671
emulateTupleComparison (
7675
7672
lhsTuple .getExpressions (),
7676
7673
SqlTupleContainer .getSqlTuple (expression ).getExpressions (),
7677
- ComparisonOperator . EQUAL ,
7674
+ tupleComparisonOperator ,
7678
7675
true
7679
7676
);
7680
- separator = " or " ;
7677
+ separator = inListPredicate . isNegated () ? " and " : " or " ;
7681
7678
}
7682
7679
appendSql ( CLOSE_PARENTHESIS );
7683
7680
}
0 commit comments