Value val;
if (jj_2_3(2147483647)) {
val = literal();
op = comparisonOperator();
col1 = abstractColumnDescriptor();
filter = new ColumnValueFilter(col1, val, op, true);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_TRUE:
case KW_FALSE:
case KW_DATE:
case KW_TIMEOFDAY:
case KW_DATETIME:
case KW_TIMESTAMP:
case KW_MIN:
case KW_MAX:
case KW_AVG:
case KW_COUNT:
case KW_SUM:
case KW_NO_VALUES:
case KW_NO_FORMAT:
case KW_IS:
case KW_NULL:
case KW_YEAR:
case KW_MONTH:
case KW_DAY:
case KW_HOUR:
case KW_MINUTE:
case KW_SECOND:
case KW_MILLISECOND:
case KW_WITH:
case KW_CONTAINS:
case KW_STARTS:
case KW_ENDS:
case KW_MATCHES:
case KW_LIKE:
case KW_NOW:
case KW_DATEDIFF:
case KW_QUARTER:
case KW_LOWER:
case KW_UPPER:
case KW_DAYOFWEEK:
case KW_TODATE:
case ID:
case INTEGER_LITERAL:
case DECIMAL_LITERAL:
case STRING_LITERAL:
case QUOTED_ID:
case OP_LPAREN:
case OP_MINUS:
col1 = abstractColumnDescriptor();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_IS:
jj_consume_token(KW_IS);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_NULL:
jj_consume_token(KW_NULL);
filter = new ColumnIsNullFilter(col1);
break;
case KW_NOT:
jj_consume_token(KW_NOT);
jj_consume_token(KW_NULL);
filter = new NegationFilter(new ColumnIsNullFilter(col1));
break;
default:
jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
case KW_CONTAINS:
case KW_STARTS:
case KW_ENDS:
case KW_MATCHES:
case KW_LIKE:
case OP_EQUALS:
case OP_NOT_EQUALS:
case OP_LESS_THAN:
case OP_LESS_OR_EQUAL:
case OP_GREATER_THAN:
case OP_GREATER_OR_EQUAL:
op = comparisonOperator();
if (jj_2_2(2147483647)) {
val = literal();
filter = new ColumnValueFilter(col1, val, op, false);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case KW_TRUE:
case KW_FALSE:
case KW_DATE: