r9425: Docstrings, docstrings, docstrings.
[clsql.git] / doc / TODO
1 DOCUMENTATION TO DO LIST
2
3 1. Variances from CommonSQL
4
5  - Ideally, this will be extremely minimal
6
7  - The SQL syntax state functions are macros in CLSQL. 
8
9 2. Underdocumented CommonSQL features:
10
11  - Retrieval immediate
12  - SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL 
13
14 2. CLSQL extensions to CommonSQL
15
16  - RESULT-TYPES, FIELD-NAMES keywords for SELECT, QUERY, DO-QUERY and 
17    MAP-QUERY. 
18
19  - New types such as wall-time, boolean, and bigint
20
21  - SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
22    sql-view-class, coalesce, except (just from a quick scan of 
23    operations.lisp)
24
25  - FDDL: list-views, view-exists-p, list-indexes, list-table-indexes,
26    index-exists-p, create-sequence, drop-sequence, list-sequences,
27    sequence-exists-p, sequence-next, sequence-last, set-sequence-position
28
29  - FDML: TRUNCATE-DATABASE, DESCRIBE-TABLE, FOR-EACH-ROW and large object 
30    support. 
31
32  - OODML: *db-auto-sync*
33
34  - SELECT: additional keyword arguments accepted include :LIMIT, :OFFSET, 
35    :INNER-JOIN and :ON. 
36
37  - SQL-RECORDING-P: also accepts :both and :either values for the TYPE 
38    parameter. 
39
40  - DROP-TABLE/DROP-VIEW/DROP-INDEX: keyword arg :if-does-not-exist. 
41
42  - DROP-INDEX: keyword arg :on (for MySQL). 
43
44  - DEF-VIEW-CLASS: DB-CONSTRAINTS and DB-TYPE slot options. 
45
46  - CREATE-TABLE: keyword args :TRANSACTIONS (for MySQL) and :CONSTRAINTS 
47                  description arg accepts optional DB-TYPE string. 
48
49  - transactions: START-TRANSACTION and IN-TRANSACTION-P. 
50
51  - FIND-DATABASE: :db-type keyword arg. 
52
53  - CONNECT: :make-default and :pool keyword args. 
54
55
56 4. Documenting lower level, non-CommonSQL functions (some of this is already 
57    done). 
58
59  - connection pools
60  - database-query-result-set 
61  - with-default-database, with-database, create-database, probe-database, 
62    destroy-database, list-databases. 
63  
64
65 5. Notes on any peculiarities of each of the backends (e.g., unsupported 
66    features, notable extensions etc.). 
67
68  - MYSQL 
69
70    drop-index:   requires a table to be specified with the :from parameter
71    views:        mysql does not support views  
72    queries:      nested subqueries are not supported
73    syntax:       doesn't support the sql concatenation operator (||). 
74                  doesn't support INTERSECT/EXCEPT set operations. 
75    create-table: the transactions keyword arg controls whether the created 
76                  table is an InnoDB table (supporting transactions) or not. 
77
78  - SQLITE 
79
80    connection:   specifying ":memory:" gives you an SQLite database in RAM.
81    create-view:  column-list parameter not supported 
82    syntax:       doesn't support the sql SUBSTRING operator. 
83