|
|||||||||
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.rel.ValuesRelBase
public abstract class ValuesRelBase
ValuesRelBase
is an abstract base class for implementations of
ValuesRel
.
Field Summary | |
---|---|
protected List<List<RexLiteral>> |
tuples
|
Fields inherited from class org.eigenbase.rel.AbstractRelNode |
---|
digest, id, nextId, rowType, traits |
Fields inherited from interface org.eigenbase.rel.RelNode |
---|
emptyArray |
Constructor Summary | |
---|---|
protected |
ValuesRelBase(RelOptCluster cluster,
RelDataType rowType,
List<List<RexLiteral>> tuples,
RelTraitSet traits)
Creates a new ValuesRelBase. |
Method Summary | |
---|---|
private boolean |
assertRowType()
|
ValuesRelBase |
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. |
List<List<RexLiteral>> |
getTuples()
|
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final List<List<RexLiteral>> tuples
Constructor Detail |
---|
protected ValuesRelBase(RelOptCluster cluster, RelDataType rowType, List<List<RexLiteral>> tuples, RelTraitSet traits)
cluster
- .rowType
- row type for tuples produced by this reltuples
- 2-dimensional array of tuple values to be produced; outer
list contains tuples; each inner list is one tuple; all tuples must be of
same length, conforming to rowTypeMethod Detail |
---|
public List<List<RexLiteral>> getTuples()
private boolean assertRowType()
public ValuesRelBase 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
protected RelDataType deriveRowType()
deriveRowType
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
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |