r9425: Docstrings, docstrings, docstrings.
[clsql.git] / doc / TODO
index c55c54bf59ee33ac822531068e515f19642c203c..3220070454f4de65fb5a4157c4c84eaf54fdd321 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -4,29 +4,80 @@ DOCUMENTATION TO DO LIST
 
  - Ideally, this will be extremely minimal
 
+ - The SQL syntax state functions are macros in CLSQL. 
+
 2. Underdocumented CommonSQL features:
 
  - Retrieval immediate
- - SQL operators: ||, SUBSTR, EXCEPT, INTERSECT, UNION ...
+ - SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL 
 
 2. CLSQL extensions to CommonSQL
 
- - RESULT-TYPES, FIELD-NAMES keywords for SELECT and QUERY
+ - RESULT-TYPES, FIELD-NAMES keywords for SELECT, QUERY, DO-QUERY and 
+   MAP-QUERY. 
 
  - New types such as wall-time, boolean, and bigint
 
  - SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
-   sql-view-class (just from a quick scan of operations.lisp)
+   sql-view-class, coalesce, except (just from a quick scan of 
+   operations.lisp)
 
  - FDDL: list-views, view-exists-p, list-indexes, list-table-indexes,
    index-exists-p, create-sequence, drop-sequence, list-sequences,
    sequence-exists-p, sequence-next, sequence-last, set-sequence-position
 
+ - FDML: TRUNCATE-DATABASE, DESCRIBE-TABLE, FOR-EACH-ROW and large object 
+   support. 
+
  - OODML: *db-auto-sync*
 
-4. Documenting lower level, non-CommonSQL functions like connection
-   pools and database-query-result-set. Some of this is already done.
+ - SELECT: additional keyword arguments accepted include :LIMIT, :OFFSET, 
+   :INNER-JOIN and :ON. 
+
+ - SQL-RECORDING-P: also accepts :both and :either values for the TYPE 
+   parameter. 
+
+ - DROP-TABLE/DROP-VIEW/DROP-INDEX: keyword arg :if-does-not-exist. 
+
+ - DROP-INDEX: keyword arg :on (for MySQL). 
+
+ - DEF-VIEW-CLASS: DB-CONSTRAINTS and DB-TYPE slot options. 
+
+ - CREATE-TABLE: keyword args :TRANSACTIONS (for MySQL) and :CONSTRAINTS 
+                 description arg accepts optional DB-TYPE string. 
+
+ - transactions: START-TRANSACTION and IN-TRANSACTION-P. 
+
+ - FIND-DATABASE: :db-type keyword arg. 
+
+ - CONNECT: :make-default and :pool keyword args. 
+
+
+4. Documenting lower level, non-CommonSQL functions (some of this is already 
+   done). 
+
+ - connection pools
+ - database-query-result-set 
+ - with-default-database, with-database, create-database, probe-database, 
+   destroy-database, list-databases. 
+
+5. Notes on any peculiarities of each of the backends (e.g., unsupported 
+   features, notable extensions etc.). 
+
+ - MYSQL 
+
+   drop-index:   requires a table to be specified with the :from parameter
+   views:        mysql does not support views  
+   queries:      nested subqueries are not supported
+   syntax:       doesn't support the sql concatenation operator (||). 
+                 doesn't support INTERSECT/EXCEPT set operations. 
+   create-table: the transactions keyword arg controls whether the created 
+                 table is an InnoDB table (supporting transactions) or not. 
 
-5. Notes on any features unsupported by each of the backends.
+ - SQLITE 
 
+   connection:   specifying ":memory:" gives you an SQLite database in RAM.
+   create-view:  column-list parameter not supported 
+   syntax:       doesn't support the sql SUBSTRING operator.