net.sf.saffron.rel
Class RemoveTrivialProjectRule
java.lang.Object
|
+--net.sf.saffron.opt.VolcanoRule
|
+--net.sf.saffron.rel.RemoveTrivialProjectRule
- public class RemoveTrivialProjectRule
- extends VolcanoRule
Rule which, given a ProjectRel
node which merely returns its input,
converts the node into its child.
For example, ProjectRel(ArrayReader(a), {$input0})
becomes
ArrayReader(a)
.
RemoveTrivialProjectRule
public RemoveTrivialProjectRule()
onMatch
public void onMatch(VolcanoRuleCall call)
- Description copied from class:
VolcanoRule
- This method is called every time the rule matches. 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 VolcanoRuleCall.transformTo(net.sf.saffron.rel.SaffronRel)
to register the expression.
- Specified by:
onMatch
in class VolcanoRule
isIdentity
private static boolean isIdentity(RexNode[] exps,
int fieldCount)