Class SinkJoiner

  • All Implemented Interfaces:
    EstimateProvider, DumpableNode<OptimizerNode>, org.apache.flink.util.Visitable<OptimizerNode>

    public class SinkJoiner
    extends TwoInputNode
    This class represents a utility node that is not part of the actual plan. It is used for plans with multiple data sinks to transform it into a plan with a single root node. That way, the code that makes sure no costs are double-counted and that candidate selection works correctly with nodes that have multiple outputs is transparently reused.
    • Method Detail

      • getOperatorName

        public String getOperatorName()
        Description copied from class: OptimizerNode
        Gets the name of this node, which is the name of the function/operator, or data source / data sink.
        Specified by:
        getOperatorName in class OptimizerNode
        Returns:
        The node name.
      • computeUnclosedBranchStack

        public void computeUnclosedBranchStack()
        Description copied from class: OptimizerNode
        This method causes the node to compute the description of open branches in its sub-plan. An open branch describes, that a (transitive) child node had multiple outputs, which have not all been re-joined in the sub-plan. This method needs to set the openBranches field to a stack of unclosed branches, the latest one top. A branch is considered closed, if some later node sees all of the branching node's outputs, no matter if there have been more branches to different paths in the meantime.
        Overrides:
        computeUnclosedBranchStack in class TwoInputNode
      • computeOutputEstimates

        public void computeOutputEstimates​(DataStatistics statistics)
        Description copied from class: OptimizerNode
        Causes this node to compute its output estimates (such as number of rows, size in bytes) based on the inputs and the compiler hints. The compiler hints are instantiated with conservative default values which are used if no other values are provided. Nodes may access the statistics to determine relevant information.
        Overrides:
        computeOutputEstimates in class OptimizerNode
        Parameters:
        statistics - The statistics object which may be accessed to get statistical information. The parameter may be null, if no statistics are available.