|
|||||||||
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.SingleRel org.eigenbase.rel.convert.ConverterRelImpl
public abstract class ConverterRelImpl
Abstract implementation of ConverterRel
.
Field Summary | |
---|---|
protected RelTraitSet |
inTraits
|
protected RelTraitDef |
traitDef
|
Fields inherited from class org.eigenbase.rel.AbstractRelNode |
---|
digest, id, rowType, traits |
Fields inherited from interface org.eigenbase.rel.RelNode |
---|
emptyArray |
Constructor Summary | |
---|---|
protected |
ConverterRelImpl(RelOptCluster cluster,
RelTraitDef traitDef,
RelTraitSet traits,
RelNode child)
Creates a ConverterRelImpl. |
Method Summary | |
---|---|
protected Error |
cannotImplement()
|
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
protected static RelTraitSet |
convertTraits(RelTraitSet traits,
RelTrait trait)
Returns a new trait set based on traits , with a different
trait for a given type of trait. |
protected CallingConvention |
getInputConvention()
|
RelTraitSet |
getInputTraits()
Returns the trait of the input relational expression. |
RelTraitDef |
getTraitDef()
Returns the definition of trait which this converter works on. |
boolean |
isDistinct()
Returns whether the same value will not come out twice. |
Methods inherited from class org.eigenbase.rel.SingleRel |
---|
childrenAccept, deriveRowType, explain, getChild, getInputs, getRows, replaceInput |
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
---|
clone, cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTable, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, 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.convert.ConverterRel |
---|
getChild |
Methods inherited from interface org.eigenbase.rel.RelNode |
---|
childrenAccept, clone, collectVariablesSet, collectVariablesUsed, explain, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraits, getVariablesStopped, isAccessTo, isValid, onRegister, recomputeDigest, registerCorrelVariable, replaceInput, setCorrelVariable |
Field Detail |
---|
protected RelTraitSet inTraits
protected final RelTraitDef traitDef
Constructor Detail |
---|
protected ConverterRelImpl(RelOptCluster cluster, RelTraitDef traitDef, RelTraitSet traits, RelNode child)
cluster
- planner's clustertraitDef
- the RelTraitDef this converter convertstraits
- the output traits of this converterchild
- child rel (provides input traits)Method Detail |
---|
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
protected Error cannotImplement()
public boolean isDistinct()
RelNode
false
, derived classes should override.
isDistinct
in interface RelNode
isDistinct
in class AbstractRelNode
protected CallingConvention getInputConvention()
public RelTraitSet getInputTraits()
ConverterRel
getInputTraits
in interface ConverterRel
public RelTraitDef getTraitDef()
ConverterRel
The input relational expression (matched by the rule) must possess
this trait and have the value given by ConverterRel.getInputTraits()
, and the
traits of the output of this converter given by RelNode.getTraits()
will
have one trait altered and the other orthogonal traits will be the same.
getTraitDef
in interface ConverterRel
protected static RelTraitSet convertTraits(RelTraitSet traits, RelTrait trait)
traits
, with a different
trait for a given type of trait. Clones traits
, and then
replaces the existing trait matching trait.getTraitDef()
with trait
.
traits
- the set of traits to converttrait
- the converted trait
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |