public class VolcanoRuleCall extends RelOptRuleCall
VolcanoRuleCall
implements the RelOptRuleCall
interface
for VolcanoPlanner.Modifier and Type | Field and Description |
---|---|
private java.util.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,
java.util.Map<RelNode,java.util.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,
java.util.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, transformTo
protected final VolcanoPlanner volcanoPlanner
protected VolcanoRuleCall(VolcanoPlanner planner, RelOptRuleOperand operand, RelNode[] rels, java.util.Map<RelNode,java.util.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, java.util.Map<RelNode,RelNode> equiv)
RelOptRuleCall
Called 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 RelOptRuleCall
rel
- 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–2019 The Apache Software Foundation. All rights reserved.