d82e67978e99adfedb4e9c3f455e22a9a192d0f3
[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  - CLSQL starts with in transaction AUTOCOMMIT mode. To begin a transaction,
8    START-TRANSACTION has to be called.
9
10
11 2. Underdocumented CommonSQL features:
12
13  - Retrieval immediate
14  - SQL operators: ||, SUBSTR, MINUS, INTERSECT, UNION, NVL 
15
16
17 3. CLSQL extensions to CommonSQL
18
19  - RESULT-TYPES, FIELD-NAMES keywords for SELECT, QUERY, DO-QUERY and 
20    MAP-QUERY. 
21
22  - New types such as wall-time, boolean, and bigint
23
24  - SQL operators: group-by, limit, not-null, ==, is, having, the, uplike,
25    sql-view-class, coalesce, except (just from a quick scan of 
26    operations.lisp)
27
28  - FDML: TRUNCATE-DATABASE, FOR-EACH-ROW and large object 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  - DEF-VIEW-CLASS: DB-CONSTRAINTS, DB-TYPE and VOID-VALUE slot options. 
39
40  - transactions: START-TRANSACTION and IN-TRANSACTION-P. 
41
42  - Tranactions: AUTOCOMMIT
43
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 :on 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    FDDL:         list-*/*-exists-p: :OWNER keyword argument ignored. 
65
66  - SQLITE 
67
68    connection:   specifying ":memory:" gives you an SQLite database in RAM.
69    create-view:  column-list parameter not supported 
70    syntax:       doesn't support the sql SUBSTRING operator. 
71    FDDL:         list-*/*-exists-p: :OWNER keyword argument ignored. 
72
73  - ODBC 
74
75    FDDL:         list-*/*-exists-p: :OWNER keyword argument ignored.