Class DrillJoinRelBase

java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.BiRel
org.apache.calcite.rel.core.Join
org.apache.drill.exec.planner.common.DrillJoinRelBase
All Implemented Interfaces:
Cloneable, org.apache.calcite.plan.RelOptNode, org.apache.calcite.rel.hint.Hintable, org.apache.calcite.rel.RelNode, DrillRelNode, DrillJoin
Direct Known Subclasses:
DrillJoinRel, DrillSemiJoinRel, JoinPrel, PluginJoinRel

public abstract class DrillJoinRelBase extends org.apache.calcite.rel.core.Join implements DrillJoin
Base class for logical and physical Joins implemented in Drill.
  • Nested Class Summary

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

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

    Fields
    Modifier and Type
    Field
    Description
    protected List<Boolean>
    The join key positions for which null values will not match.
    protected List<Integer>
     
    protected List<Integer>
     

    Fields inherited from class org.apache.calcite.rel.core.Join

    condition, hints, joinInfo, joinType, variablesSet

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

    left, right

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

    digest, id, rowType, traitSet
  • Constructor Summary

    Constructors
    Constructor
    Description
    DrillJoinRelBase(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traits, org.apache.calcite.rel.RelNode left, org.apache.calcite.rel.RelNode right, org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.core.JoinRelType joinType)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.apache.calcite.plan.RelOptCost
    computeCartesianJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
    protected org.apache.calcite.plan.RelOptCost
    computeHashJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
    static org.apache.calcite.plan.RelOptCost
    computeHashJoinCostWithRowCntKeySize(org.apache.calcite.plan.RelOptPlanner planner, double probeRowCount, double buildRowCount, int keySize)
     
    protected org.apache.calcite.plan.RelOptCost
    computeLogicalJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
    org.apache.calcite.plan.RelOptCost
    computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
    double
    estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
     
     
    static <T> boolean
    isUnique(List<T> list)
     
    static boolean
    uniqueFieldNames(org.apache.calcite.rel.type.RelDataType rowType)
     

    Methods inherited from class org.apache.calcite.rel.core.Join

    accept, analyzeCondition, copy, copy, createJoinType, deepEquals0, deepHashCode0, deriveJoinRowType, deriveRowType, estimateJoinedRows, explainTerms, getCondition, getHints, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoin, isSemiJoinDone, isValid

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

    childrenAccept, getInputs, getLeft, getRight, replaceInput

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

    accept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, hashCode, isEnforcer, 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 org.apache.drill.exec.planner.logical.DrillJoin

    getCondition, getJoinType, getLeft, getRight, isSemiJoin

    Methods inherited from interface org.apache.calcite.rel.hint.Hintable

    attachHints, withHints

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

    accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, copy, deepEquals, deepHashCode, 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
  • Field Details

    • leftKeys

      protected List<Integer> leftKeys
    • rightKeys

      protected List<Integer> rightKeys
    • filterNulls

      protected List<Boolean> filterNulls
      The join key positions for which null values will not match.
  • Constructor Details

    • DrillJoinRelBase

      public DrillJoinRelBase(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traits, org.apache.calcite.rel.RelNode left, org.apache.calcite.rel.RelNode right, org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.core.JoinRelType joinType)
  • Method Details

    • computeSelfCost

      public org.apache.calcite.plan.RelOptCost computeSelfCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
      Specified by:
      computeSelfCost in interface org.apache.calcite.rel.RelNode
      Overrides:
      computeSelfCost in class org.apache.calcite.rel.core.Join
    • estimateRowCount

      public double estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery mq)
      Specified by:
      estimateRowCount in interface org.apache.calcite.rel.RelNode
      Overrides:
      estimateRowCount in class org.apache.calcite.rel.core.Join
    • uniqueFieldNames

      public static boolean uniqueFieldNames(org.apache.calcite.rel.type.RelDataType rowType)
    • isUnique

      public static <T> boolean isUnique(List<T> list)
    • getLeftKeys

      public List<Integer> getLeftKeys()
      Specified by:
      getLeftKeys in interface DrillJoin
    • getRightKeys

      public List<Integer> getRightKeys()
      Specified by:
      getRightKeys in interface DrillJoin
    • computeCartesianJoinCost

      protected org.apache.calcite.plan.RelOptCost computeCartesianJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
    • computeLogicalJoinCost

      protected org.apache.calcite.plan.RelOptCost computeLogicalJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
    • computeHashJoinCost

      protected org.apache.calcite.plan.RelOptCost computeHashJoinCost(org.apache.calcite.plan.RelOptPlanner planner, org.apache.calcite.rel.metadata.RelMetadataQuery mq)
    • computeHashJoinCostWithRowCntKeySize

      public static org.apache.calcite.plan.RelOptCost computeHashJoinCostWithRowCntKeySize(org.apache.calcite.plan.RelOptPlanner planner, double probeRowCount, double buildRowCount, int keySize)