@@ -2488,7 +2488,8 @@ public SqmPredicate visitBinaryExpressionPredicate(HqlParser.BinaryExpressionPre
24882488 operationSymbol = ((TerminalNode ) ctx .getChild ( 2 )).getSymbol ();
24892489 }
24902490 else {
2491- negated = false ;
2491+ negated = firstSymbol .getType () == HqlParser .IS
2492+ && ((TerminalNode ) ctx .getChild ( 2 )).getSymbol ().getType () == HqlParser .NOT ;
24922493 operationSymbol = firstSymbol ;
24932494 }
24942495 final var expressions = ctx .expression ();
@@ -2571,21 +2572,17 @@ public SqmPredicate visitBinaryExpressionPredicate(HqlParser.BinaryExpressionPre
25712572 return createComparisonPredicate ( ComparisonOperator .GREATER_THAN , lhsCtx , rhsCtx );
25722573 case HqlParser .GREATER_EQUAL :
25732574 return createComparisonPredicate ( ComparisonOperator .GREATER_THAN_OR_EQUAL , lhsCtx , rhsCtx );
2575+ case HqlParser .IS : {
2576+ final ComparisonOperator comparisonOperator = !negated
2577+ ? ComparisonOperator .DISTINCT_FROM
2578+ : ComparisonOperator .NOT_DISTINCT_FROM ;
2579+ return createComparisonPredicate ( comparisonOperator , lhsCtx , rhsCtx );
2580+ }
25742581 default :
25752582 throw new AssertionError ( "Unknown binary expression predicate: " + operationSymbol );
25762583 }
25772584 }
25782585
2579- @ Override
2580- public SqmPredicate visitIsDistinctFromPredicate (HqlParser .IsDistinctFromPredicateContext ctx ) {
2581- final HqlParser .ExpressionContext leftExpressionContext = ctx .expression ( 0 );
2582- final HqlParser .ExpressionContext rightExpressionContext = ctx .expression ( 1 );
2583- final ComparisonOperator comparisonOperator = ctx .NOT () == null
2584- ? ComparisonOperator .DISTINCT_FROM
2585- : ComparisonOperator .NOT_DISTINCT_FROM ;
2586- return createComparisonPredicate ( comparisonOperator , leftExpressionContext , rightExpressionContext );
2587- }
2588-
25892586 private SqmComparisonPredicate createComparisonPredicate (
25902587 ComparisonOperator comparisonOperator ,
25912588 HqlParser .ExpressionContext leftExpressionContext ,
0 commit comments