1 * validate expressions with regard to scheme in their scope
2 * detect statements on single tables and group the corresponding generated code in one class
3 * check names (functions and bindings) for uniqueness
4 * support/test other SQL engines
5 * generate code for more languages
7 * SQL (as understood by sqlite3 at least) is really too permissive, decide what to do
8 * type check expressions