DOCUMENTATION TO DO LIST

1. Variances from CommonSQL

 - Ideally, this will be extremely minimal

 - The SQL syntax state functions are macros in CLSQL. 

2. Underdocumented CommonSQL features:

 - Retrieval immediate
 - SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL 

2. CLSQL extensions to CommonSQL

 - 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, 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*

 - 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, DB-TYPE and VOID-VALUE 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. 

 - Tranactions: AUTOCOMMIT

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. 

 - 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. 

