|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eigenbase.relopt.RelOptRule
com.lucidera.opt.LoptModifyRemovableSelfJoinRule
public class LoptModifyRemovableSelfJoinRule
LoptModifyRemovableSelfJoinRule implements a rule that modifies the inputs
into a removable self-join so that they are in a standard format that will be
recognized by LoptRemoveSelfJoinRule.
Each input into the join is already a simple LcsRowScanRel. There
needs to be a FilterRel and ProjectRel on top of each of the
row scans. So, this rule adds the missing ProjectRel and/or FilterRel. The FilterRel contains a dummy IS TRUE expression while
the ProjectRel simply projects each column. Both will be removed
later by LoptRemoveSelfJoinRule.
| Fields inherited from class org.eigenbase.relopt.RelOptRule |
|---|
ANY, description, operands |
| Constructor Summary | |
|---|---|
LoptModifyRemovableSelfJoinRule(RelOptRuleOperand operand,
String id)
Creates a LoptModifyRemovableSelfJoinRule. |
|
| Method Summary | |
|---|---|
private ProjectRel |
addFilter(ProjectRel projRel)
Inserts a FilterRel with a TRUE condition in between a ProjectRel and its input. |
private ProjectRel |
addProject(RelNode filterRel)
Inserts a ProjectRel on top of a filter node. |
private ProjectRel |
addProjectAndFilter(RelNode rowScan)
Inserts a ProjectRel and FilterRel on top of a row scan. |
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 |
|---|
public static final LoptModifyRemovableSelfJoinRule instanceRowScanOnLeft
public static final LoptModifyRemovableSelfJoinRule instanceRowScanOnRight
public static final LoptModifyRemovableSelfJoinRule instanceFilterOnLeft
public static final LoptModifyRemovableSelfJoinRule instanceProjectOnLeft
public static final LoptModifyRemovableSelfJoinRule instanceFilterOnRight
public static final LoptModifyRemovableSelfJoinRule instanceProjectOnRight
| Constructor Detail |
|---|
public LoptModifyRemovableSelfJoinRule(RelOptRuleOperand operand,
String id)
operand - Root operand, must not be nullid - Description of rule| Method Detail |
|---|
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.eigenbase.rel.RelNode) to
register the expression.
onMatch in class RelOptRulecall - Rule callRelOptRule.matches(RelOptRuleCall)private ProjectRel addProjectAndFilter(RelNode rowScan)
ProjectRel and FilterRel on top of a row scan.
rowScan - the row scan
private ProjectRel addProject(RelNode filterRel)
ProjectRel on top of a filter node.
filterRel - the filter node
ProjectRel treeprivate ProjectRel addFilter(ProjectRel projRel)
FilterRel with a TRUE condition in between a ProjectRel and its input.
projRel - the ProjectRel
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||