Class CassandraRules.CassandraProjectRule
- java.lang.Object
-
- org.apache.calcite.plan.RelOptRule
-
- org.apache.calcite.rel.convert.ConverterRule
-
- org.apache.calcite.adapter.cassandra.CassandraRules.CassandraConverterRule
-
- org.apache.calcite.adapter.cassandra.CassandraRules.CassandraProjectRule
-
- Enclosing class:
- CassandraRules
private static class CassandraRules.CassandraProjectRule extends CassandraRules.CassandraConverterRule
Rule to convert aLogicalProject
to aCassandraProject
.
-
-
Field Summary
Fields Modifier and Type Field Description private static CassandraRules.CassandraProjectRule
INSTANCE
-
Fields inherited from class org.apache.calcite.adapter.cassandra.CassandraRules.CassandraConverterRule
out
-
Fields inherited from class org.apache.calcite.plan.RelOptRule
description, operands, relBuilderFactory
-
-
Constructor Summary
Constructors Modifier Constructor Description private
CassandraProjectRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RelNode
convert(RelNode rel)
Converts a relational expression to the target trait(s) of this rule.boolean
matches(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, onMatch
-
Methods inherited from class org.apache.calcite.plan.RelOptRule
any, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, hashCode, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unordered
-
-
-
-
Field Detail
-
INSTANCE
private static final CassandraRules.CassandraProjectRule INSTANCE
-
-
Method Detail
-
matches
public boolean matches(RelOptRuleCall call)
Description copied from class:RelOptRule
Returns whether this rule could possibly match the given operands.This method is an opportunity to apply side-conditions to a rule. The
RelOptPlanner
calls this method after matching all operands of the rule, and before callingRelOptRule.onMatch(RelOptRuleCall)
.In implementations of
RelOptPlanner
which may queue up a matchedRelOptRuleCall
for 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:
matches
in classRelOptRule
- Parameters:
call
- Rule call which has been determined to match all operands of this rule- Returns:
- whether this RelOptRule matches a given RelOptRuleCall
-
convert
public RelNode convert(RelNode rel)
Description copied from class:ConverterRule
Converts a relational expression to the target trait(s) of this rule.Returns null if conversion is not possible.
- Specified by:
convert
in classConverterRule
-
-