private static List<DataSinkNode> convertPlan(Plan p) { GraphCreatingVisitor dagCreator = new GraphCreatingVisitor(17, p.getExecutionConfig().getExecutionMode()); // create the DAG p.accept(dagCreator); List<DataSinkNode> sinks = dagCreator.getSinks(); // build a single root and run the branch tracking logic OptimizerNode rootNode; if (sinks.size() == 1) { rootNode = sinks.get(0); } else { Iterator<DataSinkNode> iter = sinks.iterator(); rootNode = iter.next(); while (iter.hasNext()) { rootNode = new SinkJoiner(rootNode, iter.next()); } } rootNode.accept(new IdAndEstimatesVisitor(null)); rootNode.accept(new BranchesVisitor()); return sinks; } }
rootNode.accept(new IdAndEstimatesVisitor(this.statistics));
rootNode.accept(new IdAndEstimatesVisitor(this.statistics));
rootNode.accept(new IdAndEstimatesVisitor(this.statistics));
rootNode.accept(new IdAndEstimatesVisitor(this.statistics));
rootNode.accept(new IdAndEstimatesVisitor(this.statistics));