net.sf.saffron.rel.jdbc
Class AddFilterToQueryRule

java.lang.Object
  |
  +--net.sf.saffron.opt.VolcanoRule
        |
        +--net.sf.saffron.rel.jdbc.AddFilterToQueryRule

class AddFilterToQueryRule
extends VolcanoRule

AddFilterToQueryRule grafts a FilterRel onto a JdbcQuery.

This rule only works if the query's select clause is "*". If you start with a FilterRel on a ProjectRel on a JavaTableAccessRel, this will not be the case. You can fix it by pushing the filter through the project. (todo: Implement a rule to do this.)

Since:
Nov 26, 2003
Version:
$Id: $
Author:
jhyde

Field Summary
 
Fields inherited from class net.sf.saffron.opt.VolcanoRule
description, planner
 
Constructor Summary
(package private) AddFilterToQueryRule()
           
 
Method Summary
 void onMatch(VolcanoRuleCall call)
          This method is called every time the rule matches.
 
Methods inherited from class net.sf.saffron.opt.VolcanoRule
convert, getOutConvention, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AddFilterToQueryRule

AddFilterToQueryRule()
Method Detail

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

SourceForge.net_Logo