Class EnumerableNestedLoopJoin
java.lang.Object
org.apache.calcite.rel.AbstractRelNode
org.apache.calcite.rel.BiRel
org.apache.calcite.rel.core.Join
org.apache.calcite.adapter.enumerable.EnumerableNestedLoopJoin
- All Implemented Interfaces:
Cloneable
,EnumerableRel
,RelOptNode
,Hintable
,PhysicalNode
,RelNode
Implementation of
Join
in
enumerable calling convention
that allows conditions that are not just =
(equals).-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.calcite.adapter.enumerable.EnumerableRel
EnumerableRel.Prefer, EnumerableRel.Result
Nested classes/interfaces inherited from interface org.apache.calcite.rel.RelNode
RelNode.Context
-
Field Summary
Fields inherited from class org.apache.calcite.rel.core.Join
condition, hints, joinInfo, joinType, variablesSet
Fields inherited from class org.apache.calcite.rel.AbstractRelNode
digest, id, rowType, traitSet
-
Constructor Summary
ModifierConstructorDescriptionprotected
EnumerableNestedLoopJoin
(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) Creates an EnumerableNestedLoopJoin.protected
EnumerableNestedLoopJoin
(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) Deprecated. -
Method Summary
Modifier and TypeMethodDescription@Nullable RelOptCost
computeSelfCost
(RelOptPlanner planner, RelMetadataQuery mq) Returns the cost of this plan (not including children).copy
(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) Creates a copy of this join, overriding condition, system fields and inputs.static EnumerableNestedLoopJoin
create
(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) Creates an EnumerableNestedLoopJoin.@Nullable Pair<RelTraitSet,
List<RelTraitSet>> deriveTraits
(RelTraitSet childTraits, int childId) Derive traitset from child node, returns a pair of traits after traits derivation.Returns mode of derivation.implement
(EnumerableRelImplementor implementor, EnumerableRel.Prefer pref) Creates a plan for this expression according to a calling convention.@Nullable Pair<RelTraitSet,
List<RelTraitSet>> passThroughTraits
(RelTraitSet required) Pass required traitset from parent node to child nodes, returns a pair of traits after traits is passed down.Methods inherited from class org.apache.calcite.rel.core.Join
accept, analyzeCondition, copy, createJoinType, deepEquals0, deepHashCode0, deriveJoinRowType, deriveRowType, estimateJoinedRows, estimateRowCount, 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.calcite.rel.hint.Hintable
attachHints, withHints
Methods inherited from interface org.apache.calcite.rel.PhysicalNode
derive, derive, passThrough
Methods inherited from interface org.apache.calcite.rel.RelNode
accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, 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, stripped
Methods inherited from interface org.apache.calcite.plan.RelOptNode
getCluster, getDescription, getId, getTraitSet
-
Constructor Details
-
EnumerableNestedLoopJoin
protected EnumerableNestedLoopJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) Creates an EnumerableNestedLoopJoin. -
EnumerableNestedLoopJoin
@Deprecated protected EnumerableNestedLoopJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped) Deprecated.
-
-
Method Details
-
copy
public EnumerableNestedLoopJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone) Description copied from class:Join
Creates a copy of this join, overriding condition, system fields and inputs.General contract as
RelNode.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>)
. -
create
public static EnumerableNestedLoopJoin create(RelNode left, RelNode right, RexNode condition, Set<CorrelationId> variablesSet, JoinRelType joinType) Creates an EnumerableNestedLoopJoin. -
computeSelfCost
Description copied from interface:RelNode
Returns the cost of this plan (not including children). The base implementation throws an error; derived classes should override.NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode)
, which gives plugins a chance to override the rel's default ideas about cost.- Specified by:
computeSelfCost
in interfaceRelNode
- Overrides:
computeSelfCost
in classJoin
- Parameters:
planner
- Planner for cost calculationmq
- Metadata query- Returns:
- Cost of this plan (not including children)
-
passThroughTraits
Description copied from interface:PhysicalNode
Pass required traitset from parent node to child nodes, returns a pair of traits after traits is passed down.Pair.left: the new traitset; Pair.right: the list of required traitsets for child nodes.
- Specified by:
passThroughTraits
in interfaceEnumerableRel
- Specified by:
passThroughTraits
in interfacePhysicalNode
-
deriveTraits
public @Nullable Pair<RelTraitSet,List<RelTraitSet>> deriveTraits(RelTraitSet childTraits, int childId) Description copied from interface:PhysicalNode
Derive traitset from child node, returns a pair of traits after traits derivation.Pair.left: the new traitset; Pair.right: the list of required traitsets for child nodes.
- Specified by:
deriveTraits
in interfaceEnumerableRel
- Specified by:
deriveTraits
in interfacePhysicalNode
-
getDeriveMode
Description copied from interface:PhysicalNode
Returns mode of derivation.- Specified by:
getDeriveMode
in interfaceEnumerableRel
- Specified by:
getDeriveMode
in interfacePhysicalNode
-
implement
public EnumerableRel.Result implement(EnumerableRelImplementor implementor, EnumerableRel.Prefer pref) Description copied from interface:EnumerableRel
Creates a plan for this expression according to a calling convention.- Specified by:
implement
in interfaceEnumerableRel
- Parameters:
implementor
- Implementorpref
- Preferred representation for rows in result expression- Returns:
- Plan for this expression according to a calling convention
-