org.eigenbase.rel.rules
Class PushProjectPastSetOpRule
java.lang.Object
org.eigenbase.relopt.RelOptRule
org.eigenbase.rel.rules.PushProjectPastSetOpRule
public class PushProjectPastSetOpRule
- extends RelOptRule
PushProjectPastSetOpRule implements the rule for pushing a ProjectRel
past a SetOpRel. The children of the SetOpRel will project
only the RexInputRefs referenced in the original ProjectRel.
- Version:
- $Id: //open/dev/farrago/src/org/eigenbase/rel/rules/PushProjectPastSetOpRule.java#12 $
- Author:
- Zelaine Fong
| Methods inherited from class org.eigenbase.relopt.RelOptRule |
convert, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, mergeTraitsAndConvert, mergeTraitsAndConvert, toString |
instance
public static final PushProjectPastSetOpRule instance
preserveExprCondition
private PushProjector.ExprCondition preserveExprCondition
- Expressions that should be preserved in the projection
PushProjectPastSetOpRule
private PushProjectPastSetOpRule()
- Creates a PushProjectPastSetOpRule.
PushProjectPastSetOpRule
public PushProjectPastSetOpRule(PushProjector.ExprCondition preserveExprCondition)
- Creates a PushProjectPastSetOpRule with an explicit condition whether
to preserve expressions.
- Parameters:
preserveExprCondition - Condition whether to preserve expressions
onMatch
public void onMatch(RelOptRuleCall call)
- Description copied from class:
RelOptRule
- Receives notification about a rule match. At the time that this method is
called,
call.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.eigenbase.rel.RelNode) to
register the expression.
- Specified by:
onMatch in class RelOptRule
- Parameters:
call - Rule call- See Also:
RelOptRule.matches(RelOptRuleCall)