public static ExprWalkerInfo extractPushdownPreds(OpWalkerInfo opContext, Operator<? extends OperatorDesc> op, ExprNodeDesc pred) throws SemanticException { List<ExprNodeDesc> preds = new ArrayList<ExprNodeDesc>(); preds.add(pred); return extractPushdownPreds(opContext, op, preds); }
public static ExprWalkerInfo extractPushdownPreds(OpWalkerInfo opContext, Operator<? extends OperatorDesc> op, ExprNodeDesc pred) throws SemanticException { List<ExprNodeDesc> preds = new ArrayList<ExprNodeDesc>(); preds.add(pred); return extractPushdownPreds(opContext, op, preds); }
.extractPushdownPreds(owi, op, e.getValue()); if (!extractPushdownPreds.getNonFinalCandidates().isEmpty()) { hasUnpushedPredicates = true;
.extractPushdownPreds(owi, op, e.getValue()); if (!extractPushdownPreds.getNonFinalCandidates().isEmpty()) { hasUnpushedPredicates = true;
ewi = ExprWalkerProcFactory.extractPushdownPreds(owi, op, predicate); if (!ewi.isDeterministic()) {
ewi = ExprWalkerProcFactory.extractPushdownPreds(owi, op, predicate); if (!ewi.isDeterministic()) {
public static ExprWalkerInfo extractPushdownPreds(OpWalkerInfo opContext, Operator<? extends OperatorDesc> op, ExprNodeDesc pred) throws SemanticException { List<ExprNodeDesc> preds = new ArrayList<ExprNodeDesc>(); preds.add(pred); return extractPushdownPreds(opContext, op, preds); }
public static ExprWalkerInfo extractPushdownPreds(OpWalkerInfo opContext, Operator<? extends Serializable> op, ExprNodeDesc pred) throws SemanticException { List<ExprNodeDesc> preds = new ArrayList<ExprNodeDesc>(); preds.add(pred); return extractPushdownPreds(opContext, op, preds); }
.extractPushdownPreds(owi, op, e.getValue()); if (!extractPushdownPreds.getNonFinalCandidates().isEmpty()) { hasUnpushedPredicates = true;
.extractPushdownPreds(owi, op, e.getValue()); ewi.merge(extractPushdownPreds); logExpr(nd, extractPushdownPreds);
@Override public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { LOG.info("Processing for " + nd.getName() + "(" + ((Operator) nd).getIdentifier() + ")"); OpWalkerInfo owi = (OpWalkerInfo) procCtx; Operator<? extends Serializable> op = (Operator<? extends Serializable>) nd; ExprNodeDesc predicate = (((FilterOperator) nd).getConf()).getPredicate(); // get pushdown predicates for this operator's predicate ExprWalkerInfo ewi = ExprWalkerProcFactory.extractPushdownPreds(owi, op, predicate); if (!ewi.isDeterministic()) { /* predicate is not deterministic */ if (op.getChildren() != null && op.getChildren().size() == 1) { createFilter(op, owi .getPrunedPreds((Operator<? extends Serializable>) (op .getChildren().get(0))), owi); } return null; } logExpr(nd, ewi); owi.putPrunedPreds(op, ewi); // merge it with children predicates mergeWithChildrenPred(op, owi, ewi, null, false); return null; } }
ewi = ExprWalkerProcFactory.extractPushdownPreds(owi, op, predicate); if (!ewi.isDeterministic()) {