public abstract class JoinPrel extends DrillJoinRelBase implements Prel
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
isSemiJoin |
protected JoinUtils.JoinCategory |
joincategory |
filterNulls, leftKeys, rightKeyscondition, joinInfo, joinType, variablesSetDRILL_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, uniqueFieldNamesaccept, analyzeCondition, copy, copy, createJoinType, deriveJoinRowType, estimateJoinedRows, explainTerms, getChildExps, getCondition, getJoinType, getSystemFieldList, getVariablesSet, isSemiJoinDonechildrenAccept, getInputs, getLeft, getRight, replaceInputaccept, 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, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetEncoding, getPhysicalOperator, getSupportedEncodings, prepareForLateralUnnestPipelineaccept, 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, replaceInputgetCluster, getDescription, getDigest, getId, getTraitSetforEach, spliteratorgetCondition, getJoinType, getLeft, getRightprotected 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 Prelprotected void buildJoinConditions(List<JoinCondition> conditions, List<String> leftFields, List<String> rightFields, List<Integer> leftKeys, List<Integer> rightKeys)
AggregateRemoveRuleconditions - populated list of join conditionsleftFields - join fields from the left inputrightFields - join fields from the right inputpublic boolean isSemiJoin()
isSemiJoin in interface DrillJoinisSemiJoin in class org.apache.calcite.rel.core.Joinpublic boolean isValid(org.apache.calcite.util.Litmus litmus,
org.apache.calcite.rel.RelNode.Context context)
isValid in interface org.apache.calcite.rel.RelNodeisValid in class org.apache.calcite.rel.core.Joinpublic org.apache.calcite.rel.type.RelDataType deriveRowType()
deriveRowType in class org.apache.calcite.rel.core.JoinCopyright © 2021 The Apache Software Foundation. All rights reserved.