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 TypeMethodDescriptionvoidtransformTo(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:RelOptRuleCallRegisters 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:
transformToin 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
-