@@ -2436,7 +2436,8 @@ public SqmPredicate visitBinaryExpressionPredicate(HqlParser.BinaryExpressionPre
24362436 operationSymbol = ((TerminalNode ) ctx .getChild ( 2 )).getSymbol ();
24372437 }
24382438 else {
2439- negated = false ;
2439+ negated = firstSymbol .getType () == HqlParser .IS
2440+ && ((TerminalNode ) ctx .getChild ( 2 )).getSymbol ().getType () == HqlParser .NOT ;
24402441 operationSymbol = firstSymbol ;
24412442 }
24422443 final var expressions = ctx .expression ();
@@ -2519,20 +2520,16 @@ public SqmPredicate visitBinaryExpressionPredicate(HqlParser.BinaryExpressionPre
25192520 createComparisonPredicate ( ComparisonOperator .GREATER_THAN , lhsCtx , rhsCtx );
25202521 case HqlParser .GREATER_EQUAL ->
25212522 createComparisonPredicate ( ComparisonOperator .GREATER_THAN_OR_EQUAL , lhsCtx , rhsCtx );
2523+ case HqlParser .IS -> {
2524+ final var comparisonOperator = !negated
2525+ ? ComparisonOperator .DISTINCT_FROM
2526+ : ComparisonOperator .NOT_DISTINCT_FROM ;
2527+ yield createComparisonPredicate ( comparisonOperator , lhsCtx , rhsCtx );
2528+ }
25222529 default -> throw new AssertionError ( "Unknown binary expression predicate: " + operationSymbol );
25232530 };
25242531 }
25252532
2526- @ Override
2527- public SqmPredicate visitIsDistinctFromPredicate (HqlParser .IsDistinctFromPredicateContext ctx ) {
2528- final var leftExpressionContext = ctx .expression ( 0 );
2529- final var rightExpressionContext = ctx .expression ( 1 );
2530- final var comparisonOperator = ctx .NOT () == null
2531- ? ComparisonOperator .DISTINCT_FROM
2532- : ComparisonOperator .NOT_DISTINCT_FROM ;
2533- return createComparisonPredicate ( comparisonOperator , leftExpressionContext , rightExpressionContext );
2534- }
2535-
25362533 private SqmComparisonPredicate createComparisonPredicate (
25372534 ComparisonOperator comparisonOperator ,
25382535 HqlParser .ExpressionContext leftExpressionContext ,
0 commit comments