* Large object testing
* Test bigint type
* :db-constraint tests
-* *update-records-on-make-instance*
+* test *db-auto-sync*
+* test SELECT caching
+* for-each-row macro
+* universal-time
COMMONSQL SPEC
-* Missing:
-
- UPDATE-OBJECT-JOINS
-
* Incompatible
>> The functional sql interface
SELECT
o keyword arg :refresh should function as advertised
-
- >> The object-oriented sql interface
-
- DEF-VIEW-CLASS
- o implement :retrieval :immediate
>> Symbolic SQL syntax
o Complete sql expressions (see operations.lisp)
- substr
- some
- order-by
- times
- nvl
- null
- distinct
- except
- intersect
- between
- userenv
+ 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.
+
+COMMIT,ROLLBACK,START-TRANSACTION:
+ When COMMIT or ROLLBACK are called outside of WITH-TRANSACTION, an sql
+ transaction must be explicitly started first with START-TRANSACTION.
+
+OPTIMIZATIONS
+
+* Revisit result-type list creation,perhaps caching
+
POSSIBLE EXTENSIONS
* port Oracle backend to UFFI
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
+create-view: column-list parameter not supported
+syntax: doesn't support the sql SUBSTRING operator.