use of org.apache.flink.table.planner.plan.nodes.common.CommonIntermediateTableScan in project flink by apache.
the class ExecNodeGraphGenerator method generate.
private ExecNode<?> generate(FlinkPhysicalRel rel) {
ExecNode<?> execNode = visitedRels.get(rel);
if (execNode != null) {
return execNode;
}
if (rel instanceof CommonIntermediateTableScan) {
throw new TableException("Intermediate RelNode can't be converted to ExecNode.");
}
List<ExecNode<?>> inputNodes = new ArrayList<>();
for (RelNode input : rel.getInputs()) {
inputNodes.add(generate((FlinkPhysicalRel) input));
}
execNode = rel.translateToExecNode();
// connects the input nodes
List<ExecEdge> inputEdges = new ArrayList<>(inputNodes.size());
for (ExecNode<?> inputNode : inputNodes) {
inputEdges.add(ExecEdge.builder().source(inputNode).target(execNode).build());
}
execNode.setInputEdges(inputEdges);
visitedRels.put(rel, execNode);
return execNode;
}
Aggregations