org.eigenbase.relopt.volcano
Class RuleQueue.PhaseMatchList

java.lang.Object
  extended by org.eigenbase.relopt.volcano.RuleQueue.PhaseMatchList
Enclosing class:
RuleQueue

private static class RuleQueue.PhaseMatchList
extends Object

PhaseMatchList represents a set of rule-matches for a particular phase of the planner's execution.


Field Summary
(package private)  List<VolcanoRuleMatch> list
          Current list of VolcanoRuleMatches for this phase.
(package private)  MultiMap<RelSubset,VolcanoRuleMatch> matchMap
          Multi-map of RelSubset to VolcanoRuleMatches.
(package private)  Set<String> names
          A set of rule-match names contained in list.
(package private)  VolcanoPlannerPhase phase
          The VolcanoPlannerPhase that this PhaseMatchList is used in.
 
Constructor Summary
RuleQueue.PhaseMatchList(VolcanoPlannerPhase phase)
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

phase

final VolcanoPlannerPhase phase
The VolcanoPlannerPhase that this PhaseMatchList is used in.


list

final List<VolcanoRuleMatch> list
Current list of VolcanoRuleMatches for this phase. New rule-matches are appended to the end of this list. When removing a rule-match, the list is sorted and the highest importance rule-match removed. It is important for performance that this list remain mostly sorted.


names

final Set<String> names
A set of rule-match names contained in list. Allows fast detection of duplicate rule-matches.


matchMap

final MultiMap<RelSubset,VolcanoRuleMatch> matchMap
Multi-map of RelSubset to VolcanoRuleMatches. Used to clear the rule-match's cached importance related RelSubset importances are modified (e.g., due to invocation of RuleQueue.boostImportance(Collection, double)).

Constructor Detail

RuleQueue.PhaseMatchList

RuleQueue.PhaseMatchList(VolcanoPlannerPhase phase)