r9359: Fixes for PRINT-QUERY and sql concatenation operator (||).
[clsql.git] / TODO
diff --git a/TODO b/TODO
index 1aca8f2d3ae2c904ea16e246cc221973e289c2c5..29e242cc601ae4802ed239c75656bfdf946c75d4 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,22 +1,17 @@
-GENERAL 
-
-* port Oracle backend to UFFI.
-* consider adding large object support to mysql and odbc
-
 TESTS TO ADD
 
 * CACHE-TABLE-QUERIES
-* :VOID-VALUE, use a new view-class with several fields with different void-values
-* :db-kind :key adds an index for that key, complicated by different
-  backends show autogenerated primary key in different ways.
-* New universal and bigint types, add tests for other types
+* 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
-COMMONSQL SPEC
+* Test bigint type
+* :db-constraint tests
+* test *db-auto-sync* 
+* test SELECT caching
+* for-each-row macro
+* universal-time 
 
-* Missing: 
-
-  UPDATE-OBJECT-JOINS 
+COMMONSQL SPEC
 
 * Incompatible 
 
@@ -24,41 +19,34 @@ COMMONSQL SPEC
   
     SELECT 
       o keyword arg :refresh should function as advertised 
-      o should return (values result-list field-names)
-      o should coerce values returned as strings to appropriate lisp type
 
-    QUERY 
-      o should coerce values returned as strings to appropriate lisp type
-       for SQLite backend
+ >> Symbolic SQL syntax 
 
- >> The object-oriented sql interface
+      o Complete sql expressions (see operations.lisp)
 
-    DEF-VIEW-CLASS
-      o get :target-slot working 
-      o implement :retrieval :immediate 
+         nvl (Oracle specific) 
+         userenv (Oracle specific) 
+        minus (Oracle specific: does the same as EXCEPT) 
 
-    DO-QUERY,MAP-QUERY,LOOP
-      o should work with object queries as well as functional ones 
+      o variables (e.g., table identifiers) should be instantiated at runtime 
 
 
- >> Symbolic SQL syntax 
+VARIANCES FROM COMMONSQL
 
-      o Complete sql expressions (see operations.lisp)
+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.
 
-         substr
-         some 
-         order-by 
-         times 
-         nvl
-         null 
-         distinct
-         except 
-         intersect 
-         between
-         userenv
+OPTIMIZATIONS
+* Revisit result-type list creation,perhaps caching
 
-      o variables (e.g., table identifiers) should be instantiated at runtime 
+POSSIBLE EXTENSIONS
 
+* port Oracle backend to UFFI
+* large object support 
+* add support for prepared statements
 
 
 NOTES ABOUT THE BACKENDS
@@ -68,7 +56,9 @@ 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 
+create-view:  column-list parameter not supported 
+syntax:       doesn't support the sql SUBSTRING operator.