public class VolcanoRuleCall extends RelOptRuleCall
VolcanoRuleCall implements the RelOptRuleCall interface
for VolcanoPlanner.| Modifier and Type | Field and Description |
|---|---|
protected VolcanoPlanner |
volcanoPlanner |
id, LOGGER, nodeInputs, operand0, rels, rule| Modifier | Constructor and Description |
|---|---|
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 |
|---|---|
protected void |
onMatch()
Called when all operands have matched.
|
void |
transformTo(RelNode rel,
Map<RelNode,RelNode> equiv,
RelHintsPropagator handler)
Registers that a rule has produced an equivalent relational expression.
|
builder, getChildRels, getMetadataQuery, getOperand0, getParents, getPlanner, getRelList, getRels, getRule, isRuleExcluded, rel, setChildRels, transformTo, transformTo, 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 inputspublic void transformTo(RelNode rel, Map<RelNode,RelNode> equiv, RelHintsPropagator handler)
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().
The hints of the root relational expression of
the rule call(this.rels[0])
are copied to the new relational expression(rel)
with specified handler handler.
transformTo in class RelOptRuleCallrel - Relational expression equivalent to the root relational
expression of the rule call, call.rels(0)equiv - Map of other equivalenceshandler - Handler to customize the relational expression that registers
into the planner, the first parameter is the root relational expression
and the second parameter is the new relational expressionprotected void onMatch()
Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.