|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eigenbase.rel.AbstractRelNode org.eigenbase.relopt.hep.HepRelVertex
public class HepRelVertex
HepRelVertex wraps a real RelNode
as a vertex in a DAG representing
the entire query expression.
Field Summary | |
---|---|
private RelNode |
currentRel
Wrapped rel currently chosen for implementation of expression. |
Fields inherited from class org.eigenbase.rel.AbstractRelNode |
---|
digest, id, rowType, traits |
Fields inherited from interface org.eigenbase.rel.RelNode |
---|
emptyArray |
Constructor Summary | |
---|---|
HepRelVertex(RelNode rel)
|
Method Summary | |
---|---|
HepRelVertex |
clone()
Clones this RelNode. |
protected String |
computeDigest()
Computes the digest. |
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
protected RelDataType |
deriveRowType()
|
RelNode |
getCurrentRel()
|
double |
getRows()
Returns an estimate of the number of rows this relational expression will return. |
boolean |
isDistinct()
Returns whether the same value will not come out twice. |
(package private) void |
replaceRel(RelNode newRel)
Replaces the implementation for this expression with a new one. |
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
---|
childrenAccept, cloneTraits, collectVariablesSet, collectVariablesUsed, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, replaceInput, setCorrelVariable, toString |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private RelNode currentRel
Constructor Detail |
---|
HepRelVertex(RelNode rel)
Method Detail |
---|
public HepRelVertex 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
protected RelDataType deriveRowType()
deriveRowType
in class AbstractRelNode
public boolean isDistinct()
RelNode
false
, derived classes should override.
isDistinct
in interface RelNode
isDistinct
in class AbstractRelNode
protected String computeDigest()
AbstractRelNode
computeDigest
in class AbstractRelNode
void replaceRel(RelNode newRel)
newRel
- new expressionpublic RelNode getCurrentRel()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |