Class MatchLeafRule
- java.lang.Object
-
- com.apple.foundationdb.record.query.plan.temp.PlannerRule<RelationalExpression>
-
- com.apple.foundationdb.record.query.plan.temp.rules.MatchLeafRule
-
@API(EXPERIMENTAL) public class MatchLeafRule extends PlannerRule<RelationalExpression>
Expression-based transformation rule that matches any leaf expression. The rule creates matches of typePartialMatch
for any match between this expression and a leaf expression in aMatchCandidate
. It seeds the memoization structure for partial matches that is kept as part ofExpressionRef
. It prepares further rules such asMatchIntermediateRule
andAdjustMatchRule
.
-
-
Constructor Summary
Constructors Constructor Description MatchLeafRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Optional<Class<? extends Bindable>>
getRootOperator()
Note: Transformation rules for expressions are partitioned by the class of the root matcher.void
onMatch(PlannerRuleCall call)
-
Methods inherited from class com.apple.foundationdb.record.query.plan.temp.PlannerRule
getMatcher, toString
-
-
-
-
Method Detail
-
getRootOperator
public Optional<Class<? extends Bindable>> getRootOperator()
Note: Transformation rules for expressions are partitioned by the class of the root matcher. This does not work here as this rule is non-specific which means that it matches sub classes ofRelationalExpression
and not justRelationalExpression
itself. In order for this rule to fall into the set of rules that is always utilized we returnOptional.empty()
here.- Overrides:
getRootOperator
in classPlannerRule<RelationalExpression>
- Returns:
Optional.empty()
- See Also:
PlannerRuleSet
-
onMatch
public void onMatch(@Nonnull PlannerRuleCall call)
- Specified by:
onMatch
in classPlannerRule<RelationalExpression>
-
-