public class VolcanoRuleCall extends RelOptRuleCall
VolcanoRuleCall implements the RelOptRuleCall interface
for VolcanoPlanner.| Modifier and Type | Field and Description |
|---|---|
private List<RelNode> |
generatedRelList
List of
RelNode generated by this call. |
protected VolcanoPlanner |
volcanoPlanner |
id, LOGGER, nodeInputs, operand0, rels, rule| Modifier | Constructor and Description |
|---|---|
(package private) |
VolcanoRuleCall(VolcanoPlanner planner,
RelOptRuleOperand operand)
Creates a rule call.
|
protected |
VolcanoRuleCall(VolcanoPlanner planner,
RelOptRuleOperand operand,
RelNode[] rels,
Map<RelNode,List<RelNode>> nodeInputs)
Creates a rule call, internal, with array to hold bindings.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
match(RelNode rel)
Applies this rule, with a given relational expression in the first slot.
|
private void |
matchRecurse(int solve)
Recursively matches operands above a given solve order.
|
protected void |
onMatch()
Called when all operands have matched.
|
void |
transformTo(RelNode rel,
Map<RelNode,RelNode> equiv)
Registers that a rule has produced an equivalent relational expression.
|
builder, getChildRels, getMetadataQuery, getOperand0, getParents, getPlanner, getRelList, getRels, getRule, rel, setChildRels, transformToprotected final VolcanoPlanner volcanoPlanner
protected VolcanoRuleCall(VolcanoPlanner planner, RelOptRuleOperand operand, RelNode[] rels, Map<RelNode,List<RelNode>> nodeInputs)
planner - Planneroperand - First operand of the rulerels - Array which will hold the matched relational expressionsnodeInputs - For each node which matched with matchAnyChildren
= true, a list of the node's inputsVolcanoRuleCall(VolcanoPlanner planner, RelOptRuleOperand operand)
planner - Planneroperand - First operand of the rulepublic void transformTo(RelNode rel, Map<RelNode,RelNode> equiv)
RelOptRuleCallCalled by the rule whenever it finds a match. The implementation of
this method guarantees that the original relational expression (that is,
this.rels[0]) has its traits propagated to the new
relational expression (rel) and its unregistered children.
Any trait not specifically set in the RelTraitSet returned by
rel.getTraits() will be copied from
this.rels[0].getTraitSet().
transformTo in class RelOptRuleCallrel - Relational expression equivalent to the root relational
expression of the rule call, call.rels(0)equiv - Map of other equivalencesprotected void onMatch()
void match(RelNode rel)
private void matchRecurse(int solve)
solve - Solve order of operand (> 0 and ≤ the operand count)Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.