@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();
ExprWalkerInfo ewi = ExprWalkerProcFactory.extractPushdownPreds(owi, op,
predicate);
if (!ewi.isDeterministic()) {
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);
mergeWithChildrenPred(op, owi, ewi, null, false);
return null;
}
}