r9245: New section on optimizations, especially optimizing JOINs
[clsql.git] / TODO
diff --git a/TODO b/TODO
index 139597f9cb07c5d48bed18984ec4747f4b4f3438..fee5fe3e7ab461357f01334fd37a8dd7aac38b77 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,2 +1,73 @@
+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
+* *update-records-on-make-instance*
 
+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
+
+      o variables (e.g., table identifiers) should be instantiated at runtime 
+
+OPTIMIZATIONS
+
+* Revisit result-type list creation,perhaps caching
+* Use an inner join for :target-slot in SELECTS rather than multiple
+  queries. For example, in the test suite:
+    SELECT address.addressid,address.street_number,... FROM address
+      INNER JOIN employee_address ON employe_address.address_id=address.address_id
+      AND emplid=<id>
+
+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
+
+SQLITE 
+
+create-view: column-list parameter not supported