private static boolean supportedRexCall()

in elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/PredicateAnalyzer.java [142:202]


    private static boolean supportedRexCall(RexCall call) {
      final SqlSyntax syntax = call.getOperator().getSyntax();
      switch (syntax) {
      case BINARY:
        switch (call.getKind()) {
        case CONTAINS:
        case AND:
        case OR:
        case LIKE:
        case EQUALS:
        case NOT_EQUALS:
        case GREATER_THAN:
        case GREATER_THAN_OR_EQUAL:
        case LESS_THAN:
        case LESS_THAN_OR_EQUAL:
          return true;
        default:
          return false;
        }
      case SPECIAL:
        switch (call.getKind()) {
        case CAST:
        case LIKE:
        case ITEM:
        case OTHER_FUNCTION:
          return true;
        case CASE:
        case SIMILAR:
        default:
          return false;
        }
      case FUNCTION:
        return true;
      case POSTFIX:
        switch (call.getKind()) {
        case IS_NOT_NULL:
        case IS_NULL:
          return true;
        default:
          return false;
        }
      case PREFIX: // NOT()
        switch (call.getKind()) {
        case NOT:
          return true;
        default:
          return false;
        }
      case INTERNAL:
        switch (call.getKind()) {
        case SEARCH:
          return canBeTranslatedToTermsQuery(call);
        default:
          return false;
        }
      case FUNCTION_ID:
      case FUNCTION_STAR:
      default:
        return false;
      }
    }