com.lucidera.lcs
Class LcsAddDeletionScanRule
java.lang.Object
org.eigenbase.relopt.RelOptRule
com.lucidera.lcs.LcsAddDeletionScanRule
public class LcsAddDeletionScanRule
- extends RelOptRule
A rule for modifying the input into a row scan to include a scan of the
deletion index.
- Version:
- $Id: //open/dev/farrago/src/com/lucidera/lcs/LcsAddDeletionScanRule.java#10 $
- Author:
- Zelaine Fong
Method Summary |
private boolean |
alreadyCalled(RelOptRuleCall call,
boolean alterTable)
Determines if the deletion scan is already included in the row scan
input, or if this particular instance of the rule shouldn't be fired in
favor of another more specific rule instance. |
void |
onMatch(RelOptRuleCall call)
Receives notification about a rule match. |
Methods inherited from class org.eigenbase.relopt.RelOptRule |
convert, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, mergeTraitsAndConvert, mergeTraitsAndConvert, toString |
instanceNoInputs
public static final LcsAddDeletionScanRule instanceNoInputs
instanceMinusInput
public static final LcsAddDeletionScanRule instanceMinusInput
instanceAnyInput
public static final LcsAddDeletionScanRule instanceAnyInput
LcsAddDeletionScanRule
public LcsAddDeletionScanRule(RelOptRuleOperand operand,
String id)
- Creates an LcsAddDeletionScanRule.
- Parameters:
operand
- Root operand, must not be nullid
- Description of rule
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)
alreadyCalled
private boolean alreadyCalled(RelOptRuleCall call,
boolean alterTable)
- Determines if the deletion scan is already included in the row scan
input, or if this particular instance of the rule shouldn't be fired in
favor of another more specific rule instance. The first is done by
examining the first input into the row scan and seeing if there's a minus
of a search of the deletion index or a search of the deletion index.
- Parameters:
call
- rule callalterTable
- whether we are preparing ALTER TABLE ADD COLUMN
- Returns:
- true if this should be fired