org.eigenbase.rel.convert
Class TraitMatchingRule
java.lang.Object
org.eigenbase.relopt.RelOptRule
org.eigenbase.rel.convert.TraitMatchingRule
public class TraitMatchingRule
- extends RelOptRule
TraitMatchingRule adapts a converter rule, restricting it to fire only when
its input already matches the expected output trait. This can be used with
HepPlanner
in cases where alternate
implementations are available and it is desirable to minimize converters.
- Version:
- $Id: //open/dev/farrago/src/org/eigenbase/rel/convert/TraitMatchingRule.java#10 $
- Author:
- John V. Sichi
Methods inherited from class org.eigenbase.relopt.RelOptRule |
convert, equals, equals, getOperand, getOperands, getOutTrait, hashCode, matches, mergeTraitsAndConvert, mergeTraitsAndConvert, toString |
converter
private final ConverterRule converter
TraitMatchingRule
public TraitMatchingRule(ConverterRule converterRule)
- Creates a new TraitMatchingRule.
- Parameters:
converterRule
- rule to be restricted; rule must take a single
operand expecting a single input
getOutConvention
public CallingConvention getOutConvention()
- Description copied from class:
RelOptRule
- Returns the calling convention of the result of firing this rule, null if
not known.
- Overrides:
getOutConvention
in class RelOptRule
onMatch
public void onMatch(RelOptRuleCall call)
- Description copied from class:
RelOptRule
- Receives notification about a rule match. At the time that this method is
called,
call.rels
holds the set of relational
expressions which match the operands to the rule;
call.rels[0]
is the root expression.
Typically a rule would check that the nodes are valid matches, creates
a new expression, then calls back RelOptRuleCall.transformTo(org.eigenbase.rel.RelNode)
to
register the expression.
- Specified by:
onMatch
in class RelOptRule
- Parameters:
call
- Rule call- See Also:
RelOptRule.matches(RelOptRuleCall)