public static boolean isIndexableOperator(EvalNode expr) { return expr.getType() == EvalType.EQUAL || expr.getType() == EvalType.LEQ || expr.getType() == EvalType.LTH || expr.getType() == EvalType.GEQ || expr.getType() == EvalType.GTH || expr.getType() == EvalType.BETWEEN || expr.getType() == EvalType.IN || (expr.getType() == EvalType.LIKE && !((LikePredicateEval)expr).isLeadingWildCard()); }
private static EvalNode createSingletonExprFromDNFRecursive(EvalNode[] evalNode, int idx) { if (idx == evalNode.length - 2) { return new BinaryEval(EvalType.OR, evalNode[idx], evalNode[idx + 1]); } else { return new BinaryEval(EvalType.OR, evalNode[idx], createSingletonExprFromDNFRecursive(evalNode, idx + 1)); } }
public static Set<WindowFunctionEval> findWindowFunction(EvalNode expr) { AllWindowFunctionFinder finder = new AllWindowFunctionFinder(); expr.postOrder(finder); return finder.getWindowFunctionSet(); }
public static Set<AggregationFunctionCallEval> findDistinctAggFunction(EvalNode expr) { AllAggFunctionFinder finder = new AllAggFunctionFinder(); expr.postOrder(finder); return finder.getAggregationFunction(); }
/** * It finds unique columns from a EvalNode. */ public static LinkedHashSet<Column> findUniqueColumns(EvalNode node) { UniqueColumnFinder finder = new UniqueColumnFinder(); node.postOrder(finder); return finder.getColumnRefs(); }
/** * Return the counter to count the number of expression types individually. * * @param expr * @return */ public static Map<EvalType, Integer> getExprCounters(EvalNode expr) { VariableCounter counter = new VariableCounter(); expr.postOrder(counter); return counter.getCounter(); }
public static boolean isIndexableOperator(EvalNode expr) { return expr.getType() == EvalType.EQUAL || expr.getType() == EvalType.LEQ || expr.getType() == EvalType.LTH || expr.getType() == EvalType.GEQ || expr.getType() == EvalType.GTH || expr.getType() == EvalType.BETWEEN || expr.getType() == EvalType.IN || (expr.getType() == EvalType.LIKE && !((LikePredicateEval)expr).isLeadingWildCard()); }
public static Set<WindowFunctionEval> findWindowFunction(EvalNode expr) { AllWindowFunctionFinder finder = new AllWindowFunctionFinder(); expr.postOrder(finder); return finder.getWindowFunctionSet(); }