r9424: * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner...
[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 and QUERY
17
18  - New types such as wall-time, boolean, and bigint
19
20  - SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
21    sql-view-class, coalesce, except (just from a quick scan of 
22    operations.lisp)
23
24  - FDDL: list-views, view-exists-p, list-indexes, list-table-indexes,
25    index-exists-p, create-sequence, drop-sequence, list-sequences,
26    sequence-exists-p, sequence-next, sequence-last, set-sequence-position
27
28  - OODML: *db-auto-sync*
29
30  - SELECT: additional keyword arguments accepted include :LIMIT, :OFFSET, 
31    :INNER-JOIN and :ON. 
32
33  - SQL-RECORDING-P: also accepts :both and :either values for the TYPE 
34    parameter. 
35
36  - DROP-TABLE/DROP-VIEW/DROP-INDEX: keyword arg :if-does-not-exist. 
37
38  - DROP-INDEX: keyword arg :on (for MySQL). 
39
40  - DEF-VIEW-CLASS: DB-CONSTRAINTS and DB-TYPE slot options. 
41
42  - CREATE-TABLE: keyword args :TRANSACTIONS (for MySQL) and :CONSTRAINTS 
43                  description arg accepts optional DB-TYPE string. 
44
45 4. Documenting lower level, non-CommonSQL functions (some of this is already 
46    done). 
47
48  - connection pools
49  - database-query-result-set 
50
51
52 5. Notes on any peculiarities of each of the backends (e.g., unsupported 
53    features, notable extensions etc.). 
54
55  - MYSQL 
56
57    drop-index:   requires a table to be specified with the :from parameter
58    views:        mysql does not support views  
59    queries:      nested subqueries are not supported
60    syntax:       doesn't support the sql concatenation operator (||). 
61                  doesn't support INTERSECT/EXCEPT set operations. 
62    create-table: the transactions keyword arg controls whether the created 
63                  table is an InnoDB table (supporting transactions) or not. 
64
65  - SQLITE 
66
67    connection:   specifying ":memory:" gives you an SQLite database in RAM.
68    create-view:  column-list parameter not supported 
69    syntax:       doesn't support the sql SUBSTRING operator. 
70