saffron.opt
Class AbstractConverter
java.lang.Object
|
+--saffron.rel.Rel
|
+--saffron.rel.SingleRel
|
+--saffron.rel.convert.Converter
|
+--saffron.opt.AbstractConverter
- class AbstractConverter
- extends Converter
Converts a relational expression to any given output convention.
Unlike most Converter
s, and 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.
Nested classes inherited from class saffron.rel.Rel |
|
Methods inherited from class saffron.rel.Rel |
computeDigest, getChildExps, getCluster, getCorelVariable, getEnvironment, getId, getInput, getOrCreateCorelVariable, getParentEnv, getQualifier, getQuery, getRelTypeName, getRows, getRowType, getTable, getType, getVariablesStopped, implementExp, implementExps, implementFieldAccess, implementSelf, isAccessTo, isDistinct, onRegister, recomputeDigest, register, registerCorelVariable, setCorelVariable, toString |
outConvention
final CallingConvention outConvention
AbstractConverter
public AbstractConverter(Cluster cluster,
Rel rel,
CallingConvention outConvention)
clone
public Object clone()
- Specified by:
clone
in class Rel
getConvention
public CallingConvention getConvention()
- Description copied from class:
Rel
- Returns a value from
CallingConvention
.
- Overrides:
getConvention
in class Rel
computeSelfCost
public Cost computeSelfCost(Planner planner)
- Description copied from class:
Rel
- Returns the cost of this plan (not including children). The base
implementation throws an error; derived classes should override.
- Overrides:
computeSelfCost
in class Converter
explain
public void explain(PlanWriter pw)
- Overrides:
explain
in class SingleRel