Package org.apache.calcite.plan.hep
Class HepRuleCall
java.lang.Object
org.apache.calcite.plan.RelOptRuleCall
org.apache.calcite.plan.hep.HepRuleCall
HepRuleCall implements
RelOptRuleCall
for a HepPlanner
. It
remembers transformation results so that the planner can choose which one (if
any) should replace the original expression.-
Field Summary
Fields inherited from class org.apache.calcite.plan.RelOptRuleCall
id, LOGGER, nodeInputs, operand0, rels, rule
-
Method Summary
Modifier and TypeMethodDescriptionvoid
transformTo
(RelNode rel, Map<RelNode, RelNode> equiv, RelHintsPropagator handler) Registers that a rule has produced an equivalent relational expression.Methods inherited from class org.apache.calcite.plan.RelOptRuleCall
builder, getChildRels, getMetadataQuery, getOperand0, getParents, getPlanner, getRelList, getRels, getRule, isRuleExcluded, rel, setChildRels, transformTo, transformTo, transformTo
-
Method Details
-
transformTo
Description copied from class:RelOptRuleCall
Registers that a rule has produced an equivalent relational expression.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 byrel.getTraits()
will be copied fromthis.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 handlerhandler
.- Specified by:
transformTo
in classRelOptRuleCall
- Parameters:
rel
- 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 expression
-