private void vectorizeReduceWork(ReduceWork reduceWork, boolean isTez) throws SemanticException {
LOG.info("Vectorizing ReduceWork...");
reduceWork.setVectorMode(true);
Map<Rule, NodeProcessor> opRules = new LinkedHashMap<Rule, NodeProcessor>();
ReduceWorkVectorizationNodeProcessor vnp =
new ReduceWorkVectorizationNodeProcessor(reduceColumnNames, reduceTypeInfos, isTez);
addReduceWorkRules(opRules, vnp);
Dispatcher disp = new DefaultRuleDispatcher(vnp, opRules, null);
GraphWalker ogw = new PreOrderWalker(disp);
ArrayList<Node> topNodes = new ArrayList<Node>();
topNodes.add(reduceWork.getReducer());
LOG.info("vectorizeReduceWork reducer Operator: " +
reduceWork.getReducer().getName() + "...");
HashMap<Node, Object> nodeOutput = new HashMap<Node, Object>();
ogw.startWalking(topNodes, nodeOutput);
reduceWork.setReducer(vnp.getRootVectorOp());
reduceWork.setVectorColumnNameMap(vnp.getVectorColumnNameMap());
reduceWork.setVectorColumnTypeMap(vnp.getVectorColumnTypeMap());
reduceWork.setVectorScratchColumnTypeMap(vnp.getVectorScratchColumnTypeMap());
if (LOG.isDebugEnabled()) {
debugDisplayAllMaps(reduceWork);
}
}
}