saffron.sql
Class TableAccessToQueryRule
java.lang.Object
|
+--saffron.opt.Rule
|
+--saffron.sql.TableAccessToQueryRule
- class TableAccessToQueryRule
- extends Rule
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 JavaTableAccess
to a
JdbcQuery
. Then we grow it by grafting on filters to the WHERE
clause, projections in the SELECT list, and so forth.
Method Summary |
void |
onMatch(RuleCall call)
This method is called every time the rule matches. |
TableAccessToQueryRule
TableAccessToQueryRule()
onMatch
public void onMatch(RuleCall call)
- Description copied from class:
Rule
- 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 RuleCall.transformTo(saffron.rel.Rel)
to
register the expression.
- Specified by:
onMatch
in class Rule