org.eigenbase.relopt.volcano
Class AbstractConverter
java.lang.Object
  
org.eigenbase.rel.AbstractRelNode
      
org.eigenbase.rel.SingleRel
          
org.eigenbase.rel.convert.ConverterRelImpl
              
org.eigenbase.relopt.volcano.AbstractConverter
- All Implemented Interfaces: 
 - Cloneable, ConverterRel, RelNode
 
public class AbstractConverter
- extends ConverterRelImpl
 
Converts a relational expression to any given output convention.
 
Unlike most ConverterRels, an abstract converter is always
 abstract. You would typically create an AbstractConverter when
 it is necessary to transform a relational expression immediately; later,
 rules will transform it into relational expressions which can be implemented.
 
 If an abstract converter cannot be satisfied immediately (because the
 source subset is abstract), the set is flagged, so this converter will be
 expanded as soon as a non-abstract relexp is added to the set.
 
 
 
 
 
 
 
 
 
| Methods inherited from class org.eigenbase.rel.AbstractRelNode | 
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 interface org.eigenbase.rel.RelNode | 
childrenAccept, collectVariablesSet, collectVariablesUsed, 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 | 
 
AbstractConverter
public AbstractConverter(RelOptCluster cluster,
                         RelNode rel,
                         CallingConvention outConvention)
AbstractConverter
public AbstractConverter(RelOptCluster cluster,
                         RelNode rel,
                         RelTraitDef traitDef,
                         RelTraitSet traits)
clone
public AbstractConverter clone()
- Description copied from interface: 
RelNode 
- Clones this 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.
- Specified by:
 clone in interface RelNode- Specified by:
 clone in class AbstractRelNode
 
- Returns:
 - a clone of this RelNode
 
 
 
computeSelfCost
public RelOptCost computeSelfCost(RelOptPlanner planner)
- Description copied from interface: 
RelNode 
- Returns the cost of this plan (not including children). The base
 implementation throws an error; derived classes should override.
 
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.
- Specified by:
 computeSelfCost in interface RelNode- Overrides:
 computeSelfCost in class ConverterRelImpl
 
 
 
explain
public void explain(RelOptPlanWriter pw)
- Specified by:
 explain in interface RelNode- Overrides:
 explain in class SingleRel