| 360 | } |
| 361 | |
| 362 | private static SqlOperator op(Ast.Op op) { |
| 363 | switch (op) { |
| 364 | case EQ: |
| 365 | return SqlStdOperatorTable.EQUALS; |
| 366 | case NE: |
| 367 | return SqlStdOperatorTable.NOT_EQUALS; |
| 368 | case GT: |
| 369 | return SqlStdOperatorTable.GREATER_THAN; |
| 370 | case GTE: |
| 371 | return SqlStdOperatorTable.GREATER_THAN_OR_EQUAL; |
| 372 | case LT: |
| 373 | return SqlStdOperatorTable.LESS_THAN; |
| 374 | case LTE: |
| 375 | return SqlStdOperatorTable.LESS_THAN_OR_EQUAL; |
| 376 | case AND: |
| 377 | return SqlStdOperatorTable.AND; |
| 378 | case OR: |
| 379 | return SqlStdOperatorTable.OR; |
| 380 | case NOT: |
| 381 | return SqlStdOperatorTable.NOT; |
| 382 | case PLUS: |
| 383 | return SqlStdOperatorTable.PLUS; |
| 384 | case MINUS: |
| 385 | return SqlStdOperatorTable.MINUS; |
| 386 | default: |
| 387 | throw new AssertionError("unknown: " + op); |
| 388 | } |
| 389 | } |
| 390 | |
| 391 | private ImmutableList<RexNode> toRex(Iterable<Ast.Node> operands) { |
| 392 | final ImmutableList.Builder<RexNode> builder = ImmutableList.builder(); |