public class HepRuleCall extends RelOptRuleCall
RelOptRuleCall for a HepPlanner. It
remembers transformation results so that the planner can choose which one (if
any) should replace the original expression.| Modifier and Type | Field and Description |
|---|---|
private List<RelNode> |
results |
id, LOGGER, nodeInputs, operand0, rels, rule| Constructor and Description |
|---|
HepRuleCall(RelOptPlanner planner,
RelOptRuleOperand operand,
RelNode[] rels,
Map<RelNode,List<RelNode>> nodeChildren,
List<RelNode> parents) |
| Modifier and Type | Method and Description |
|---|---|
(package private) List<RelNode> |
getResults() |
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, transformToHepRuleCall(RelOptPlanner planner, RelOptRuleOperand operand, RelNode[] rels, Map<RelNode,List<RelNode>> nodeChildren, List<RelNode> parents)
public 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 equivalencesCopyright © 2012–2018 The Apache Software Foundation. All rights reserved.