net.sf.saffron.rel.jdbc
Class TableAccessToQueryRule
java.lang.Object
|
+--net.sf.saffron.opt.VolcanoRule
|
+--net.sf.saffron.rel.jdbc.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.
TableAccessToQueryRule
TableAccessToQueryRule()
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