public static boolean isBinaryOperator(EvalType type) { boolean match = false; match |= isArithmeticOperator(type); match |= isLogicalOperator(type) && type != NOT; match |= isComparisonOperator(type) && type != BETWEEN; match |= type == CONCATENATE; match |= type == IN; match |= type == LIKE; match |= type == REGEX; match |= type == SIMILAR_TO; return match; }
public static boolean isBinaryOperator(EvalType type) { boolean match = false; match |= isArithmeticOperator(type); match |= isLogicalOperator(type) && type != NOT; match |= isComparisonOperator(type) && type != BETWEEN; match |= type == CONCATENATE; match |= type == IN; match |= type == LIKE; match |= type == REGEX; match |= type == SIMILAR_TO; return match; }
boolean joinComparator; if (includeThetaJoin) { joinComparator = EvalType.isComparisonOperator(expr.getType()); } else { joinComparator = expr.getType() == EvalType.EQUAL;
boolean joinComparator; if (includeThetaJoin) { joinComparator = EvalType.isComparisonOperator(expr.getType()); } else { joinComparator = expr.getType() == EvalType.EQUAL;
public EvalNode visitBinaryEval(EvalCodeGenContext context, Stack<EvalNode> stack, BinaryEval binaryEval) { if (EvalType.isLogicalOperator(binaryEval.getType())) { return visitAndOrEval(context, binaryEval, stack); } else if (EvalType.isArithmeticOperator(binaryEval.getType())) { return visitArithmeticEval(context, binaryEval, stack); } else if (EvalType.isComparisonOperator(binaryEval.getType())) { return visitComparisonEval(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.CONCATENATE) { return visitStringConcat(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.LIKE || binaryEval.getType() == EvalType.SIMILAR_TO || binaryEval.getType() == EvalType.REGEX) { return visitStringPatternMatch(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.IN) { return visitInPredicate(context, binaryEval, stack); } else { stack.push(binaryEval); visit(context, binaryEval.getLeftExpr(), stack); visit(context, binaryEval.getRightExpr(), stack); stack.pop(); return binaryEval; } }
public EvalNode visitBinaryEval(EvalCodeGenContext context, Stack<EvalNode> stack, BinaryEval binaryEval) { if (EvalType.isLogicalOperator(binaryEval.getType())) { return visitAndOrEval(context, binaryEval, stack); } else if (EvalType.isArithmeticOperator(binaryEval.getType())) { return visitArithmeticEval(context, binaryEval, stack); } else if (EvalType.isComparisonOperator(binaryEval.getType())) { return visitComparisonEval(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.CONCATENATE) { return visitStringConcat(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.LIKE || binaryEval.getType() == EvalType.SIMILAR_TO || binaryEval.getType() == EvalType.REGEX) { return visitStringPatternMatch(context, binaryEval, stack); } else if (binaryEval.getType() == EvalType.IN) { return visitInPredicate(context, binaryEval, stack); } else { stack.push(binaryEval); visit(context, binaryEval.getLeftExpr(), stack); visit(context, binaryEval.getRightExpr(), stack); stack.pop(); return binaryEval; } }