| 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.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()
RelNodeTraits 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 RelNodeclone in class AbstractRelNodepublic RelOptCost computeSelfCost(RelOptPlanner planner)
RelNodeNOTE 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 RelNodecomputeSelfCost in class AbstractRelNodepublic double getRows()
RelNodeNOTE 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 RelNodegetRows in class AbstractRelNodeprotected RelDataType deriveRowType()
deriveRowType in class AbstractRelNodepublic boolean isDistinct()
RelNodefalse, derived classes should override.
isDistinct in interface RelNodeisDistinct in class AbstractRelNodeprotected String computeDigest()
AbstractRelNode
computeDigest in class AbstractRelNodevoid replaceRel(RelNode newRel)
newRel - new expressionpublic RelNode getCurrentRel()
  | 
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||