|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--net.sf.saffron.opt.RelSet
A RelSet
is an equivalence-set of expressions; that is, a set
of expressions which have identical semantics. We are generally
interested in using the expression which has the lowest cost.
All of the expressions in an RelSet
have the same calling
convention.
Field Summary | |
(package private) ArrayList |
abstractConverters
List of AbstractConverter objects which have not yet been
satisfied. |
(package private) RelSet |
equivalentSet
Set to the superseding set when this is found to be equivalent to another set. |
(package private) int |
id
|
(package private) SaffronRel |
rel
|
(package private) ArrayList |
rels
|
(package private) ArrayList |
subsets
|
(package private) Set |
variablesPropagated
Names of variables which are set by relational expressions in this set and available for use by parent and child expressions. |
(package private) Set |
variablesUsed
Names of variables which are used by relational expressions in this set. |
Constructor Summary | |
(package private) |
RelSet()
|
Method Summary | |
RelSubset |
add(SaffronRel rel)
Add a relational expression to a set, with its results available under a particular calling convention. |
(package private) void |
addInternal(SaffronRel rel)
Adds an expression rel to this set, without creating a
RelSubset . |
private void |
failType(SaffronRel rel)
|
(package private) RelSubset |
getOrCreateSubset(VolcanoCluster cluster,
CallingConvention convention)
|
ArrayList |
getParentRels()
Returns all of the SaffronRel s which reference SaffronRel s in this set. |
RelSubset |
getSubset(CallingConvention convention)
|
(package private) void |
mergeWith(VolcanoPlanner planner,
RelSet otherSet)
Merges otherSet into this one. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
final ArrayList rels
final ArrayList subsets
ArrayList abstractConverters
AbstractConverter
objects which have not yet been
satisfied.
RelSet equivalentSet
SaffronRel rel
Set variablesPropagated
Set variablesUsed
int id
Constructor Detail |
RelSet()
Method Detail |
public ArrayList getParentRels()
SaffronRel
s which reference SaffronRel
s in this set.
public RelSubset getSubset(CallingConvention convention)
public RelSubset add(SaffronRel rel)
RelSubset getOrCreateSubset(VolcanoCluster cluster, CallingConvention convention)
void addInternal(SaffronRel rel)
rel
to this set, without creating a
RelSubset
. (Called only from RelSubset.add(net.sf.saffron.rel.SaffronRel)
.
void mergeWith(VolcanoPlanner planner, RelSet otherSet)
otherSet
into this one. You generally call this
method after you discover that two relational expressions are
equivalent, and hence their sets are equivalent also. After you have
called this method, otherSet
is obsolete, this otherSet
is still alive.
private void failType(SaffronRel rel)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |