|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eigenbase.relopt.volcano.RelSet
class 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) List<AbstractConverter> |
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) boolean |
inMetadataQuery
Reentrancy flag. |
(package private) RelNode |
rel
|
(package private) List<RelNode> |
rels
|
(package private) List<RelSubset> |
subsets
|
private static Logger |
tracer
|
(package private) Set<String> |
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<String> |
variablesUsed
Names of variables which are used by relational expressions in this set. |
Constructor Summary | |
---|---|
RelSet()
|
Method Summary | |
---|---|
RelSubset |
add(RelNode rel)
Adds a relational expression to a set, with its results available under a particular calling convention. |
(package private) void |
addInternal(RelNode rel)
Adds an expression rel to this set, without creating a
RelSubset . |
(package private) RelSubset |
getOrCreateSubset(RelOptCluster cluster,
RelTraitSet traits)
|
List<RelNode> |
getParentRels()
Returns all of the RelNode s which reference RelNode s in
this set. |
List<RelNode> |
getRelsFromAllSubsets()
|
RelSubset |
getSubset(RelTraitSet traits)
|
(package private) void |
mergeWith(VolcanoPlanner planner,
RelSet otherSet)
Merges otherSet into this RelSet. |
(package private) void |
obliterateRelNode(RelNode rel)
|
private void |
postEquivalenceEvent(VolcanoPlanner planner,
RelNode rel)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Logger tracer
final List<RelNode> rels
final List<RelSubset> subsets
List<AbstractConverter> abstractConverters
AbstractConverter
objects which have not yet been
satisfied.
RelSet equivalentSet
RelNode rel
Set<String> variablesPropagated
Set<String> variablesUsed
int id
boolean inMetadataQuery
Constructor Detail |
---|
RelSet()
Method Detail |
---|
public List<RelNode> getParentRels()
RelNode
s which reference RelNode
s in
this set.
public List<RelNode> getRelsFromAllSubsets()
RelNode
s contained by any subset of this set
(does not include the subset objects themselves)public RelSubset getSubset(RelTraitSet traits)
void obliterateRelNode(RelNode rel)
public RelSubset add(RelNode rel)
RelSubset getOrCreateSubset(RelOptCluster cluster, RelTraitSet traits)
private void postEquivalenceEvent(VolcanoPlanner planner, RelNode rel)
void addInternal(RelNode rel)
rel
to this set, without creating a
RelSubset
. (Called only from
RelSubset.add(org.eigenbase.rel.RelNode)
.
rel
- Relational expressionvoid mergeWith(VolcanoPlanner planner, RelSet otherSet)
otherSet
into this RelSet.
One generally calls this method after discovering that two relational
expressions are equivalent, and hence the RelSet
s they
belong to are equivalent also.
After this method completes, otherSet
is obsolete, its
equivalentSet
member points to this RelSet, and this RelSet is
still alive.
planner
- PlannerotherSet
- RelSet which is equivalent to this one
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |