mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-16 16:15:06 +00:00
minor change to grammar for readability
This commit is contained in:
parent
f77067b1b3
commit
b7120a60a3
@ -624,13 +624,14 @@ predicate
|
||||
| expression IS NOT? EMPTY # IsEmptyPredicate
|
||||
| expression IS NOT? TRUE # IsTruePredicate
|
||||
| expression IS NOT? FALSE # IsFalsePredicate
|
||||
| expression IS NOT? DISTINCT FROM expression # IsDistinctFromPredicate
|
||||
| expression NOT? MEMBER OF? path # MemberOfPredicate
|
||||
| expression NOT? IN inList # InPredicate
|
||||
| expression NOT? BETWEEN expression AND expression # BetweenPredicate
|
||||
| expression NOT? (LIKE | ILIKE) expression likeEscape? # LikePredicate
|
||||
| expression comparisonOperator expression # ComparisonPredicate
|
||||
| EXISTS collectionQuantifier LEFT_PAREN simplePath RIGHT_PAREN # ExistsCollectionPartPredicate
|
||||
| EXISTS expression # ExistsPredicate
|
||||
| expression NOT? MEMBER OF? path # MemberOfPredicate
|
||||
| NOT predicate # NegatedPredicate
|
||||
| predicate AND predicate # AndPredicate
|
||||
| predicate OR predicate # OrPredicate
|
||||
@ -647,8 +648,6 @@ comparisonOperator
|
||||
| GREATER_EQUAL
|
||||
| LESS
|
||||
| LESS_EQUAL
|
||||
| IS DISTINCT FROM
|
||||
| IS NOT DISTINCT FROM
|
||||
;
|
||||
|
||||
/**
|
||||
|
@ -2443,10 +2443,6 @@ public Object visitComparisonOperator(HqlParser.ComparisonOperatorContext ctx) {
|
||||
return ComparisonOperator.GREATER_THAN;
|
||||
case HqlLexer.GREATER_EQUAL:
|
||||
return ComparisonOperator.GREATER_THAN_OR_EQUAL;
|
||||
case HqlLexer.IS:
|
||||
return ctx.NOT() == null
|
||||
? ComparisonOperator.DISTINCT_FROM
|
||||
: ComparisonOperator.NOT_DISTINCT_FROM;
|
||||
default:
|
||||
throw new ParsingException("Unrecognized comparison operator");
|
||||
}
|
||||
@ -2455,11 +2451,28 @@ public Object visitComparisonOperator(HqlParser.ComparisonOperatorContext ctx) {
|
||||
@Override
|
||||
public SqmPredicate visitComparisonPredicate(HqlParser.ComparisonPredicateContext ctx) {
|
||||
final ComparisonOperator comparisonOperator = (ComparisonOperator) ctx.comparisonOperator().accept( this );
|
||||
final SqmExpression<?> left;
|
||||
final SqmExpression<?> right;
|
||||
final HqlParser.ExpressionContext leftExpressionContext = ctx.expression( 0 );
|
||||
final HqlParser.ExpressionContext rightExpressionContext = ctx.expression( 1 );
|
||||
switch (comparisonOperator) {
|
||||
return createComparisonPredicate( comparisonOperator, leftExpressionContext, rightExpressionContext );
|
||||
}
|
||||
|
||||
@Override
|
||||
public SqmPredicate visitIsDistinctFromPredicate(HqlParser.IsDistinctFromPredicateContext ctx) {
|
||||
final HqlParser.ExpressionContext leftExpressionContext = ctx.expression( 0 );
|
||||
final HqlParser.ExpressionContext rightExpressionContext = ctx.expression( 1 );
|
||||
final ComparisonOperator comparisonOperator = ctx.NOT() == null
|
||||
? ComparisonOperator.DISTINCT_FROM
|
||||
: ComparisonOperator.NOT_DISTINCT_FROM;
|
||||
return createComparisonPredicate( comparisonOperator, leftExpressionContext, rightExpressionContext );
|
||||
}
|
||||
|
||||
private SqmComparisonPredicate createComparisonPredicate(
|
||||
ComparisonOperator comparisonOperator,
|
||||
HqlParser.ExpressionContext leftExpressionContext,
|
||||
HqlParser.ExpressionContext rightExpressionContext) {
|
||||
final SqmExpression<?> right;
|
||||
final SqmExpression<?> left;
|
||||
switch ( comparisonOperator ) {
|
||||
case EQUAL:
|
||||
case NOT_EQUAL:
|
||||
case DISTINCT_FROM:
|
||||
|
Loading…
x
Reference in New Issue
Block a user