public abstract class JoinPrel extends DrillJoinRelBase implements Prel
Modifier and Type | Field and Description |
---|---|
protected boolean |
isSemiJoin |
protected JoinUtils.JoinCategory |
joincategory |
filterNulls, leftKeys, rightKeys
condition, joinInfo, joinType, variablesSet
DRILL_PHYSICAL
Constructor and Description |
---|
JoinPrel(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) |
JoinPrel(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) |
Modifier and Type | Method and Description |
---|---|
<T,X,E extends Throwable> |
accept(PrelVisitor<T,X,E> logicalVisitor,
X value) |
protected void |
buildJoinConditions(List<JoinCondition> conditions,
List<String> leftFields,
List<String> rightFields,
List<Integer> leftKeys,
List<Integer> rightKeys)
Build the list of join conditions for this join.
|
org.apache.calcite.rel.type.RelDataType |
deriveRowType() |
org.apache.calcite.rel.RelNode |
getJoinInput(int offset,
org.apache.calcite.rel.RelNode input)
Check to make sure that the fields of the inputs are the same as the output field names.
|
boolean |
isSemiJoin() |
boolean |
isValid(org.apache.calcite.util.Litmus litmus,
org.apache.calcite.rel.RelNode.Context context)
A Drill physical rel which is semi join will have output row type with fields from only
left side of the join.
|
Iterator<Prel> |
iterator() |
boolean |
needsFinalColumnReordering() |
computeCartesianJoinCost, computeHashJoinCost, computeHashJoinCostWithRowCntKeySize, computeLogicalJoinCost, computeSelfCost, estimateRowCount, getLeftKeys, getRightKeys, isUnique, uniqueFieldNames
accept, analyzeCondition, copy, copy, createJoinType, deriveJoinRowType, estimateJoinedRows, explainTerms, getChildExps, getCondition, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoinDone
childrenAccept, getInputs, getLeft, getRight, replaceInput
accept, collectVariablesSet, collectVariablesUsed, computeDigest, computeSelfCost, equals, explain, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraitSet, getVariablesStopped, hashCode, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, sole, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getEncoding, getPhysicalOperator, getSupportedEncodings, prepareForLateralUnnestPipeline
accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, computeSelfCost, copy, estimateRowCount, explain, getChildExps, getCollationList, getConvention, getCorrelVariable, getExpectedInputRowType, getInput, getInputs, getQuery, getRelTypeName, getRows, getRowType, getTable, getVariablesSet, getVariablesStopped, isDistinct, isKey, isValid, metadata, onRegister, recomputeDigest, register, replaceInput
getCluster, getDescription, getDigest, getId, getTraitSet
forEach, spliterator
getCondition, getJoinType, getLeft, getRight
protected final boolean isSemiJoin
protected JoinUtils.JoinCategory joincategory
public JoinPrel(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)
public JoinPrel(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)
public <T,X,E extends Throwable> T accept(PrelVisitor<T,X,E> logicalVisitor, X value) throws E extends Throwable
public org.apache.calcite.rel.RelNode getJoinInput(int offset, org.apache.calcite.rel.RelNode input)
public boolean needsFinalColumnReordering()
needsFinalColumnReordering
in interface Prel
protected void buildJoinConditions(List<JoinCondition> conditions, List<String> leftFields, List<String> rightFields, List<Integer> leftKeys, List<Integer> rightKeys)
AggregateRemoveRule
conditions
- populated list of join conditionsleftFields
- join fields from the left inputrightFields
- join fields from the right inputpublic boolean isSemiJoin()
isSemiJoin
in interface DrillJoin
isSemiJoin
in class org.apache.calcite.rel.core.Join
public boolean isValid(org.apache.calcite.util.Litmus litmus, org.apache.calcite.rel.RelNode.Context context)
isValid
in interface org.apache.calcite.rel.RelNode
isValid
in class org.apache.calcite.rel.core.Join
public org.apache.calcite.rel.type.RelDataType deriveRowType()
deriveRowType
in class org.apache.calcite.rel.core.Join
Copyright © 1970 The Apache Software Foundation. All rights reserved.