Class BatchExecMultipleInput

java.lang.Object
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase<org.apache.flink.table.data.RowData>
org.apache.flink.table.planner.plan.nodes.exec.batch.BatchExecMultipleInput
All Implemented Interfaces:
BatchExecNode<org.apache.flink.table.data.RowData>, ExecNode<org.apache.flink.table.data.RowData>, ExecNodeTranslator<org.apache.flink.table.data.RowData>, FusionCodegenExecNode, SingleTransformationTranslator<org.apache.flink.table.data.RowData>

public class BatchExecMultipleInput extends ExecNodeBase<org.apache.flink.table.data.RowData> implements BatchExecNode<org.apache.flink.table.data.RowData>, SingleTransformationTranslator<org.apache.flink.table.data.RowData>
Batch ExecNode for multiple input which contains a sub-graph of ExecNodes. The root node of the sub-graph is rootNode, and the leaf nodes of the sub-graph are the output nodes of the #getInputNodes().

The following example shows a graph of ExecNodes with multiple input node:


          Sink
           |
 +---------+--------+
 |         |        |
 |       Join       |
 |     /     \      | BatchExecMultipleInput
 |   Agg1    Agg2   |
 |    |       |     |
 +----+-------+-----+
      |       |
 Exchange1 Exchange2
      |       |
    Scan1   Scan2
 

The multiple input node contains three nodes: `Join`, `Agg1` and `Agg2`. `Join` is the root node (rootNode) of the sub-graph, `Agg1` and `Agg2` are the leaf nodes of the sub-graph, `Exchange1` and `Exchange2` are the input nodes of the multiple input node.

  • Constructor Details

  • Method Details

    • translateToPlanInternal

      protected org.apache.flink.api.dag.Transformation<org.apache.flink.table.data.RowData> translateToPlanInternal(PlannerBase planner, ExecNodeConfig config)
      Description copied from class: ExecNodeBase
      Internal method, translates this node into a Flink operator.
      Specified by:
      translateToPlanInternal in class ExecNodeBase<org.apache.flink.table.data.RowData>
      Parameters:
      planner - The planner.
      config - per-ExecNode configuration that contains the merged configuration from various layers which all the nodes implementing this method should use, instead of retrieving configuration from the planner. For more details check ExecNodeConfig.
    • getOriginalEdges

      public List<ExecEdge> getOriginalEdges()
    • getRootNode

      @VisibleForTesting public ExecNode<?> getRootNode()