Class RowKeyJoinRel
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
org.apache.drill.exec.planner.logical.RowKeyJoinRel
- All Implemented Interfaces:
Cloneable
,org.apache.calcite.plan.RelOptNode
,org.apache.calcite.rel.hint.Hintable
,org.apache.calcite.rel.RelNode
,DrillRelNode
,DrillJoin
,DrillRel
-
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.drill.exec.planner.logical.DrillJoinRel
EQUALITY_CONDITION
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
ConstructorDescriptionRowKeyJoinRel
(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) RowKeyJoinRel
(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, boolean isSemiJoin) RowKeyJoinRel
(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) RowKeyJoinRel
(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 TypeMethodDescriptionstatic RowKeyJoinRel
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) org.apache.calcite.rel.type.RelDataType
implement
(DrillImplementor implementor) boolean
Returns whether this RowKeyJoin represents aorg.apache.calcite.rel.core.SemiJoin
boolean
isValid
(org.apache.calcite.util.Litmus litmus, org.apache.calcite.rel.RelNode.Context context) The parent method relies the class being an instance oforg.apache.calcite.rel.core.SemiJoin
in deciding row-type validity.Methods inherited from class org.apache.drill.exec.planner.logical.DrillJoinRel
getJoinCondition, getJoinInputs, implementInput
Methods inherited from class org.apache.drill.exec.planner.common.DrillJoinRelBase
computeCartesianJoinCost, computeHashJoinCost, computeHashJoinCostWithRowCntKeySize, computeLogicalJoinCost, computeSelfCost, estimateRowCount, getLeftKeys, getRightKeys, isUnique, uniqueFieldNames
Methods inherited from class org.apache.calcite.rel.core.Join
accept, analyzeCondition, copy, createJoinType, deepEquals0, deepHashCode0, deriveJoinRowType, estimateJoinedRows, explainTerms, getCondition, getHints, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoinDone
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
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, metadata, onRegister, recomputeDigest, register, replaceInput
Methods inherited from interface org.apache.calcite.plan.RelOptNode
getCluster, getDescription, getId, getTraitSet
-
Constructor Details
-
RowKeyJoinRel
public RowKeyJoinRel(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) -
RowKeyJoinRel
public RowKeyJoinRel(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, boolean isSemiJoin) -
RowKeyJoinRel
public RowKeyJoinRel(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) -
RowKeyJoinRel
public RowKeyJoinRel(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 RowKeyJoinRel 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) - Overrides:
copy
in classDrillJoinRel
-
implement
- Specified by:
implement
in interfaceDrillRel
- Overrides:
implement
in classDrillJoinRel
-
isSemiJoin
public boolean isSemiJoin()Returns whether this RowKeyJoin represents aorg.apache.calcite.rel.core.SemiJoin
- Specified by:
isSemiJoin
in interfaceDrillJoin
- Overrides:
isSemiJoin
in classorg.apache.calcite.rel.core.Join
- Returns:
- true if join represents a
org.apache.calcite.rel.core.SemiJoin
, false otherwise.
-
deriveRowType
public org.apache.calcite.rel.type.RelDataType deriveRowType()- Overrides:
deriveRowType
in classorg.apache.calcite.rel.core.Join
-
convert
public static RowKeyJoinRel convert(Join join, ConversionContext context) throws org.apache.calcite.rel.InvalidRelException - Throws:
org.apache.calcite.rel.InvalidRelException
-
isValid
public boolean isValid(org.apache.calcite.util.Litmus litmus, org.apache.calcite.rel.RelNode.Context context) The parent method relies the class being an instance oforg.apache.calcite.rel.core.SemiJoin
in deciding row-type validity. We override this method to account for the RowKeyJoinRel logical rel representing both regular and semi-joins- Specified by:
isValid
in interfaceorg.apache.calcite.rel.RelNode
- Overrides:
isValid
in classorg.apache.calcite.rel.core.Join
-