| Package | Description |
|---|---|
| org.apache.calcite.plan.volcano |
Optimizes relational expressions.
|
| org.apache.calcite.rel.metadata |
Defines metadata interfaces and utilities for relational
expressions.
|
| Modifier and Type | Field and Description |
|---|---|
protected RelSubset |
VolcanoPlanner.root |
private RelSubset |
VolcanoRuleMatch.targetSubset |
| Modifier and Type | Field and Description |
|---|---|
(package private) Set<RelSubset> |
RuleQueue.boostedSubsets
The set of RelSubsets whose importance is currently in an artificially
raised state.
|
private IdentityHashMap<RelNode,RelSubset> |
VolcanoPlanner.mapRel2Subset
|
(package private) com.google.common.collect.Multimap<RelSubset,VolcanoRuleMatch> |
RuleQueue.PhaseMatchList.matchMap
Multi-map of RelSubset to VolcanoRuleMatches.
|
private com.google.common.collect.Ordering<RelSubset> |
RuleQueue.relImportanceOrdering
Compares relexps according to their cached 'importance'.
|
(package private) Map<RelSubset,Double> |
RuleQueue.subsetImportances
The importance of each subset.
|
(package private) List<RelSubset> |
RelSet.subsets |
| Modifier and Type | Method and Description |
|---|---|
RelSubset |
RelSet.add(RelNode rel)
Adds a relational expression to a set, with its results available under a
particular calling convention.
|
private RelSubset |
VolcanoPlanner.addRelToSet(RelNode rel,
RelSet set) |
private RelSubset |
VolcanoPlanner.canonize(RelSubset subset)
If a subset has one or more equivalent subsets (owing to a set having
merged with another), returns the subset which is the leader of the
equivalence class.
|
RelSubset |
VolcanoPlanner.ensureRegistered(RelNode rel,
RelNode equivRel) |
(package private) RelSubset |
RelSet.getOrCreateSubset(RelOptCluster cluster,
RelTraitSet traits) |
RelSubset |
VolcanoPlanner.getSubset(RelNode rel)
Returns the subset that a relational expression belongs to.
|
RelSubset |
VolcanoPlanner.getSubset(RelNode rel,
RelTraitSet traits) |
RelSubset |
VolcanoPlanner.getSubset(RelNode rel,
RelTraitSet traits,
boolean createIfMissing) |
RelSubset |
RelSet.getSubset(RelTraitSet traits) |
private RelSubset |
VolcanoRuleMatch.guessSubset()
Returns a guess as to which subset (that is equivalence class of
relational expressions combined with a set of physical traits) the result
of this rule will belong to.
|
RelSubset |
VolcanoPlanner.register(RelNode rel,
RelNode equivRel) |
private RelSubset |
VolcanoPlanner.registerImpl(RelNode rel,
RelSet set)
Registers a new expression
exp and queues up rule matches. |
private RelSubset |
VolcanoPlanner.registerSubset(RelSet set,
RelSubset subset) |
| Modifier and Type | Method and Description |
|---|---|
(package private) Set<RelSubset> |
RelSubset.getParentSubsets(VolcanoPlanner planner)
Returns the collection of distinct subsets that contain a RelNode one
of whose inputs is in this subset.
|
private static List<RelSubset> |
RelSubset.inputSubsets(RelNode parent) |
| Modifier and Type | Method and Description |
|---|---|
private void |
RelSet.addAbstractConverters(VolcanoPlanner planner,
RelOptCluster cluster,
RelSubset subset,
boolean subsetToOthers) |
private RelSubset |
VolcanoPlanner.canonize(RelSubset subset)
If a subset has one or more equivalent subsets (owing to a set having
merged with another), returns the subset which is the leader of the
equivalence class.
|
int |
RuleQueue.RelImportanceComparator.compare(RelSubset rel1,
RelSubset rel2) |
(package private) double |
RuleQueue.computeImportance(RelSubset subset)
Computes the importance of a node.
|
private double |
RuleQueue.computeImportanceOfChild(RelMetadataQuery mq,
RelSubset child,
RelSubset parent)
Returns the importance of a child to a parent.
|
(package private) double |
RuleQueue.getImportance(RelSubset rel)
Returns the importance of an equivalence class of relational expressions.
|
void |
RuleQueue.recompute(RelSubset subset)
Equivalent to
recompute(subset, false). |
void |
RuleQueue.recompute(RelSubset subset,
boolean force)
Recomputes the importance of the given RelSubset.
|
private RelSubset |
VolcanoPlanner.registerSubset(RelSet set,
RelSubset subset) |
(package private) void |
RuleQueue.updateImportance(RelSubset subset,
Double importance) |
| Modifier and Type | Method and Description |
|---|---|
void |
RuleQueue.boostImportance(Collection<RelSubset> subsets,
double factor)
Artificially boosts the importance of the given
RelSubsets by a
given factor. |
private void |
RuleQueue.checkDuplicateSubsets(Deque<RelSubset> subsets,
RelOptRuleOperand operand,
RelNode[] rels)
Recursively checks whether there are any duplicate subsets along any path
from root of the operand tree to one of the leaves.
|
(package private) void |
RelSubset.propagateCostImprovements(VolcanoPlanner planner,
RelMetadataQuery mq,
RelNode rel,
Set<RelSubset> activeSet)
Checks whether a relexp has made its subset cheaper, and if it so,
recursively checks whether that subset's parents have gotten cheaper.
|
(package private) void |
RelSubset.propagateCostImprovements0(VolcanoPlanner planner,
RelMetadataQuery mq,
RelNode rel,
Set<RelSubset> activeSet) |
| Constructor and Description |
|---|
AbstractConverter(RelOptCluster cluster,
RelSubset rel,
RelTraitDef traitDef,
RelTraitSet traits) |
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.