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