Package org.apache.calcite.rel.rules
Class ProjectRemoveRule
java.lang.Object
org.apache.calcite.plan.RelOptRule
org.apache.calcite.plan.RelRule<ProjectRemoveRule.Config>
org.apache.calcite.rel.rules.ProjectRemoveRule
- All Implemented Interfaces:
- SubstitutionRule,- TransformationRule
@Enclosing
public class ProjectRemoveRule
extends RelRule<ProjectRemoveRule.Config>
implements SubstitutionRule
Planner rule that,
 given a 
Project node that
 merely returns its input, converts the node into its child.
 For example, Project(ArrayReader(a), {$input0}) becomes
 ArrayReader(a).
- 
Nested Class SummaryNested ClassesNested classes/interfaces inherited from class org.apache.calcite.plan.RelRuleRelRule.Done, RelRule.MatchHandler<R extends RelOptRule>, RelRule.OperandBuilder, RelRule.OperandDetailBuilder<R extends RelNode>, RelRule.OperandTransformNested classes/interfaces inherited from class org.apache.calcite.plan.RelOptRuleRelOptRule.ConverterRelOptRuleOperand
- 
Field SummaryFields inherited from class org.apache.calcite.plan.RelOptRuledescription, operands, relBuilderFactory
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedCreates a ProjectRemoveRule.ProjectRemoveRule(RelBuilderFactory relBuilderFactory) Deprecated.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanWhether the planner should automatically prune old node when there is at least 1 equivalent rel generated by the rule.static booleanvoidonMatch(RelOptRuleCall call) Receives notification about a rule match.static RelNodeReturns the child of a project if the project is trivial, otherwise the project itself.Methods inherited from class org.apache.calcite.plan.RelOptRuleany, convert, convert, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unordered
- 
Constructor Details- 
ProjectRemoveRuleCreates a ProjectRemoveRule.
- 
ProjectRemoveRuleDeprecated.
 
- 
- 
Method Details- 
onMatchDescription copied from class:RelOptRuleReceives notification about a rule match. At the time that this method is called,call.relsholds 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:
- onMatchin class- RelOptRule
- Parameters:
- call- Rule call
- See Also:
 
- 
stripReturns the child of a project if the project is trivial, otherwise the project itself.
- 
isTrivial
- 
autoPruneOldpublic boolean autoPruneOld()Description copied from interface:SubstitutionRuleWhether the planner should automatically prune old node when there is at least 1 equivalent rel generated by the rule.Default is false, the user needs to prune the old node manually in the rule. - Specified by:
- autoPruneOldin interface- SubstitutionRule
 
 
-