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