SQLExpression expr = toProtoSQL( propIsBetween.getExpression(), true );
SQLExpression upper = toProtoSQL( propIsBetween.getUpperBoundary(), true );
inferType( lower, expr, upper );
builder.add( "(" );
addExpression( builder, lower, op.isMatchCase() );
SQLExpression param2 = toProtoSQL( propIsEqualTo.getParameter2() );
if ( !param1.isMultiValued() && !param2.isMultiValued() ) {
inferType( param1, param2 );
SQLOperationBuilder builder = new SQLOperationBuilder( BOOLEAN );
addExpression( builder, param1, op.isMatchCase() );
SQLExpression param1 = toProtoSQL( propIsGT.getParameter1(), true );
SQLExpression param2 = toProtoSQL( propIsGT.getParameter2(), true );
inferType( param1, param2 );
addExpression( builder, param1, op.isMatchCase() );
builder.add( " > " );
SQLExpression param1 = toProtoSQL( propIsGTOrEqualTo.getParameter1(), true );
SQLExpression param2 = toProtoSQL( propIsGTOrEqualTo.getParameter2(), true );
inferType( param1, param2 );
addExpression( builder, param1, op.isMatchCase() );
builder.add( " >= " );
SQLExpression param1 = toProtoSQL( propIsLT.getParameter1(), true );
SQLExpression param2 = toProtoSQL( propIsLT.getParameter2(), true );
inferType( param1, param2 );
addExpression( builder, param1, op.isMatchCase() );
builder.add( " < " );