TESTS TO ADD * CACHE-TABLE-QUERIES * Test that ":db-kind :key" adds an index for that key. This is complicated by different backends showing autogenerated primary key in different ways. * Large object testing * Test bigint type * :db-constraint tests * test *db-auto-sync* * test SELECT caching * for-each-row macro * universal-time COMMONSQL SPEC * Incompatible >> The functional sql interface SELECT o keyword arg :refresh should function as advertised >> Symbolic SQL syntax o Complete sql expressions (see operations.lisp) nvl (Oracle specific) userenv (Oracle specific) minus (Oracle specific: does the same as EXCEPT) o variables (e.g., table identifiers) should be instantiated at runtime VARIANCES FROM COMMONSQL UPDATE-OBJECT-JOINS: Rather than simply reading the values for each object, to meet CommonSQL spec need to generate a single query to read values for all objects, up to max-len count. OPTIMIZATIONS * Revisit result-type list creation,perhaps caching POSSIBLE EXTENSIONS * port Oracle backend to UFFI * large object support * add support for prepared statements NOTES ABOUT THE BACKENDS MYSQL drop-index: requires a table to be specified with the :from keyword parameter views: mysql does not support views queries: nested subqueries are not supported syntax: doesn't support the sql concatenation operator (||). SQLITE create-view: column-list parameter not supported syntax: doesn't support the sql SUBSTRING operator.