r8821: integrate usql support
[clsql.git] / usql / TODO
1
2 GENERAL 
3
4 * test on (and port to) sbcl, lispworks, acl, scl, mcl and openmcl; 
5 * implement remaining functions for CLSQL AODBC backend; 
6 * port UncommonSQL ODBC and Oracle backends to CLSQL. 
7
8
9 COMMONSQL SPEC
10
11 * Missing: 
12
13   RECONNECT 
14   CACHE-TABLE-QUERIES 
15   *CACHE-TABLE-QUERIES-DEFAULT*
16   *DEFAULT-UPDATE-OBJECTS-MAX-LEN* 
17   UPDATE-OBJECT-JOINS 
18   INSTANCE-REFRESHED
19
20
21 * Incompatible 
22
23
24  >> Initialisation and connection 
25
26     CONNECT 
27      o should accept string as connection spec 
28
29     DISCONNECT
30      o should accept string as connection spec 
31
32     INITIALIZE-DATABASE-TYPE
33      o should initialise appropriate backend 
34
35     STATUS 
36      o what is the behaviour in CommonSQL (esp :full parameter)? 
37
38
39  >> The functional sql interface 
40   
41     SELECT 
42       o should accept keyword arg :refresh and call INSTANCE-REFRESHED
43       o should return (values result-list field-names)
44       o should coerce values returned as strings to appropriate lisp type
45
46     QUERY 
47       o should return (values result-list field-names) 
48       o should coerce values returned as strings to appropriate lisp type
49
50     LIST-ATTRIBUTE-TYPES
51       o should return list of (attribute datatype precision scale nullable)     
52
53     LOOP 
54       o the extension is currently CMUCL specific 
55
56
57  >> The object-oriented sql interface
58
59     DEF-VIEW-CLASS
60       o get :target-slot working 
61       o implement :retrieval :immediate 
62
63     LIST-CLASSES 
64       o keyword arg :root-class should do something (portable)
65
66     DO-QUERY,MAP-QUERY,LOOP
67       o should work with object queries as well as functional ones 
68
69
70  >> Symbolic SQL syntax 
71
72       o Complete sql expressions (see operations.lisp)
73
74          substr
75          some 
76          order-by 
77          times 
78          nvl
79          null 
80          distinct
81          except 
82          intersect 
83          between
84          userenv
85
86       o variables (e.g., table identifiers) should be instantiated at runtime 
87
88
89
90 NOTES ABOUT THE BACKENDS
91
92 MYSQL 
93
94 drop-index:   requires a table to be specified with the :from keyword parameter
95 transactions: don't seem to work  
96 views:        mysql does not support views  
97 queries:      nested subqueries do not seem to work 
98
99 SQLITE 
100
101 create-view: column-list parameter not supported