Class DrillJoinRel

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
org.apache.drill.exec.planner.logical.DrillJoinRel
All Implemented Interfaces:
Cloneable, org.apache.calcite.plan.RelOptNode, org.apache.calcite.rel.hint.Hintable, org.apache.calcite.rel.RelNode, DrillRelNode, DrillJoin, DrillRel
Direct Known Subclasses:
RowKeyJoinRel

public class DrillJoinRel extends DrillJoinRelBase implements DrillRel
Logical Join 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
    static final String
     

    Fields inherited from class org.apache.drill.exec.planner.common.DrillJoinRelBase

    filterNulls, leftKeys, rightKeys

    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

    Fields inherited from interface org.apache.drill.exec.planner.logical.DrillRel

    DRILL_LOGICAL
  • Constructor Summary

    Constructors
    Constructor
    Description
    DrillJoinRel(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)
     
    DrillJoinRel(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, int joinControl)
     
    DrillJoinRel(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, List<Integer> leftKeys, List<Integer> rightKeys)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    convert(Join join, ConversionContext context)
     
    copy(org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.RelNode left, org.apache.calcite.rel.RelNode right, org.apache.calcite.rel.core.JoinRelType joinType, boolean semiJoinDone)
     
    protected static org.apache.calcite.rex.RexNode
     
    protected static org.apache.calcite.util.Pair<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode>
     
     
    implementInput(DrillImplementor implementor, int i, int offset, org.apache.calcite.rel.RelNode input, DrillRel currentNode, List<String> parentFields)
    Check to make sure that the fields of the inputs are the same as the output field names.

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

    accept, analyzeCondition, 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, 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
  • Field Details

  • Constructor Details

    • DrillJoinRel

      public DrillJoinRel(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)
    • DrillJoinRel

      public DrillJoinRel(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, int joinControl)
    • DrillJoinRel

      public DrillJoinRel(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, List<Integer> leftKeys, List<Integer> rightKeys) throws org.apache.calcite.rel.InvalidRelException
      Throws:
      org.apache.calcite.rel.InvalidRelException
  • Method Details

    • copy

      public DrillJoinRel copy(org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.RelNode left, org.apache.calcite.rel.RelNode right, org.apache.calcite.rel.core.JoinRelType joinType, boolean semiJoinDone)
      Specified by:
      copy in class org.apache.calcite.rel.core.Join
    • implement

      public LogicalOperator implement(DrillImplementor implementor)
      Specified by:
      implement in interface DrillRel
    • implementInput

      public static LogicalOperator implementInput(DrillImplementor implementor, int i, int offset, org.apache.calcite.rel.RelNode input, DrillRel currentNode, List<String> parentFields)
      Check to make sure that the fields of the inputs are the same as the output field names. If not, insert a project renaming them.
      Parameters:
      implementor -
      i -
      offset -
      input -
      currentNode - the node to be implemented
      Returns:
    • getJoinInputs

      protected static org.apache.calcite.util.Pair<org.apache.calcite.rel.RelNode,org.apache.calcite.rel.RelNode> getJoinInputs(Join join, ConversionContext context) throws org.apache.calcite.rel.InvalidRelException
      Throws:
      org.apache.calcite.rel.InvalidRelException
    • getJoinCondition

      protected static org.apache.calcite.rex.RexNode getJoinCondition(Join join, ConversionContext context) throws org.apache.calcite.rel.InvalidRelException
      Throws:
      org.apache.calcite.rel.InvalidRelException
    • convert

      public static DrillJoinRel convert(Join join, ConversionContext context) throws org.apache.calcite.rel.InvalidRelException
      Throws:
      org.apache.calcite.rel.InvalidRelException