Class JdbcRules.JdbcJoinRule
- Enclosing class:
JdbcRules
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.calcite.rel.convert.ConverterRule
ConverterRule.ConfigNested 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.OperandTransformNested classes/interfaces inherited from class org.apache.calcite.plan.RelOptRule
RelOptRule.ConverterRelOptRuleOperand -
Field Summary
Fields inherited from class org.apache.calcite.rel.convert.ConverterRule
outFields inherited from class org.apache.calcite.plan.RelOptRule
description, operands, relBuilderFactory -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJdbcJoinRule(ConverterRule.Config config) Called from the Config. -
Method Summary
Modifier and TypeMethodDescription@Nullable RelNodeConverts aJoininto aJdbcJoin.@Nullable RelNodeConverts a relational expression to the target trait(s) of this rule.static JdbcRules.JdbcJoinRulecreate(JdbcConvention out) Creates a JdbcJoinRule.booleanmatches(RelOptRuleCall call) Returns whether this rule could possibly match the given operands.Methods inherited from class org.apache.calcite.rel.convert.ConverterRule
getInTrait, getOutConvention, getOutTrait, getTraitDef, isGuaranteed, onMatchMethods inherited from class org.apache.calcite.plan.RelOptRule
any, convert, convert, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, hashCode, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unordered
-
Constructor Details
-
JdbcJoinRule
Called from the Config.
-
-
Method Details
-
create
Creates a JdbcJoinRule. -
convert
Description copied from class:ConverterRuleConverts a relational expression to the target trait(s) of this rule.Returns null if conversion is not possible.
- Specified by:
convertin classConverterRule
-
convert
Converts aJoininto aJdbcJoin.- Parameters:
join- Join operator to convertconvertInputTraits- Whether to convert input tojoin's JDBC convention- Returns:
- A new JdbcJoin
-
matches
Description copied from class:RelOptRuleReturns whether this rule could possibly match the given operands.This method is an opportunity to apply side-conditions to a rule. The
RelOptPlannercalls this method after matching all operands of the rule, and before callingRelOptRule.onMatch(RelOptRuleCall).In implementations of
RelOptPlannerwhich may queue up a matchedRelOptRuleCallfor a long time before callingRelOptRule.onMatch(RelOptRuleCall), this method is beneficial because it allows the planner to discard rules earlier in the process.The default implementation of this method returns
true. It is acceptable for any implementation of this method to give a false positives, that is, to say that the rule matches the operands but haveRelOptRule.onMatch(RelOptRuleCall)subsequently not generate any successors.The following script is useful to identify rules which commonly produce no successors. You should override this method for these rules:
awk ' /Apply rule/ {rule=$4; ruleCount[rule]++;} /generated 0 successors/ {ruleMiss[rule]++;} END { printf "%-30s %s %s\n", "Rule", "Fire", "Miss"; for (i in ruleCount) { printf "%-30s %5d %5d\n", i, ruleCount[i], ruleMiss[i]; } } ' FarragoTrace.log- Overrides:
matchesin classRelOptRule- Parameters:
call- Rule call which has been determined to match all operands of this rule- Returns:
- whether this RelOptRule matches a given RelOptRuleCall
-