public final class LogicalJoin extends Join
Join
not targeted at any particular engine or calling convention.
Some rules:
JoinExtractFilterRule converts an
inner join to a filter on top of a
cartesian inner join.
net.sf.farrago.fennel.rel.FennelCartesianJoinRule
implements a LogicalJoin as a cartesian product.
condition, joinType, variablesStoppeddigest, id, rowType, traitSet| Constructor and Description |
|---|
LogicalJoin(RelInput input)
Creates a LogicalJoin by parsing serialized output.
|
LogicalJoin(RelOptCluster cluster,
RelNode left,
RelNode right,
RexNode condition,
JoinRelType joinType,
Set<String> variablesStopped)
Deprecated.
|
LogicalJoin(RelOptCluster cluster,
RelNode left,
RelNode right,
RexNode condition,
JoinRelType joinType,
Set<String> variablesStopped,
boolean semiJoinDone,
com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
Deprecated.
|
LogicalJoin(RelOptCluster cluster,
RelTraitSet traitSet,
RelNode left,
RelNode right,
RexNode condition,
JoinRelType joinType,
Set<String> variablesStopped,
boolean semiJoinDone,
com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
Creates a LogicalJoin.
|
| Modifier and Type | Method and Description |
|---|---|
RelNode |
accept(RelShuttle shuttle)
Accepts a visit from a shuttle.
|
LogicalJoin |
copy(RelTraitSet traitSet,
RexNode conditionExpr,
RelNode left,
RelNode right,
JoinRelType joinType,
boolean semiJoinDone)
Creates a copy of this join, overriding condition, system fields and
inputs.
|
static LogicalJoin |
create(RelNode left,
RelNode right,
RexNode condition,
JoinRelType joinType,
Set<String> variablesStopped)
Creates a LogicalJoin.
|
static LogicalJoin |
create(RelNode left,
RelNode right,
RexNode condition,
JoinRelType joinType,
Set<String> variablesStopped,
boolean semiJoinDone,
com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
Creates a LogicalJoin, flagged with whether it has been translated to a
semi-join.
|
RelWriter |
explainTerms(RelWriter pw)
Describes the inputs and attributes of this relational expression.
|
List<RelDataTypeField> |
getSystemFieldList()
Returns a list of system fields that will be prefixed to
output row type.
|
boolean |
isSemiJoinDone()
Returns whether this LogicalJoin has already spawned a
SemiJoin via
JoinAddRedundantSemiJoinRule. |
accept, analyzeCondition, computeSelfCost, copy, createJoinType, deriveJoinRowType, deriveRowType, estimateJoinedRows, getChildExps, getCondition, getJoinType, getRows, getVariablesStopped, isValid_childrenAccept, getInputs, getLeft, getRight, replaceInputcollectVariablesSet, collectVariablesUsed, computeDigest, explain, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRowType, getTable, getTraitSet, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toStringpublic LogicalJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone, com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
Use create(org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode, org.apache.calcite.rex.RexNode, org.apache.calcite.rel.core.JoinRelType, java.util.Set<java.lang.String>, boolean, com.google.common.collect.ImmutableList<org.apache.calcite.rel.type.RelDataTypeField>) unless you know what you're doing.
cluster - ClustertraitSet - Trait setleft - Left inputright - Right inputcondition - Join conditionjoinType - Join typevariablesStopped - Set of names of variables which are set by the
LHS and used by the RHS and are not available to
nodes above this LogicalJoin in the treesemiJoinDone - Whether this join has been translated to a
semi-joinsystemFieldList - List of system fields that will be prefixed to
output row type; typically empty but must not be
nullisSemiJoinDone()@Deprecated public LogicalJoin(RelOptCluster cluster, RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped)
@Deprecated public LogicalJoin(RelOptCluster cluster, RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone, com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
public LogicalJoin(RelInput input)
public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped, boolean semiJoinDone, com.google.common.collect.ImmutableList<RelDataTypeField> systemFieldList)
public static LogicalJoin create(RelNode left, RelNode right, RexNode condition, JoinRelType joinType, Set<String> variablesStopped)
public LogicalJoin copy(RelTraitSet traitSet, RexNode conditionExpr, RelNode left, RelNode right, JoinRelType joinType, boolean semiJoinDone)
JoinGeneral contract as RelNode.copy(org.apache.calcite.plan.RelTraitSet, java.util.List<org.apache.calcite.rel.RelNode>).
public RelNode accept(RelShuttle shuttle)
RelNodeaccept in interface RelNodeaccept in class AbstractRelNodeshuttle - Shuttlepublic RelWriter explainTerms(RelWriter pw)
AbstractRelNodesuper.explainTerms, then call the
RelWriterImpl.input(String, RelNode)
and
RelWriterImpl.item(String, Object)
methods for each input and attribute.explainTerms in class Joinpw - Plan writerpublic boolean isSemiJoinDone()
JoinSemiJoin via
JoinAddRedundantSemiJoinRule.
The base implementation returns false.
isSemiJoinDone in class Joinpublic List<RelDataTypeField> getSystemFieldList()
JoingetSystemFieldList in class JoinCopyright © 2012–2015 The Apache Software Foundation. All rights reserved.