@Value.Enclosing public class ProjectRemoveRule extends RelRule<ProjectRemoveRule.Config> implements SubstitutionRule
Project node that
merely returns its input, converts the node into its child.
For example, Project(ArrayReader(a), {$input0}) becomes
ArrayReader(a).
CalcRemoveRule,
ProjectMergeRule,
CoreRules.PROJECT_REMOVE| Modifier and Type | Class and Description |
|---|---|
static interface |
ProjectRemoveRule.Config
Rule configuration.
|
RelRule.Done, RelRule.MatchHandler<R extends RelOptRule>, RelRule.OperandBuilder, RelRule.OperandDetailBuilder<R extends RelNode>, RelRule.OperandTransformRelOptRule.ConverterRelOptRuleOperanddescription, operands, relBuilderFactory| Modifier | Constructor and Description |
|---|---|
protected |
ProjectRemoveRule(ProjectRemoveRule.Config config)
Creates a ProjectRemoveRule.
|
|
ProjectRemoveRule(RelBuilderFactory relBuilderFactory)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
autoPruneOld()
Whether the planner should automatically prune old node when
there is at least 1 equivalent rel generated by the rule.
|
static boolean |
isTrivial(Project project) |
void |
onMatch(RelOptRuleCall call)
Receives notification about a rule match.
|
static RelNode |
strip(Project project)
Returns the child of a project if the project is trivial, otherwise
the project itself.
|
any, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unorderedprotected ProjectRemoveRule(ProjectRemoveRule.Config config)
@Deprecated public ProjectRemoveRule(RelBuilderFactory relBuilderFactory)
public void onMatch(RelOptRuleCall call)
RelOptRulecall.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.
onMatch in class RelOptRulecall - Rule callRelOptRule.matches(RelOptRuleCall)public static RelNode strip(Project project)
public static boolean isTrivial(Project project)
public boolean autoPruneOld()
SubstitutionRuleDefault is false, the user needs to prune the old node manually in the rule.
autoPruneOld in interface SubstitutionRuleCopyright © 2012-2022 Apache Software Foundation. All Rights Reserved.