r10841: 16 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / TODO
diff --git a/TODO b/TODO
index a648df17ccdab28fde7907f956a10aa5fe9863f6..4b85e96bb72fbe6c5f49732d197e16d39a48fa50 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,86 +1,24 @@
-GENERAL 
-
-* test on mcl. SCL no longer affordable to individuals;
-* implement remaining functions for CLSQL AODBC backend;
-* port Oracle backend to UFFI.
-
-COMMONSQL SPEC
-
-* Missing: 
-
-  CACHE-TABLE-QUERIES 
-  *CACHE-TABLE-QUERIES-DEFAULT*
-  *DEFAULT-UPDATE-OBJECTS-MAX-LEN* 
-  UPDATE-OBJECT-JOINS 
-  INSTANCE-REFRESHED
-
-
-* Incompatible 
-
-
- >> Initialisation and connection 
-
-    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)    
-
-
- >> The object-oriented sql interface
-
-    DEF-VIEW-CLASS
-      o get :target-slot working 
-      o implement :retrieval :immediate 
-
-    DO-QUERY,MAP-QUERY,LOOP
-      o should work with object queries as well as functional ones 
-
-
- >> Symbolic SQL syntax 
-
-      o Complete sql expressions (see operations.lisp)
-
-         substr
-         some 
-         order-by 
-         times 
-         nvl
-         null 
-         distinct
-         except 
-         intersect 
-         between
-         userenv
-
-      o variables (e.g., table identifiers) should be instantiated at runtime 
-
-
-
-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 
-
-SQLITE 
-
-create-view: column-list parameter not supported 
+TESTS TO ADD
+
+* Test that ":db-kind :key" adds an index for that key. This is complicated by 
+  different backends showing autogenerated primary key in different ways.
+* :db-constraint tests
+* Number and Char field types
+* symbol slot
+* generalized-boolean slot
+* tests for db-reader and db-writer
+
+OPTIMIZATIONS
+* Revisit result-type list creation, perhaps caching
+* Rework LIST-ATTRIBUTE-TYPES and LIST-INDEXES such that they exhibit their 
+  current behaviours using single database queries.  
+* Possible use of cached attribute type information for operations which 
+  insert/update records as mentioned in the CommonSQL user guide. 
+* Extend caching of generated SQL strings to more complex expressions which 
+  are likely to be repeatedly executed many times. 
+
+POSSIBLE EXTENSIONS
+
+* improve large object api and extend to databases beyond postgresql 
+* add support for prepared statements