Class SingleMergeExchangePrel

java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.SingleRel
All Implemented Interfaces:
Cloneable, Iterable<Prel>, org.apache.calcite.plan.RelOptNode, org.apache.calcite.rel.RelNode, DrillRelNode, Prel

public class SingleMergeExchangePrel extends ExchangePrel
  • Nested Class Summary Link icon

    Nested classes/interfaces inherited from interface org.apache.calcite.rel.RelNode Link icon

    org.apache.calcite.rel.RelNode.Context
  • Field Summary Link icon

    Fields inherited from class org.apache.calcite.rel.SingleRel Link icon

    input

    Fields inherited from class org.apache.calcite.rel.AbstractRelNode Link icon

    digest, id, rowType, traitSet

    Fields inherited from interface org.apache.drill.exec.planner.physical.Prel Link icon

    DRILL_PHYSICAL
  • Constructor Summary Link icon

    Constructors
    Constructor
    Description
    SingleMergeExchangePrel(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.rel.RelNode input, org.apache.calcite.rel.RelCollation collation)
     
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    org.apache.calcite.plan.RelOptCost
    computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
    A SingleMergeExchange processes a total of M rows coming from N sorted input streams (from N senders) and merges them into a single output sorted stream.
    This method creates a new OrderedMux exchange if mux operators are enabled.
    org.apache.calcite.rel.RelNode
    copy(org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.RelNode> inputs)
     
    org.apache.calcite.rel.RelWriter
    explainTerms(org.apache.calcite.rel.RelWriter pw)
     
    org.apache.calcite.rel.RelCollation
     
    A Prel's own SelectionVector mode - i.e whether it generates an SV2, SV4 or None
     

    Methods inherited from class org.apache.drill.exec.planner.physical.ExchangePrel Link icon

    accept

    Methods inherited from class org.apache.drill.exec.planner.physical.SinglePrel Link icon

    getSupportedEncodings, iterator, needsFinalColumnReordering

    Methods inherited from class org.apache.calcite.rel.SingleRel Link icon

    childrenAccept, deriveRowType, estimateRowCount, getInput, getInputs, replaceInput

    Methods inherited from class org.apache.calcite.rel.AbstractRelNode Link icon

    accept, accept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, getVariablesSet, hashCode, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, sole, toString

    Methods inherited from class java.lang.Object Link icon

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.lang.Iterable Link icon

    forEach, spliterator

    Methods inherited from interface org.apache.drill.exec.planner.physical.Prel Link icon

    prepareForLateralUnnestPipeline

    Methods inherited from interface org.apache.calcite.rel.RelNode Link icon

    accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, estimateRowCount, explain, explain, fieldIsNullable, getConvention, getCorrelVariable, getDigest, getExpectedInputRowType, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTable, getVariablesSet, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput

    Methods inherited from interface org.apache.calcite.plan.RelOptNode Link icon

    getCluster, getDescription, getId, getTraitSet
  • Constructor Details Link icon

    • SingleMergeExchangePrel Link icon

      public SingleMergeExchangePrel(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.rel.RelNode input, org.apache.calcite.rel.RelCollation collation)
  • Method Details Link icon

    • computeSelfCost Link icon

      public org.apache.calcite.plan.RelOptCost computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
      A SingleMergeExchange processes a total of M rows coming from N sorted input streams (from N senders) and merges them into a single output sorted stream. For costing purposes we can assume each sender is sending M/N rows to a single receiver. (See DrillCostBase for symbol notations) C = CPU cost of SV remover for M/N rows + Network cost of sending M/N rows to 1 destination. So, C = (s * M/N) + (w * M/N) Cost of merging M rows coming from N senders = (M log2 N) * c Total cost = N * C + (M log2 N) * c
      Specified by:
      computeSelfCost in interface org.apache.calcite.rel.RelNode
      Overrides:
      computeSelfCost in class org.apache.calcite.rel.AbstractRelNode
    • copy Link icon

      public org.apache.calcite.rel.RelNode copy(org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.RelNode> inputs)
      Specified by:
      copy in interface org.apache.calcite.rel.RelNode
      Overrides:
      copy in class org.apache.calcite.rel.AbstractRelNode
    • getPhysicalOperator Link icon

      public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException
      Throws:
      IOException
    • constructMuxPrel Link icon

      public Prel constructMuxPrel(Prel child, OptionManager options) throws RuntimeException
      This method creates a new OrderedMux exchange if mux operators are enabled.
      Overrides:
      constructMuxPrel in class ExchangePrel
      Parameters:
      child - input to the new muxPrel or new SingleMergeExchange node.
      options - options manager to check if mux is enabled.
      Throws:
      RuntimeException
    • explainTerms Link icon

      public org.apache.calcite.rel.RelWriter explainTerms(org.apache.calcite.rel.RelWriter pw)
      Overrides:
      explainTerms in class org.apache.calcite.rel.SingleRel
    • getCollation Link icon

      public org.apache.calcite.rel.RelCollation getCollation()
    • getEncoding Link icon

      public BatchSchema.SelectionVectorMode getEncoding()
      Description copied from interface: Prel
      A Prel's own SelectionVector mode - i.e whether it generates an SV2, SV4 or None