Package org.apache.calcite.rel.convert
Class TraitMatchingRule
java.lang.Object
org.apache.calcite.plan.RelOptRule
org.apache.calcite.plan.RelRule<TraitMatchingRule.Config>
org.apache.calcite.rel.convert.TraitMatchingRule
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.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.calcite.plan.RelRule
RelRule.Done, RelRule.MatchHandler<R extends RelOptRule>, RelRule.OperandBuilder, RelRule.OperandDetailBuilder<R extends RelNode>, RelRule.OperandTransform
Nested classes/interfaces inherited from class org.apache.calcite.plan.RelOptRule
RelOptRule.ConverterRelOptRuleOperand
-
Field Summary
Fields inherited from class org.apache.calcite.plan.RelOptRule
description, operands, relBuilderFactory
-
Constructor Summary
ModifierConstructorDescriptionTraitMatchingRule
(ConverterRule converterRule) Deprecated.TraitMatchingRule
(ConverterRule converterRule, RelBuilderFactory relBuilderFactory) Deprecated.protected
Creates a TraitMatchingRule. -
Method Summary
Modifier and TypeMethodDescriptionstatic TraitMatchingRule.Config
config
(ConverterRule converterRule, RelBuilderFactory relBuilderFactory) Creates a configuration for a TraitMatchingRule.@Nullable Convention
Returns the convention of the result of firing this rule, null if not known.void
onMatch
(RelOptRuleCall call) Receives notification about a rule match.Methods inherited from class org.apache.calcite.plan.RelOptRule
any, convert, convert, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unordered
-
Constructor Details
-
TraitMatchingRule
Creates a TraitMatchingRule. -
TraitMatchingRule
Deprecated. -
TraitMatchingRule
@Deprecated public TraitMatchingRule(ConverterRule converterRule, RelBuilderFactory relBuilderFactory) Deprecated.
-
-
Method Details
-
config
public static TraitMatchingRule.Config config(ConverterRule converterRule, RelBuilderFactory relBuilderFactory) Creates a configuration for a TraitMatchingRule.- Parameters:
converterRule
- Rule to be restricted; rule must take a single operand expecting a single inputrelBuilderFactory
- Builder for relational expressions
-
getOutConvention
Description copied from class:RelOptRule
Returns the convention of the result of firing this rule, null if not known.- Overrides:
getOutConvention
in classRelOptRule
- Returns:
- Convention of the result of firing this rule, null if not known
-
onMatch
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.apache.calcite.rel.RelNode, java.util.Map<org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode>, org.apache.calcite.plan.RelHintsPropagator)
to register the expression.- Specified by:
onMatch
in classRelOptRule
- Parameters:
call
- Rule call- See Also:
-