Class TableAccessToQueryRule


class TableAccessToQueryRule
extends VolcanoRule

A CreateSqlQueryRule converts a branch of the tree of relational expressions into a JdbcQuery (a SQL statement to be executed against a JDBC data source). A parse tree cannot be converted if it contains references to tables in different databases, or non-JDBC relations (for example, Java arrays in a from clause), or Java-specific constructs (for example, method-calls). For now, it works bottom up. We convert a JavaTableAccessRel to a JdbcQuery. Then we grow it by grafting on filters to the WHERE clause, projections in the SELECT list, and so forth.

Field Summary
Fields inherited from class net.sf.saffron.opt.VolcanoRule
description, planner
Constructor Summary
(package private) TableAccessToQueryRule()
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


Method Detail


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