public abstract class EquiJoin extends Join
For most of the cases, JoinInfo.isEqui()
can already decide
if the join condition is based on column equality.
EquiJoin
is an abstract class for inheritance of Calcite enumerable
joins and join implementation of other system. You should inherit the EquiJoin
if your join implementation does not support non-equi join conditions. Calcite would
eliminate some optimize logic for EquiJoin
in some planning rules.
e.g. FilterJoinRule
would not push non-equi
join conditions of the above filter into the join underneath if it is an EquiJoin
.
RelNode.Context
Modifier and Type | Field and Description |
---|---|
ImmutableIntList |
leftKeys |
ImmutableIntList |
rightKeys |
condition, joinInfo, joinType, variablesSet
digest, id, rowType, traitSet
Constructor and Description |
---|
EquiJoin(RelOptCluster cluster,
RelTraitSet traits,
RelNode left,
RelNode right,
RexNode condition,
ImmutableIntList leftKeys,
ImmutableIntList rightKeys,
JoinRelType joinType,
java.util.Set<java.lang.String> variablesStopped)
Deprecated.
|
EquiJoin(RelOptCluster cluster,
RelTraitSet traits,
RelNode left,
RelNode right,
RexNode condition,
ImmutableIntList leftKeys,
ImmutableIntList rightKeys,
java.util.Set<CorrelationId> variablesSet,
JoinRelType joinType)
Deprecated.
|
EquiJoin(RelOptCluster cluster,
RelTraitSet traits,
RelNode left,
RelNode right,
RexNode condition,
java.util.Set<CorrelationId> variablesSet,
JoinRelType joinType)
Creates an EquiJoin.
|
Modifier and Type | Method and Description |
---|---|
ImmutableIntList |
getLeftKeys() |
ImmutableIntList |
getRightKeys() |
accept, analyzeCondition, computeSelfCost, copy, copy, createJoinType, deriveJoinRowType, deriveRowType, estimateJoinedRows, estimateRowCount, explainTerms, getChildExps, getCondition, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoin, isSemiJoinDone, isValid
childrenAccept, getInputs, getLeft, getRight, replaceInput
accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, explain, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toString
public final ImmutableIntList leftKeys
public final ImmutableIntList rightKeys
public EquiJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, java.util.Set<CorrelationId> variablesSet, JoinRelType joinType)
@Deprecated public EquiJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, java.util.Set<CorrelationId> variablesSet, JoinRelType joinType)
@Deprecated public EquiJoin(RelOptCluster cluster, RelTraitSet traits, RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys, JoinRelType joinType, java.util.Set<java.lang.String> variablesStopped)
public ImmutableIntList getLeftKeys()
public ImmutableIntList getRightKeys()
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.