|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eigenbase.rel.AbstractRelNode net.sf.farrago.fennel.rel.FennelMultipleRel net.sf.farrago.fennel.rel.FennelNestedLoopJoinRel
public class FennelNestedLoopJoinRel
FennelNestedLoopJoinRel represents the Fennel implementation of a nested loop join.
Field Summary | |
---|---|
private FennelRelParamId[] |
joinKeyParamIds
|
private JoinRelType |
joinType
|
private Integer[] |
leftJoinKeys
|
private FennelRelParamId |
rootPageIdParamId
|
private double |
rowCount
|
Fields inherited from class net.sf.farrago.fennel.rel.FennelMultipleRel |
---|
inputs |
Fields inherited from class org.eigenbase.rel.AbstractRelNode |
---|
digest, id, rowType, traits |
Fields inherited from interface net.sf.farrago.query.FennelRel |
---|
FENNEL_EXEC_CONVENTION |
Fields inherited from interface org.eigenbase.rel.RelNode |
---|
emptyArray |
Constructor Summary | |
---|---|
FennelNestedLoopJoinRel(RelOptCluster cluster,
RelNode[] inputs,
JoinRelType joinType,
List<String> fieldNameList,
Integer[] leftJoinKeys,
FennelRelParamId[] joinKeyParamIds,
FennelRelParamId rootPageIdParamId,
double rowCount)
Creates a new FennelNestedLoopJoinRel object. |
Method Summary | |
---|---|
FennelNestedLoopJoinRel |
clone()
Clones this RelNode. |
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
protected RelDataType |
deriveRowType()
|
void |
explain(RelOptPlanWriter pw)
|
double |
getRows()
Returns an estimate of the number of rows this relational expression will return. |
Object |
implementFennelChild(FennelRelImplementor implementor)
Visits this relational expression as part of the implementation process. |
FemExecutionStreamDef |
toStreamDef(FennelRelImplementor implementor)
Converts this relational expression to FemExecutionStreamDef
form. |
Methods inherited from class net.sf.farrago.fennel.rel.FennelMultipleRel |
---|
getCollations, getFarragoTypeFactory, getInputs, replaceInput |
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
---|
childrenAccept, cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, setCorrelVariable, toString |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.eigenbase.rel.RelNode |
---|
childrenAccept, collectVariablesSet, collectVariablesUsed, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, registerCorrelVariable, setCorrelVariable |
Field Detail |
---|
private final JoinRelType joinType
private final Integer[] leftJoinKeys
private final FennelRelParamId[] joinKeyParamIds
private final FennelRelParamId rootPageIdParamId
private final double rowCount
Constructor Detail |
---|
public FennelNestedLoopJoinRel(RelOptCluster cluster, RelNode[] inputs, JoinRelType joinType, List<String> fieldNameList, Integer[] leftJoinKeys, FennelRelParamId[] joinKeyParamIds, FennelRelParamId rootPageIdParamId, double rowCount)
cluster
- RelOptCluster for this relinputs
- inputs into the nested loop joinjoinType
- type of joinfieldNameList
- if not null, the row type will have these field
namesleftJoinKeys
- column offsets corresponding to join keys from LHS
inputjoinKeyParamIds
- dynamic parameters corresponding to LHS join keysrootPageIdParamId
- dynamic parameter corresponding to the root of
the temp indexrowCount
- rowCount returned from the joinMethod Detail |
---|
public FennelNestedLoopJoinRel clone()
RelNode
Traits of the RelNode must be explicitly cloned, using AbstractRelNode.inheritTraitsFrom(AbstractRelNode)
, as the RelNode may
have traits of which it has no knowledge. Example implementation:
public MyRelNode clone() { MyRelNode clone = new MyRelNode(...); clone.inheritTraitsFrom(this); return clone; }N.B.: This method must be overridden whenever an existing, concrete RelNode is extended. Otherwise, calling clone() will produce a differently typed RelNode, resulting in invalid or incorrect query plans.
clone
in interface RelNode
clone
in class AbstractRelNode
public RelOptCost computeSelfCost(RelOptPlanner planner)
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.eigenbase.rel.RelNode)
, which gives plugins a
chance to override the rel's default ideas about cost.
computeSelfCost
in interface RelNode
computeSelfCost
in class AbstractRelNode
public double getRows()
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.eigenbase.rel.RelNode)
, which gives plugins a chance to
override the rel's default ideas about row count.
getRows
in interface RelNode
getRows
in class AbstractRelNode
public void explain(RelOptPlanWriter pw)
explain
in interface RelNode
explain
in class AbstractRelNode
protected RelDataType deriveRowType()
deriveRowType
in class FennelMultipleRel
public FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
FennelRel
FemExecutionStreamDef
form. In the process, the relational expression will almost certainly
call FennelRelImplementor.visitFennelChild(net.sf.farrago.query.FennelRel, int)
on each of its
children.
implementor
- for generating Java code
public Object implementFennelChild(FennelRelImplementor implementor)
FennelRel
FennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor)
.
implementFennelChild
in interface FennelRel
implementFennelChild
in class FennelMultipleRel
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |