r9336: 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / TODO
diff --git a/TODO b/TODO
index 4bc5eafe430921c7012cda874ffea2dff95ba972..0beae4cde3e4dab4a2b23f5fbfa099ecff5d5e94 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,89 +1,48 @@
-GENERAL 
-
-* test on (and port to) scl, mcl and openmcl; 
-* implement remaining functions for CLSQL AODBC backend; 
-* port UncommonSQL ODBC and Oracle backends to CLSQL. 
-
+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
 
 COMMONSQL SPEC
 
 * Missing: 
 
-  RECONNECT 
-  CACHE-TABLE-QUERIES 
-  *CACHE-TABLE-QUERIES-DEFAULT*
-  *DEFAULT-UPDATE-OBJECTS-MAX-LEN* 
   UPDATE-OBJECT-JOINS 
-  INSTANCE-REFRESHED
-
 
 * Incompatible 
 
-
- >> Initialisation and connection 
-
-    CONNECT 
-     o should accept string as connection spec 
-
-    DISCONNECT
-     o should accept string as connection spec 
-
-    INITIALIZE-DATABASE-TYPE
-     o should initialise appropriate backend 
-
-    STATUS 
-     o what is the behaviour in CommonSQL (esp :full parameter)? 
-
-
  >> The functional sql interface 
   
     SELECT 
-      o should accept keyword arg :refresh and call INSTANCE-REFRESHED
-      o should return (values result-list field-names)
-      o should coerce values returned as strings to appropriate lisp type
-
-    QUERY 
-      o should return (values result-list field-names) 
-      o should coerce values returned as strings to appropriate lisp type
-
-    LIST-ATTRIBUTE-TYPES
-      o should return list of (attribute datatype precision scale nullable)    
-
-    LOOP 
-      o the extension is currently CMUCL specific 
-
-
- >> The object-oriented sql interface
-
-    DEF-VIEW-CLASS
-      o get :target-slot working 
-      o implement :retrieval :immediate 
-
-    LIST-CLASSES 
-      o keyword arg :root-class should do something (portable)
-
-    DO-QUERY,MAP-QUERY,LOOP
-      o should work with object queries as well as functional ones 
-
+      o keyword arg :refresh should function as advertised 
 
  >> 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 
 
+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
@@ -91,9 +50,8 @@ NOTES ABOUT THE BACKENDS
 MYSQL 
 
 drop-index:   requires a table to be specified with the :from keyword parameter
-transactions: don't seem to work  
 views:        mysql does not support views  
-queries:      nested subqueries do not seem to work 
+queries:      nested subqueries are not supported
 
 SQLITE