com.lucidera.lcs
Class LcsRemoveRidExprRule

java.lang.Object
  extended by org.eigenbase.relopt.RelOptRule
      extended by com.lucidera.lcs.LcsRemoveRidExprRule

public class LcsRemoveRidExprRule
extends RelOptRule

LcsRemoveRidExprRule is a rule for converting rid expressions that appear in a ProjectRel whose child is a EmptyRel into BIGINT null literals. Since the child of the project produces no rows, it doesn't matter what the rid expression returns, so long as the type of the constant matches the original type of the rid expression.

Version:
$Id: //open/dev/farrago/src/com/lucidera/lcs/LcsRemoveRidExprRule.java#6 $
Author:
Zelaine Fong

Nested Class Summary
private  class LcsRemoveRidExprRule.RidExprConverter
          Shuttle that locates rid expressions and converts them to literals with the value 0.
 
Field Summary
static LcsRemoveRidExprRule instance
           
 
Fields inherited from class org.eigenbase.relopt.RelOptRule
ANY, description, operands
 
Constructor Summary
private LcsRemoveRidExprRule()
          Creates a LcsRemoveRidExprRule.
 
Method Summary
 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

instance

public static final LcsRemoveRidExprRule instance
Constructor Detail

LcsRemoveRidExprRule

private LcsRemoveRidExprRule()
Creates a LcsRemoveRidExprRule.

Method Detail

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)