private static void removeCandidates(Operator<?> operator, OpWalkerInfo owi) { if (operator instanceof FilterOperator) { if (owi.getCandidateFilterOps().contains(operator)) { removeOperator(operator); } owi.getCandidateFilterOps().remove(operator); } if (operator.getChildOperators() != null) { List<Operator<? extends OperatorDesc>> children = Lists.newArrayList(operator.getChildOperators()); for (Operator<?> child : children) { removeCandidates(child, owi); } } }
private static void removeCandidates(Operator<?> operator, OpWalkerInfo owi) { if (operator instanceof FilterOperator) { if (owi.getCandidateFilterOps().contains(operator)) { removeOperator(operator); } owi.getCandidateFilterOps().remove(operator); } if (operator.getChildOperators() != null) { List<Operator<? extends OperatorDesc>> children = Lists.newArrayList(operator.getChildOperators()); for (Operator<?> child : children) { removeCandidates(child, owi); } } }
HiveConf.ConfVars.HIVEPPDREMOVEDUPLICATEFILTERS)) { removeCandidates(op, owi);
HiveConf.ConfVars.HIVEPPDREMOVEDUPLICATEFILTERS)) { removeCandidates(op, owi);
private static void removeCandidates(Operator<?> operator, OpWalkerInfo owi) { if (operator instanceof FilterOperator) { owi.getCandidateFilterOps().remove(operator); } if (operator.getChildOperators() != null) { for (Operator<?> child : operator.getChildOperators()) { removeCandidates(child, owi); } } }
private static ExprWalkerInfo getChildWalkerInfo(Operator<?> current, OpWalkerInfo owi) { if (current.getNumChild() == 0) { return null; } if (current.getNumChild() > 1) { // ppd for multi-insert query is not yet implemented // no-op for leafs for (Operator<?> child : current.getChildOperators()) { removeCandidates(child, owi); // remove candidated filters on this branch } return null; } return owi.getPrunedPreds(current.getChildOperators().get(0)); }