LogicalJoin
with join type JoinRelType.SEMI
instead.@Deprecated public class SemiJoin extends EquiJoin
The effect is something like the SQL IN
operator.
RelNode.Context
condition, joinInfo, joinType, variablesSet
digest, id, rowType, traitSet
Constructor and Description |
---|
SemiJoin(RelOptCluster cluster,
RelTraitSet traitSet,
RelNode left,
RelNode right,
RexNode condition,
ImmutableIntList leftKeys,
ImmutableIntList rightKeys)
Deprecated.
Creates a SemiJoin.
|
Modifier and Type | Method and Description |
---|---|
RelOptCost |
computeSelfCost(RelOptPlanner planner,
RelMetadataQuery mq)
Deprecated.
Returns the cost of this plan (not including children).
|
SemiJoin |
copy(RelTraitSet traitSet,
RexNode condition,
RelNode left,
RelNode right,
JoinRelType joinType,
boolean semiJoinDone)
Deprecated.
Creates a copy of this join, overriding condition, system fields and
inputs.
|
static SemiJoin |
create(RelNode left,
RelNode right,
RexNode condition,
ImmutableIntList leftKeys,
ImmutableIntList rightKeys)
Deprecated.
Creates a SemiJoin.
|
RelDataType |
deriveRowType()
Deprecated.
|
double |
estimateRowCount(RelMetadataQuery mq)
Deprecated.
Returns an estimate of the number of rows this relational expression will
return.
|
getLeftKeys, getRightKeys
accept, analyzeCondition, copy, createJoinType, deriveJoinRowType, estimateJoinedRows, 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 SemiJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys)
Use create(org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode, org.apache.calcite.rex.RexNode, org.apache.calcite.util.ImmutableIntList, org.apache.calcite.util.ImmutableIntList)
unless you know what you're doing.
cluster
- cluster that join belongs totraitSet
- Trait setleft
- left join inputright
- right join inputcondition
- join conditionleftKeys
- left keys of the semijoinrightKeys
- right keys of the semijoinpublic static SemiJoin create(RelNode left, RelNode right, RexNode condition, ImmutableIntList leftKeys, ImmutableIntList rightKeys)
public SemiJoin copy(RelTraitSet traitSet, RexNode condition, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone)
Join
General contract as RelNode.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>)
.
public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq)
RelNode
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.
computeSelfCost
in interface RelNode
computeSelfCost
in class Join
planner
- Planner for cost calculationmq
- Metadata querypublic double estimateRowCount(RelMetadataQuery mq)
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.apache.calcite.rel.RelNode)
, which gives plugins a chance to
override the rel's default ideas about row count.
estimateRowCount
in interface RelNode
estimateRowCount
in class Join
mq
- Metadata querypublic RelDataType deriveRowType()
In the case of semi-join, the row type consists of columns from left input only.
deriveRowType
in class Join
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.