Class ExchangePrel

java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.SingleRel
org.apache.drill.exec.planner.physical.SinglePrel
org.apache.drill.exec.planner.physical.ExchangePrel
All Implemented Interfaces:
Cloneable, Iterable<Prel>, org.apache.calcite.plan.RelOptNode, org.apache.calcite.rel.RelNode, DrillRelNode, Prel
Direct Known Subclasses:
BroadcastExchangePrel, HashToMergeExchangePrel, HashToRandomExchangePrel, OrderedMuxExchangePrel, OrderedPartitionExchangePrel, RangePartitionExchangePrel, SingleMergeExchangePrel, UnionExchangePrel, UnorderedDeMuxExchangePrel, UnorderedMuxExchangePrel

public abstract class ExchangePrel extends SinglePrel
  • Nested Class Summary

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

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

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

    input

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

    digest, id, rowType, traitSet

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

    DRILL_PHYSICAL
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExchangePrel(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traits, org.apache.calcite.rel.RelNode child)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <T, X, E extends Throwable>
    T
    accept(PrelVisitor<T,X,E> logicalVisitor, X value)
     
    The derived classes can override this method to create relevant mux exchanges.

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

    getSupportedEncodings, iterator, needsFinalColumnReordering

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

    childrenAccept, deriveRowType, estimateRowCount, explainTerms, getInput, getInputs, replaceInput

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

    accept, accept, collectVariablesSet, collectVariablesUsed, computeSelfCost, copy, 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

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

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator

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

    getEncoding, getPhysicalOperator, prepareForLateralUnnestPipeline

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

    accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, copy, 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

    getCluster, getDescription, getId, getTraitSet
  • Constructor Details

    • ExchangePrel

      public ExchangePrel(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traits, org.apache.calcite.rel.RelNode child)
  • Method Details

    • accept

      public <T, X, E extends Throwable> T accept(PrelVisitor<T,X,E> logicalVisitor, X value) throws E
      Specified by:
      accept in interface Prel
      Overrides:
      accept in class SinglePrel
      Throws:
      E extends Throwable
    • constructMuxPrel

      public Prel constructMuxPrel(Prel child, OptionManager options)
      The derived classes can override this method to create relevant mux exchanges. If this method is not overridden then the default behavior is to clone itself.
      Parameters:
      child - input to the new muxPrel or new Exchange node.
      options - options manager to check if mux is enabled.