r9657: Cleanup and document the FDDL.
[clsql.git] / ChangeLog
1 18 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk> 
2         * sql/expressions.lisp: when removing duplicate table identifiers 
3         in the FROM clause of a query, check both table name and alias 
4         are equivalent. 
5         * sql/fdml.lisp: remove DESCRIBE-TABLE. 
6         * sql/db-interface.lisp: remove generics DESCRIBE-TABLE and 
7         DATABASE-DESCRIBE-TABLE. 
8         * sql/package.lisp: remove DESCRIBE-TABLE, DATABASE-DESCRIBE-TABLE 
9         and LIST-TABLE-INDEXES. 
10         * sql/generic-postgresql.lisp: add reader conditional #+nil for 
11         DATABASE-DESCRIBE-TABLE and comment about its uses for 
12         re-implementing LIST-ATTRIBUTE-TYPES with a single SQL query 
13         returning type info for all attributes. 
14         Fix DATABASE-SEQUENCE-LAST. 
15         * sql/fddl.lisp: remove LIST-TABLE-INDEXES and redefine 
16         LIST-INDEXES with additional keyword parameter :ON. 
17         * tests/test-fddl.lisp: replace LIST-TABLE-INDEXES in :fddl/index/3 
18         with LIST-INDEXES (with :ON parameter). 
19         * doc/global-index.xml: remove DESCRIBE-TABLE and LIST-TABLE-INDEXES. 
20         * doc/ref-connect.xml: minor tidying. 
21         * doc/ref-fddl.xml: document the FDDL. 
22         * doc/TODO: removed items done. Moved note about transaction handling 
23         from TODO to here. 
24         * TODO: move note about transaction handling to doc/TODO. Added 
25         optimization note about LIST-ATTRIBUTE-TYPES and LIST-INDEXES. 
26         
27 13 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk> 
28         * Version 2.11.10
29         * sql/syntax.lisp: updated docstrings. 
30         * sql/package.lisp: exported DATABASE-NAME-FROM-SPEC from CLSQL 
31         package.
32         * sql/database.lisp: add docstrings for CREATE-DATABASE, 
33         DESTROY-DATABASE, TRUNCATE-DATABASE and LIST-DATABASES. Replace 
34         CLSQL-GENERIC-ERROR signalled in RECONNECT with SQL-CONNECTION-ERROR. 
35         * doc/ref-syntax.xml, doc/global-index.xml: minor tidying. 
36         * doc/ref-connect.xml: document connection/initialisation. 
37         * doc/ref-fdml.xml: move TRUNCATE-DATABASE reference entry here. 
38         * doc/TODO: remove items done. 
39         * Makefile: add db-oracle to to SUBDIRS. 
40
41 13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
42         * sql/oodml.lisp: Add new serialization functions:
43         WRITE-INSTANCE-TO-STREAM and READ-INSTANCE-FROM-STREAM
44         * sql/expressions.lisp: Avoid duplicate FROM names when selecting
45         from a table that has more than one primary index.
46         * sql/conditions.lisp: Fix printing of closed-database error
47         
48 13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
49         * Version 2.11.9
50         * sql/conditions.lisp: Set initial slot value for message in SQL-WARNING
51         * sql/transactions.lisp: Correctly set slots of SQL-WARNING
52
53 12 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
54         * sql/package.lisp: export DATABASE-TYPE from CLSQL and subclasses 
55         of SQL-EXPRESSION from CLSQL-SYS. 
56         * sql/syntax.lisp: make error signalled in SQL-OPERATION an 
57         SQL-USER-ERROR. Make SQL-OPERATOR return just one value. 
58         * doc/Makefile: added Mandrake linux. 
59         * doc/catalog-redhat.xml, doc/catalog-mandrake.xml: new files. 
60         * doc/appendix.xml: fixed little typo (adsf). 
61         * doc/glossary.xml: removed closed-database and note about 
62         sql-expression, added some entries. 
63         * doc/ref-syntax.xml: documented the symbolic SQL syntax. 
64
65 10 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
66         * Version 2.11.8
67         * db-mysql/mysql-loader.lisp: Remove load of unnecessary zlib library
68         * multiple: Add generalized-boolean type as requested by
69         Edi Weitz
70         * TODO: Added need for test of generalized-boolean
71         
72 9 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
73         * Version 2.11.7 released
74         * uffi/clsql-uffi-loader.lisp: Apply patch from Edi Weitz
75         for loading with clc-register-user-package. Remove personal
76         directory from path lisp.
77         * db-mysql/mysql-loader.lisp: Similar changes
78         
79 8 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
80         * Version 2.11.6 released
81         * sql/oodml.lisp: Commit patch from Edi Weitz
82         to fix symbol writing/reading
83         * TODO: Add need for symbol slot test
84         
85 7 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk> 
86         * sql/package.lisp: remove duplicate export of 
87         *CACHE-TABLE-QUERIES-DEFAULT*. 
88         * doc/ref-*.xml, doc/global-index.xml: new files documenting 
89         the CommonSQL compatible api. 
90         * tests/test-fdml.lisp: modified the test :fdml/transaction/3 to 
91         reflect changes in return values of WITH-TRANSACTION. 
92
93 04 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
94         * tests/README: Fix filename [reported by Bill Clementson]
95         * sql/transactions.lisp: Apply return value patch from
96         Edi Weitz for WITH-TRANSACTION
97         * tests/README: Remove ptester package requirement (as noted
98         by Bill Clementson)
99         
100 03 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
101         * Version 2.11.5 released
102         * examples/clsql-tutorial.lisp: Remove obsolete :nulls-ok attribute,
103         Select connection-spec based on connection type. Bugs reported by
104         Bill Clementson.
105         * uffi/uffi.dll, uffi/uffi.lib: Recompile with Visual Studio 2003
106         * db-mysql/mysql-loader.lisp: Update check for zlibwapi library
107         name on Windows, add \bin\ directory to search path
108         
109 31 May 2004 Marcus Pearce <m.t.pearce@city.ac.uk> 
110         * db-odbc/odbc-sql.lisp: DB-TYPE replaced with DATABASE-TYPE in 
111         DATABASE-CONNECT. 
112         * sql/operations.lisp: substr now generates SUBSTR for use on 
113         Oracle; added a new operator SUBSTRING for use elsewhere. minus 
114         now generates MINUS for use on Oracle. Nvl signals an error if 
115         not called with exactly 2 arguments. Add concat function for use 
116         instead of the || operator on MySQL and Oracle. 
117         * sql/syntax.lisp: changed internal symbol for the || operator to 
118         CONCAT-OP. 
119         * sql/expressions.lisp: removed redundant and unused functions 
120         GENERATE-SQL (cf. SQL-OUTPUT) and DATABASE-CONSTRAINT-DESCRIPTION
121         (cf. MAKE-CONSTRAINTS-DESCRIPTION). 
122         * sql/generics.lisp: removed generic function for 
123         DATABASE-CONSTRAINT-DESCRIPTION (see above). 
124         * tests/test-syntax.lisp: modified/added tests according to changes
125         in sql/operations.lisp. 
126         * tests/test-fdml.lisp: changed SUBSTR to SUBSTRING in test 
127         :fdml/select/21.  
128         * sql/package.lisp: added the operators SQL-SUBSTRING, SQL-CONCAT-OP 
129         and SQL-USERENV to the shared exports list. Removed 
130         ROLLBACK-TRANSACTION, COMMIT-TRANSACTION, DATABASE-START-TRANSACTION, 
131         DATABASE-ABORT-TRANSACTION, DATABASE-COMMIT-TRANSACTION, 
132         TRANSACTION-LEVEL, TRANSACTION,  RECORD-SQL-COMMAND and 
133         RECORD-SQL-RESULT from shared exports list. 
134         
135 30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
136         * db-postgresql/postgresl-sql.lisp: Avoid computing
137         result-types lisp when nil result-types. Return only
138         one value when field-types nil.
139         * db-mysql/mysql-sql.lisp: Simple queries now
140         working with prepared statements.
141         
142 30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
143         * Version 2.11.4: MySQL 4.1 now passes all tests
144         * sql/package.lisp: Add API for prepared statments.
145         * sql/fdml.lisp: Change implicit flatp processing
146         for string map-query for greater CommonSQL conformance.
147         Add high-high API for prepared statements.
148         * tests/test-basic.lisp: Add test for map-query and
149         single argument.
150         * sql/transactions.lisp: Change name/semantics of
151         autocommit to set-autocommit.
152         * sql/generic-postgresql.lisp: Add support for
153         prepared statements. 
154         * tests/test-internal.lisp: New file
155         * sql/odbc-api.lisp: Update to using ODBC V3 protocol
156         * clsql-mysql.asd, clsql-uffi.asd: Remove check and Common Lisp
157         Controller invocation.
158         * db-mysql/mysql-api.lisp: Add support for MySQL 4.1 field structure
159         * sql/expressions.lisp: Avoid emitting double parenthesis when a
160         function contains a subselect. 
161         
162 27 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
163         * Version 2.11.3
164         * sql/ooddl.lisp: Commit patch from Edi Weitz fixing return
165         type (setf slot-value-using-class)
166         * TODO: add not that need a test case for the above fix
167         * db-sqlite: Remove clisp support since clisp can not run CLSQL
168         with its MOP usage
169         * db-oracle/oracle-sql.lisp: By default, use OCIEnvCreate as 
170         introduced in Oracle8. Leave older code selectable by a reader macro
171         for Oracle7 and prior. Avoid use of OCIServerAttach since CLSQL
172         uses OCILogon and does not the more complex session management.
173         
174 26 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
175         * sql/oodml.lisp: Commit universal-time typo patch from Edi Weitz
176         * test/test-init.lisp: Add universal-time slot to person.
177         * test/test-fddl.lisp: Add tests of universal-time slot
178         * test/test-ooddl.lisp: Test universal-time slot in an object
179         * TODO: Remove need for universal-time test     
180         * debian/rules, debian/control: Add cl-sql-oracle binary package
181         * doc/appendix.xml: Add Oracle backend information
182         * db-oracle/oracle-objects.lisp: Add database-get-type-specifier for
183         universal-time. Convert BIGINT CLSQL type to CHAR SQL type
184         * db-mysql/mysql-sql.lisp: Fix condition name to sql-connection-error
185         * doc/ref-clsql.xml: Renamed from ref_clsql.xml. Change the documentation
186         for map-query to reflect changed in arguments to be CommonSQL compatible.
187         Updated old clsql conditions to new CommonSQL compatible conditions.
188         
189 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
190         * sql/oodml.lisp: (string n) now produces a CHAR field. Add new VARCHAR
191         type. Added *default-varchar-length* rather than previous hard-coded
192         varchar length. Remove 'simple-string and 'simple-base-string since they
193         are subtypes of 'string.
194         * db-oracle/oracle-sql.lisp: Use *default-varchar-length* rather than
195         local hard-coded value.
196         * sql/metaclasses.lisp: Convert specified type VARCHAR and (VARCHAR n) to Lisp
197         type string. Convert specified-type (CHAR n) to string. Convert specified-type
198         CHAR to lisp type character.
199         * sql/generic-postgresql.lisp: (string n) => (CHAR n)
200         * sql/operations.lisp: Add userenv
201         * doc/TODO: Add AUTOCOMMIT. Remove need for large table and bigint
202         slot tests
203         * sql/oracle-sql.lisp: Add 64-bit bigint direct conversion
204         * uffi/clsql-uffi.lisp: Handle signed 64-bit integers
205         * test/test-init.lisp: Add large table with bigint slot
206         
207 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
208         * Version 2.11.1 released: Much simpler Oracle client library loading.
209         Now uses ORACLE_HOME environmental variable as well as tests default
210         path for Oracle Instant Client. 
211         
212 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
213         * Version 2.11.0 released: Full Oracle support. All tests pass
214         * db-oracle/oracle-sql.lisp: Add declaration so that SBCL runs efficiently.
215         * tests/test-init.lisp: capitalize odbc backend name in banner
216         * CONTRIBUTORS: Add note about Marcus' excellent work
217         * sql/oodml.lisp: Removed old stub function     
218         * clsql.asd: Use module names in current package rather than keyword package
219         * db-oracle/oracle-sql.lisp: Don't trim trailing spaces. Prevent interrupts
220         in setting sequence position. Make autocommits more efficient.
221         * tests/test-init.lisp: Skip 2 tests on Oracle which have unsupported syntax 
222         * sql/oodml.lisp: Get rid of undocumented raw-string type. CommonSQL
223         strings are raw (non-trimmed trailing whitespace). Add database-get-type-specifier
224         and read-sql-value for NUMBER and CHAR.
225         * sql/base-classes.lisp: Add autocommit slot
226         * sql/transaction.lisp: Added autocommit processing, mild cleaning.
227         * doc/intro.xml: Add Oracle
228         
229 24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk) 
230         * db-postgresql-socket/postgresql-socket-sql.lisp: replace 
231         CLSQL-SIMPLE-WARNING with SQL-WARNING. 
232         * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with 
233         SQL-WARNING. 
234         * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR. 
235         * clsql.asd: reworked module structure in package definition and 
236         file names to better reflect component functionality. 
237         * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to 
238         exports list. Removed duplicate and obsolete exports. Exported 
239         remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT, 
240         SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and 
241         according to whether they are specified by CommonSQL or CLSQL 
242         extensions. 
243         * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with 
244         SQL-WARNING. 
245         * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND 
246         here from basic-sql.lisp. 
247         * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted). 
248         * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted). 
249         * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp
250         (both deleted). 
251         * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted). 
252         * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted). 
253         
254 23 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
255         * Version 2.10.22 released
256         * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that
257         has reversed class slots, change the default for ordered-class-slots so that slots
258         are now in the same order an in the def-view-class.
259         * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS
260         * test/test-fddl.lisp: Add two tests for mixed case names
261         * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double)
262         for computed fields, this will require some adjustment to the test suite which
263         in many cases expects integers.
264         * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns
265         
266 22 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
267         * Version 2.10.21 released
268         * sql/sequences.lisp: Move generic sequence functions here from db-sqlite,
269         db-odbc, and db-aodbc.
270         * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE,
271         DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these.
272         * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files
273         * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to 
274         sql/generic-odbc.lisp
275         * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp: 
276         Move common code to  sql/generic-postgresql.lisp
277         * sql/classes.lisp: honor case of string tables when outputting queries 
278         * sql/objects.lisp: Add database type to default database-get-type-specifier method
279         * sql/sql.lisp:  Add database type to default database-abort-transaction method
280         * db-mysql/mysql-objects.lisp: New file
281         * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp
282         * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME
283         from environment
284         * test/test-fdml.lisp: String table names are now case sensitive, so convert to
285         default db case for FDML/SELECT/25
286
287 22 May 2004 Kevin Rosenberg
288         * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests
289         * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases
290         and string identifiers with non-default case
291         * sql/table.lisp: Don't convert string table name to a symbol.
292         * sql/classes.lisp: Honor case of string identifiers
293         * sql/sql.lisp: Ensure recyclebin is purged for Oracle in 
294         TRUNCATE-DATABASE
295         * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of
296         of owner phrases. Obtain server and client versions.
297         * db-oracle/oracle-objects.lisp: Fix type specifiers
298         * tests/test-fddl.lisp: Allow :varchar2 and :number as data types
299         * tests/test-init.lisp: Properly get username from Oracle connection-spec
300         
301 22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
302         * sql/generics.lisp: reworked docstrings. Remove generics for 
303         ADD-TO-RELATION and REMOVE-FROM-RELATION. 
304         * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS 
305         to UPDATE-OBJECTS-JOINS for CommonSQL compatibility. 
306         * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS 
307         for CommonSQL compatibility. Remove ADD-TO-RELATION and 
308         REMOVE-FROM-RELATION. 
309         * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to 
310         UPDATE-OBJECTS-JOINS for CommonSQL compatibility. 
311         * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS. 
312         * sql/conditions.lisp: add documentation for conditions. Add 
313         SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility. 
314
315 21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
316         * sql/basic-sql.lisp: reworked docstrings. 
317         * sql/transactions.lisp: reworked docstrings. 
318         * sql/sql.lisp: reworked docstrings. 
319         * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE 
320         sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility. 
321         * sql/database.lisp: reworked docstrings. 
322         * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P 
323         and FDML extensions and database extensions. 
324
325 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
326         * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword.
327         * db-oracle/make9.sh: add makefile for building with Oracle 9 client
328         libraries
329         * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
330         Oracle versions with the PURGE option required for drop table. This needs
331         to be converted to a generic function and moved to db-oracle/oracle-sql.lisp
332
333 20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
334         * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE. 
335         * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION. 
336         * sql/table.lisp: reworked docstrings. 
337         * sql/objects.lisp: moved *default-update-objects-max-len* here from 
338         table.lisp. 
339         * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE, 
340         DROP-VIEW and DROP-INDEX and the use of the :transactions and 
341         :constraints keyword args to CREATE-TABLE. 
342         * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now 
343         CommonSQL compatible with respect to column constraints. 
344
345 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
346         * sql/oracle-sql.lisp: Now compiles and runs on SBCL.
347         Requires UFFI 1.5.0 or higher
348         
349 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
350         * Version 2.10.19
351         * sql/conditions.lisp: Fix cerror
352         
353 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
354         * Version 2.10.18 released: New condition hierarchy to be compatible
355         with CommonSQL -- not backward compatible with previous CLSQL.
356         * sql/db-interface.lisp: Add more default methods
357         * sql/objects.lisp: Add explicit table name to order-by parameters
358         in find-all when only one table to avoid selecting a duplicate row.
359         Fix error in FIND-ALL when using :order-by such as (([foo] :asc))
360         as previous logic was adding two fields (foo asc) to SELECT query.
361         Make :result-types :auto be the default for object selections.
362         Properly handle caching key when using multiple order-by with asc/desc
363         directions.
364         * db-oracle/*.lisp: Much improvements, now passes 90% of test suite
365         
366 19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
367         * sql/recording.lisp: reworked docstrings. 
368         * sql/syntax.lisp: reworked docstrings. 
369         * doc/TODO: added notes about extensions to SQL-RECORDING-P and the 
370         SQL syntax state functions being macros. 
371
372 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
373         * sql/package.lisp: Export initialize-database-type and
374         *initialize-database-types* from CLSQL package.
375         * sql/conditions.lisp: Add new CommonSQL compatible conditions,
376         remove old CLSQL conditions.
377         * sql/loop-extensions.lisp: Make errors of type sql-user-error
378         * */*.lisp: Convert to from old to new conditions
379         
380 18 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
381         * sql/table.lisp: Add PURGE to drop command for oracle 10g backend.
382         To handle this difference, will need to add a new database-drop-table
383         generic function.
384         * db-oracle/oracle-sql.lisp: Move server-version and
385         major-version-number to database object to allow multiple connections
386         to Oracle servers of different versions.
387         
388 18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
389         * TODO: moved notes about backends to doc/TODO. 
390         * doc/TODO: added notes about backends and select extensions. 
391         * sql/base-classes.lisp: remove obsolete schema slot in database 
392         class. 
393         
394 16 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
395         * db-oracle/oracle-api: Add OCIServerVersion
396         * db-oracle/oracle-sql: Query and store server version on connect
397         * sql/db-interface.lisp: Add new db-type-has-bigint? generic
398         function to handle OCI's lack of bigint support
399         * test/test-basic.lisp: Separate bigint testing
400         * test/test-utils.lisp: Add oracle to specs and list of backends
401         * doc/TODO: New file
402         * test/test-fdml.lisp: Added FDML/SELECT/34 to test
403         run-time instantiation of variables in reader macros.
404         * TODO: Remove item already complete. Add note about
405         condition variances
406         
407 16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
408         * sql/syntax.lisp: added condition to the reader macro to treat [*] 
409         as a column identifier (rather than an operation) for CommonSQL 
410         compatibility. 
411         * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION 
412         keword args to SELECT, [*] as column identifier, new MAP-QUERY 
413         behaviour and the ANY and ALL operators in subqueries. 
414         * tests/test-init.lisp: add set-operation and subquery tests to 
415         appropriate skip lists. 
416         * sql/objects.lisp: remove redundant and non CommonSQL compatible 
417         ORDER-BY-DESCENDING keyword argument for SELECT. 
418         * sql/classes.lisp: remove redundant and non CommonSQL compatible 
419         ORDER-BY-DESCENDING keyword argument for SELECT. 
420         * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT 
421         with object queries. 
422
423 15 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
424         * sql/db-interface.lisp: Add new db-type-has-union? 
425         since Mysql 3.23 does not support unions.
426         * sql/test-init.lisp: Don't try union tests on database
427         backends which do not support it.
428         * db-oracle/*.lisp: initial port to UFFI
429         * sql/objects.lisp: implement UPDATE-OBJECT-JOINS,
430         implement REFRESH for SELECT.
431         * tests/test-oodml.lisp: Add tests for deferred retrieval,
432         caching, refresh, and update-object-joins
433         * tests/test-init.lisp: Add deferred-employee-address class
434         
435 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
436         * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add 
437         COALESCE operator and make NVL a synonym for this. Make ANY, SOME, 
438         ALL and EXISTS generate function expressions so they output the 
439         correct SQL. 
440         * sql/classes.lisp: SELECT now generates appropriate SQL when 
441         passed the SET-OPERATION and ALL keyword arguments. 
442         * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now 
443         accepts ordering constraints as pairs of the form (column direction) 
444         where direction may be :ASC or :DESC. 
445         * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL. 
446         Correct tests for ANY, SOME, ALL and EXISTS. 
447         * tests/test-fdml.lisp: added test for COALESCE. 
448         * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION 
449         using funcall unless QUERY-EXPRESSION returns one column and its 
450         FLATP slot is not nil in which case apply is used. 
451         * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the 
452         changes. 
453         * TODO: remove items done. 
454         * db-postgresql/postgresql-sql.lisp: no need to reverse results in 
455         DATABASE-LIST-ATTRIBUTES. 
456         * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse
457         results in DATABASE-LIST-ATTRIBUTES.    
458         
459 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
460         * sql/classes.lisp: SELECT now accepts table identifiers as strings 
461         for CommonSQL compliance. Add support for qualified sql identifiers 
462         with aliased table names. 
463         * tests/test-fdml.lisp: added tests for table identifiers as strings 
464         in SELECT and for aliased definitions. 
465         * tests/test-syntax.lisp: added tests for alias definitions. 
466         
467 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
468         * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and 
469         field-names set to nil. 
470         * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly 
471         with null attribute values. 
472         * sql/operations.lisp: modify SQL concatenation operator to accept 
473         unescaped || symbol.  
474         * sql/syntax.lisp: modify sql reader macro function to accept 
475         unescaped sql concatenation operator. 
476         * tests/test-fdml.lisp: unescape sql concatenation operator. 
477         * tests/test-syntax.lisp: unescape sql concatenation operator. 
478         * TODO: remove items done. Add notes about SQLITE/MYSQL backends. 
479         Note to add test for universal-time. Note about difference from 
480         CommonSQL in transaction handling. 
481
482 13 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
483         * tests/test-init.lisp: Add deferred-employee-address
484         class
485         * tests/test-oodml.lisp: Add deferred retrieval testgs
486         
487 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
488         * Version 2.10.17
489         * LATEST-TEST-RESULTS: Run on all platforms, add AMD64
490         * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp
491         * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type
492         * *: Fix minor style warnings
493         * clsql-classic: Remove system and subdirectory
494         * clsql-base: Remove system and subdirectory and
495         fold into clsql system
496         * doc/intro.xml: Remove reference to old clsql-base. Add x86_64
497         as supported platform.
498         
499 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
500         * Version 2.10.16: CLSQL now fully supports AllegroCL AMD64
501         * db-odbc/odbc-api.lisp: work around return-type bug [spr28889] in
502         Allegro 7.0beta AMD64
503         * db-odbc/*.lisp: Add a layer of indirection to foreign-type
504         of ODBC longs since this type can vary on 64-bit platforms depending
505         upon the compilation options of unixODBC.
506         * db-mysql/mysql-api.lisp: Fix int vs. long slots in foreign
507         structures found by testing with AllegroCL 7.0b AMD64.
508         * db-*/*-loader.lisp: Load 64-bit libraries on 64-bit platorms
509         * sql/objects.lisp: Simple implementation of UPDATE-OBJECT-JOINS.
510         Initial caching support for SELECT
511         * tests/test-oodml.lisp: Avoid using cache when testing select.
512         * sql/kmr-mop.lisp: Explicitly check slot order and
513         store as a cl:*feature*
514         * sql/recording.lisp: Remove additional types to
515         increase CommonSQL conformance.
516         * tests/test-init.lisp: Change a :column attribute
517         to test symbols as value
518         * sql/relations.lisp: Remove functions since they don't support
519         many to many relationships.
520         * examples/clsql-tutorial.lisp, doc/csql.lisp: Remove use
521         of add-to-relations function and replace with explicit field settings.
522         * base/classes.lisp: Remove obsolute query-stream. Add record-caches slot.
523         
524 9 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
525         * Version 2.10.15
526         * LATEST-TEST-RESULTS: results with current version
527         * sql/kmr-mop.lisp: Make CMUCL reader macros specific for cmu18
528         since cmu19 has opposite order of class slots.
529         * sql/objects.lisp: Fix (setf slot-value-using-class) for Lispworks
530         * tests/test-fdml.lisp: Renumber SELECT tests to avoid overwriting
531         a previous test
532         * tests/test-init.lisp: Check test-database-underlying-type for
533         ODBC/MySQL tests
534         
535 8 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
536         * sql/operations.lisp: complete remaining operations for the sql 
537         syntax: SUBSTR, SOME, ORDER-BY, GROUP-BY, NULL, DISTINCT, EXCEPT, 
538         UNION, INTERSECT, BETWEEN. 
539         * sql/classes.lisp: add new classes: SQL-BETWEEN-EXPRESSION, 
540         SQL-QUERY-MODIFIER-EXPRESSION and SQL-SET-EXPRESSION. 
541         * tests/test-syntax.lisp: add tests for new operations. 
542         * tests/test-fdml.lisp: add tests for queries based on new operations. 
543         * tests/test-init.lisp: add select/20 to tests skipped for sqlite and 
544         select/20, query/5, query/7 and query/8 to tests skipped by mysql. 
545         * TODO: removed entries done. 
546
547 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
548         * tests/benchmarks.lisp: Add immediate vs. deferred
549         join test.
550         
551 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
552         * Version 2.10.13: Now works on openmcl 0.14.2 
553         * sql/objects.lisp: Add :retrieval :immediate for
554         object selections
555         * tests/test-init.lisp: Add non-index fields for testing 
556         join class employee-addresss
557         * test/test-oodml.lisp: Add tests for retrieval immediate
558         * sql/metaclasses.lisp: Handle differences in direct-slot-definition 
559         values which are now listifed by openmcl 14.2.
560         * sql/objects.lisp: more framework for supporing immediate retrieval 
561
562 7 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
563         * docs/intro.xml: Upload location of a README file
564         * sql/metaclass.lisp: Work-around openmcl's CHANGE-CLASS
565         changing the type-specifier. Use a lisp type of (OR NULL FOO)
566         for a specified-type of FOO unless :db-constraints :not-null.
567         No need to specialize finalize-inheritance for openmcl.
568         * tests/test-*.lisp: Rename fields so that joins occur on
569         fields with different names. This ensures that join code is
570         selecting the proper name.
571         * test/test-init.lisp: Add :base-table for employee-address
572         view class for testing.
573         * sql/objects.lisp: Use view-table rather than name of table
574         in a number of places to fix errors noted with using :base-table.
575
576 6 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
577         * sql/objects.lisp: replace *update-records-on-make-instance* with 
578         *db-auto-sync* which also controls both automatic creation of 
579         new records on creation of new instance and updating of record 
580         fields on setting of instance slots (as suggested by Edi Weitz). 
581         * tests/test-init.lisp: replace *update-records-on-make-instance* 
582         with *db-auto-sync*. 
583         * sql/package.lisp: replace *update-records-on-make-instance* 
584         with *db-auto-sync*. 
585         * TODO: replace *update-records-on-make-instance* with *db-auto-sync*. 
586         * sql/objects.lisp: remove redundant rebindings of *db-initializing* 
587         and *default-database* in FIND-ALL. 
588         * sql/package.lisp: import time functions from CLSQL-BASE. 
589         * tests/test-time.lisp: replace CLSQl-BASE package qualifier with CLSQL. 
590         * tests/test-fdml.lisp: replace CLSQl-BASE package qualifier with CLSQL. 
591         * tests/test-init.lisp: replace CLSQl-BASE package qualifier with CLSQL. 
592         * tests/test-ooddl.lisp: replace CLSQl-BASE package qualifier with 
593         CLSQL. 
594
595 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
596         * sql/classes.lisp: Add SQL-OBJECT-QUERY type. Have [select 'class]
597         now return a sql-object-query type rather than directly performing a query.
598         This improves CommonSQL conformance.
599         * sql/sql.lisp: Add new QUERY method for SQL-OBJECT-QUERY. Move
600         from basic/basic-sql.lisp the DO-QUERY and MAP-QUERY since they now
601         depend on sql-object-query-type.
602         * sql/loop-extensions.lisp: Move from base package
603         * classic/package.lisp: remove references to map-query and do-query
604
605 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
606         * TODO: New section on optimizations, especially optimizing JOINs.
607         * sql/objects.lisp: Have :target-slot return of list of lists rather
608         than a list of cons pairs to be conformant with CommonSQL.
609         Make :target-slot much more efficient by using a SQL inner join
610         statement and just requiring one SQL query. Add :retrieval :deferrred
611         to target-slot joins. Add placeholder for update-objects-join.
612         * sql/classes.lisp: Add :inner-join and :on slots to sql-query class
613         and process them for query output-sql. 
614
615 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
616         * Version 2.10.11
617         * base/basic-sql.lisp: Avoid multiple evaluation
618         of query-expression in DO-QUERY
619         * sql/objects.lisp: Make SELECT a normal function.
620         SELECT now accepts type-modified database identifiers, such as
621         [foo :string] which means that the values in column foo are returned 
622         as Lisp strings. Add new *update-records-on-make-instance* special
623         variable controlling automatic creation of new instances. Add missing
624         RESULT-TYPES keyword to FIND-ALL. Add :target-slot support.
625         * sql/packages.lisp: Export *update-records-on-make-instance* 
626         * test/test-oodml.lisp: Add tests for :target-slot and many-to-many
627         selections.
628         * test/test-fdml.lisp: Add tests for type-modified
629         database identifiers.
630         * test/test-init.lisp: Stop using add-relation since implementing
631         many-to-many joins. Use *update-records-on-make-instance* 
632         to automatically store records on instance creation. Add many-to-many
633         employee-address view-class.
634         
635 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
636         * Version 2.10.10
637         * base/loop.lisp: Add object iteration. Use :result-type
638         :auto for result-set. Remove 
639         duplicate (and non-correct) code for non-list variables by
640         simply making an atom variable into a list. 
641         * sql/package.lisp: Remove unnecessary clsql-sys package
642         and replace it with clsql.
643         * sql/metaclasses.lisp: Properly store specified-type from
644         direct-slot-definition and then store translated type in
645         effective-slot-definition
646         * sql/classes.lisp: Don't output type in sql-output
647         for SQL-IDENT-ATTRIBUTE. This is in preparation for supporting
648         [foo :integer] as fields in SELECT.
649         * sql/query.lisp: Set default for :result-types to :auto in
650         FDML QUERY.
651         * sql/objects.lisp: Use specified-type when invocating 
652         database-get-type-specifier. def-view-class macro now returns
653         the class instance.
654         * base/basic-sql.lisp: Make :AUTO the default value for
655         :RESULT-TYPES for MAP-QUERY and DO-QUERY.
656         * sql/objects.lisp: Add bigint type
657         * test/tests-basic.lisp: Add tests for :result-types for
658         MAP-QUERY and DO-QUERY
659         * test/test-fdml.lisp: Add test for result-types in LOOP
660         and also using single symbol rather than a list for variables.
661         Add test that default :result-types is auto for FDML QUERY.
662         * test/test-syntax.lisp: Don't expect TYPE in the SQL-OUTPUT
663         of SQL-IDENT-ATTRIBUTE.
664         * test/test-oodml.lisp: Enable OO loop iteration test,
665         modify it so it doesn't depend on boolean where.
666         
667 4 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
668         * Version 2.10.9
669         * sql/objects.lisp: added derived type specifier for universal time. 
670         * sql/package.lisp: added #:universal-time to clsql-sys exports. 
671         * tests/test-oodml.lisp: added test for translation of boolean slots 
672         in SELECT with object queries. 
673         
674 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
675         * db-odbc/odbc-api.lisp: Fix changing nil to "NIL" 
676         for odbc/postgresql backend.
677         * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that
678         it can handle NIL values from the ODBC driver
679         * tests/benchmarks.lisp: New file with initial
680         benchmark suite
681         * sql/relations.lisp: fix to add subclassing support,
682         minor optimizations [Edi Weitz]
683         
684 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
685         * Version 2.10.8        
686         * base/conditions.lisp: Add *backend-warning-behavior*
687         special variable.
688         * db-postgresql-socket/postgresql-socket-sql.lisp:
689         Honor value of *backend-warning-behavior*
690         * tests/test-fdml.lisp: Remove test of raw boolean value
691         since different backends handle this differently. Add
692         test for :column attribute.
693         * tests/test-oodml.lisp: Add tests for boolean slot value
694         and for :void-value attribute
695         * tests/test-init.lisp: Use *backend-warning-behavior*
696         to suppress warnings from postgresql about implicitly
697         creating primary key in tables. Add new address table.
698         
699 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
700         * Version 2.10.7
701         * db-odbc/odbc-dbi.lisp: Convert TINYINT to integers when
702         result-types is :auto
703         * sql/objects.lisp: Properly handled writing/reading Boolean
704         values from SQL database when retrieving objects.
705         * test/test-fdml.lisp: Add another test for boolean results
706         * test/utils.lisp: Fix incorrect declaration
707         
708 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
709         * Version 2.10.6
710         * sql/generics.lisp: add generic function for SELECT. 
711         * sql/objects.lisp: make SELECT a method specialisation. 
712         * sql/classes.lisp: MAKE-QUERY now calls SELECT if the selections 
713         referred to are View Classes. 
714         * base/basic-sql.lisp: in DO-QUERY and MAP-QUERY, if the 
715         query-expression arg evaluates to a list, then we have an object 
716         query. 
717         * tests/test-oodml.lisp: add tests for DO-QUERY and MAP-QUERY with 
718         object queries. 
719         * TODO: remove items done and add a todo for SELECT. 
720         * sql/objects.lisp: SELECT takes a :field-names arg to pass on to 
721         QUERY. 
722         * sql/sql.lisp: add :field-names arg to QUERY. 
723         * tests/test-fdml.lisp: minor rework to use :field-names arg to 
724         SELECT. 
725
726 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
727         * sql/objects.lisp: fix bug in FIND-ALL when SELECT called with 2 
728         or more View Classes. 
729         * sql/objects.lisp: make the :flatp argument to SELECT work with 
730         object queries. 
731         * sql/objects.lisp: make SELECT accept a :result-types argument 
732         (defaults to :auto) which is passed on to QUERY.  
733         * sql/objects.lisp: SELECT returns field-names as a second value. 
734         * tests/test-ooddl.lisp: add flatp arg to SELECT calls as appropriate. 
735         * tests/test-fdml.lisp: add flatp/result-types arguments to calls 
736         to SELECT and take only first value as appropriate.
737         * tests/test-fdml.lisp: add two new tests for query result coercion 
738         and the field-names returned as a second value from SELECT. 
739         * tests/test-oodml.lisp: add flatp arg to SELECT calls as appropriate. 
740         
741 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
742         * Version 2.10.6-pre1
743         * sql/metaclasses.lisp: Add void-value slot
744         * doc/csql.xml: Update def-view-class documentation
745         * test/test-init.lisp: Change old :db-type to :db-kind.
746         Remove old :nulls-ok attributes.
747         * sql/objects.lisp: Add new universal-time and bigint
748         types. Optimize reading of integers using parse-integer
749         rather than read-from-string.
750         * */*.lisp: Merge clsql-base-sys and clsql-base packages
751         into clsql-base package
752         * classic/sql.lisp: Move large object support into base, leaving
753         classic without any functionality that is provided in the clsql
754         system.
755         * classic/package.lisp: Rename clsql-classic-sys package to
756         its former nickname of clsql-classic
757         
758 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
759         * Version 2.10.5: SQLite backend now passes all result-types tests
760         * clsql-sqlite.asd: Depend on clsql-uffi system
761         * db-sqlite/sqlite-sql.lisp: Use clsql-uffi:convert-raw-field
762         for efficiency and code reuse. 
763         * db-sqlite/sqlite-api-uffi.lisp: Change (* :char) to (* :unsigned-char)
764         for better cross-implementation compatibility.
765
766 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
767         * Version 2.10.4
768         * sql/tables.lisp: Fix typo in CACHE-TABLE-QUERIES
769         [Marcus Pearce]
770         * db-postgresql/postgresql-sql.lisp: Fix foreign-string vs. cstring
771         bug on SBCL in result-field-names function as reported by Marcus Pearce
772         * db-sqlite/sqlite-sql.lisp: Fix  in database-store-next-row
773         manifest in SBCL testing
774         
775 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
776         * Version 2.10.3
777         * sql/database.lisp: Conform more to CommonSQL output
778         for STATUS command [Marcus Pearce]
779         * sql/sqlite-sql.lisp: Rework to use result-types
780         * sql/sqlite-api-clisp.lisp: Add compatibility layer
781         with sqlite-api-uffi.lisp so that sqlite-sql.lisp can
782         be cleaned up of most clisp reader conditionals
783         * sql/test-init.lisp: Now run field type tests on sqlite
784         backend
785         
786 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
787         * Version 2.10.2
788         * base/basic-sql.lisp: Set default value of :result-types 
789         to :auto for more CommonSQL conformance. 
790         * test/test-fdml.lisp: Add tests for numeric value of fields
791         
792
793 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
794         * Version 2.10.1: New API function: CACHE-TABLE-QUERIES.
795         * base/basic-sql.lisp, db-*/*-sql.lisp: More CommonSQL conformance.
796         Return field names as second value for QUERY. This can be overridden
797         for efficiency with the new keyword :FIELD-NAMES set to NIL
798         in the QUERY invocation.
799         * test/test-fdml.lisp: Add tests for new field-name feature
800         * sql/metaclass.lisp: Remove old Lispworks cruft
801         and replace it with invocation of new code in kmr-mop.lisp
802         which actually works with Lispworks 4.2
803         * doc/ref_clsql.xml: Document new :FIELD-NAMES keyword to
804         QUERY function
805         * base/db-interface.lisp: Document the multiple values
806         returned by DATABASE-ATTRIBUTE-TYPE so matches the
807         undocumented CommonSQL behavior. 
808         * sql/table.lisp: Add *CACHE-TABLE-QUERIES-DEFAULT* and
809         *DEFAULT-UPDATE-OBJECTS-MAX-LEN* variables and export them.
810         LIST-ATTRIBUTE-TYPES now conforms to CommonSQL spec.
811         Implement CACHE-TABLE-QUERIES.
812         * db-odbc/odbc-sql.lisp: Fix attribute-type function
813         * test/test-fddl.lisp: Add tests for attribute type     
814         * db-mysql/mysql-sql.lisp: Mild optimization in accessing
815         field structures.
816         * base/classes.lisp: Add attribute-cache slot to database clas
817         * base/initialize.lisp: initialize-database-type now automatically
818         loads database-type backend as needed.
819         * base/test-init.lisp: Utilize new initialize-database-type functionality.
820         * TODO: remove items done
821         
822 30 Apr 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
823         * Version 2.9.6
824         * sql/objects.lisp: remove create/drop-sequence-from-class. 
825         * sql/objects.lisp: add INSTANCE-REFRESHED generic function. 
826         * sql/objects.lisp: improved CommonSQL compatibility for
827         UPDATE-RECORD-FROM-SLOT, UPDATE-RECORD-FROM-SLOTS,
828         UPDATE-RECORDS-FROM-INSTANCE and DELETE-INSTANCE-RECORDS. 
829         * sql/generics.lisp: move generics from objects.lisp to here. 
830         
831 29 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
832         * Version 2.9.6-pre1
833         * db-mysql/mysql-client-info.lisp: Add client version 4.1
834         detection
835         * sql/sql.lisp: Make *default-database* the default for
836         TRUNCATE-DATABASE
837         
838 28 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
839         * Version 2.9.5
840         * db-mysql/mysql-sql.lisp: Fix bug in transaction capability
841         detection
842         * sql/objects.lisp: Commit patch from Slawek Zak to allow specifying 
843         :metaclass in DEF-VIEW-CLASS invocation. This allows defining classes 
844         on a metaclass specialized from standard-db-class.
845
846         
847 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
848         * Version 2.9.4: Multiple changes to support Allegro's "modern"
849         lisp which uses a lowercase reader and has case-sensitive symbols
850         * sql/classes.lisp: Fix make-load-form bug for sql-ident-table
851         exposed by case-sensitive mlisp. 
852
853 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
854         * Version 2.9.3: All tests now pass on all platforms!
855         * LATEST-TEST-RESULTS: New file with summary of test results
856         * sql/generics.lisp: New file for generic function definitions.
857         * test/test-init.lisp: Display names of skipped tests.
858         Use unwind-protect to ensure disconnect
859         * sql/objects.lisp: Change database-type to database-underlying-type
860         so that actual database engine is properly identified
861         * db-odbc/odbc-api.lisp: Have default *time-conversion-function*
862         return an ISO timestring for compatibility with other drivers.
863         Workaround bug in MyODBC for LIST-TABLE-INDEXES
864         * test/test-fdml.lisp: Accomodate that odbc-postgresql driver
865         returns floating-point values for floor and truncate operations 
866         * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS
867         * tests/test-basic.lisp: Port to regression tester
868         * test/test-init.lisp: Output to *report-stream*
869         * docs/appendix.xml: Document ODBC and SQLite backends.
870         * sql/classes.lisp: Make output-sql require a database parameter.
871         This allows SQL generation to have the proper case to support
872         the differences in case handling between CommonSQL API,
873         Postgresql, MySQL, Oracle.
874         
875 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
876         * Version 2.9.2: Improvments in database capability introspection
877         and querying. Support transactions in MySQL where available.
878         All tests now pass on MySQL and SQLite in addition to postgresql
879         and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2.
880         * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support
881         DATABASE-LIST-SEQUENCES.
882         * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading
883         * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB,
884         HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE
885         * tests/*.lisp: Check database capabilities and remove tests which
886         the database backend does not support
887         * sql/table.lisp: Add :TRANSACTIONS keyword to create table which
888         controls whether InnoDB tables will be created when supported on
889         the underlying MySQL server.
890         
891 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
892         * Version 2.9.0: New API function: LIST-TABLE-INDEXES,
893         supported by all database backends (except AODBC since
894         AODBC doesn't support index querying)
895         * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES
896         * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function
897         to support index queries
898         * db-aodbc/aodbc-sql.lisp: Filter driver manager
899         "information_schema" tables from LIST-TABLES
900         * tests/test-basic.lisp: Remove table after testing
901         * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES
902         * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE
903         which gets the underlying type of database -- required
904         when dealing with ODBC databases and want to query
905         database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES?
906         as first database-backend specific feature. Is T on
907         :mysql, NIL on other backends. Change DROP-TABLE to
908         query this.
909         
910 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
911         * Version 2.8.2: Build changes for FreeBSD [Slawek Zak]
912
913 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
914         * Version 2.8.1
915         * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function 
916         * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function 
917
918 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
919         * Version 2.8.0: New API function: LIST-DATABASES
920         * base/utils.lisp: Fix command-output on CMUCL/SBCL
921         * db-*/*-sql.lisp: Add new database-list function
922         * base/database.lisp: Add new LIST-DATABASES command
923         
924 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
925         * Version 2.7.9
926         * db-sqlite/sqlite-sql.lisp: Fix sequence functions.
927         * db-sqlite/sqlite-api-uffi.lisp: Print error string
928         correctly.
929         
930 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
931         * Version 2.7.7
932         * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind
933         from Eduardo Munoz.
934         
935 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
936         * Version 2.7.6
937         * base/objects.lisp, base/classes.lisp: Patch
938         for db-kind from Eduardo Munoz
939         
940 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
941         * Version 2.7.5
942         * base/basic-sql.lisp: Fix FLATP in QUERY
943
944 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
945         * Version 2.7.3: Implement RECONNECT
946
947 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
948         * Version 2.7.2: Fix ODBC on Lispworks Windows
949
950 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
951         * Version 2.7.1: Fix for new ODBC backend.
952         clsql-odbc now works on SBCL, CMUCL, OpenMCL
953         in addition to AllegroCL and Lispworks.
954
955 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
956         * Version 2.7.0: New backend: ODBC. Tests as
957         well as AODBC backend on Allegro,Lispworks.
958         SBCL and CMUCL don't work quite yet.  Requires UFFI v1.4.11+
959         * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr
960         to explicitly set ODBC2 support. Add BIGINT support.
961         Add result-types support. Added SQLTables.
962         Fix array type in fetch-all-rows. Make width
963         changable by database or query.
964         * base/utils.lisp: Add process functions
965         * base/package.lisp: Export utils to CLSQL-BASE-SYS
966         * db-aodbc: Implement sequence functions,
967         database-list-tables, database-list-attributes
968         * tests/utils.lisp: Add support for ODBC backend,
969         rework READ-SPECS to use +all-db-types+
970         * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS
971         for SEQUENCE-NEXT
972         
973 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
974         * Version 2.6.13. Requires UFFI version 1.4.9
975         * db-odbc/*.lisp: Further porting.
976         Pre-alpha code! But, basic query is now working.
977
978 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
979         * Version 2.6.12
980         * base/transactions.lisp: Add quote for macro
981         expansion of WITH-TRANSACTIONS [Time Howe]
982         * db-sqlite/sqlite-sql.lisp: Support memory database
983         in database-probe [Ng Pheng Siong]
984         * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC.
985         The DBI layer is not finished.
986         
987 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
988         * Version 2.6.11
989         * sql/objects.lisp: add :root-class functionality for
990         list-classes and add duration type support [Marcus Pearce]
991         * db-odbc: Add mid-level [DBI] layer
992
993 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
994         * Version 2.6.10
995         * db-aodbc: Add methods for generic functions, some are
996         not yet implemented.
997         * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC
998         support
999
1000 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1001         * Version 2.6.9
1002         * base/package.lisp: Add missing symbols [Marcus Pearce]
1003
1004 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1005         * Version 2.6.8
1006         * test/test-fddl.lisp: Cleanup fix [Marcus Pearce]
1007         * utils/time.lisp: Multiple fixes [Marcus Pearce]
1008         * sql/sql.lisp: Fix for truncate-database [Marcus Pearce]
1009         
1010 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1011         * Version 2.6.7
1012         * sql/*.lisp: Remove schema versioning cruft
1013         [Marcus Pearce]
1014         * Makefile: Add classic subdirectory
1015         
1016 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1017         * Version 2.6.6
1018         * sql/sql.lisp: Fix TRUNCATE command, bug reported
1019         by Marcus Pearce
1020         * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle
1021         specific and easy for an application to directly support.
1022         Idea from Marcus Pearce.
1023         * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level 
1024         API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce].
1025         Keep low-level interface for future optimization
1026         supporting LIST-ATTRIBUTE-TYPES command.
1027         * Makefile: Add to db-sqlite and test directories.
1028         Include them in top-level Makefile
1029         
1030 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1031         * Version 2.6.5
1032         * sql/relations.lisp: Add missing file
1033         * utils/time.lisp: Fixes/extensions [Marcus Pearce]
1034         * test/test-time.lips: New file [Marcus Pearce]
1035         
1036 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1037         * Version 2.6.4
1038         * test/test-init.lisp: Properly handle object
1039         creation. Close database after use.
1040         * sql/sql.lisp: Make DESCRIBE-TABLE a generic
1041         function so can have methods specialized on
1042         table being a string or an sql-table object.
1043         * base/pool.lisp: Really fix CMUCL locking
1044         
1045 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1046         * Version 2.6.3
1047         * test/test-init.lisp: Signal correctly
1048         if any errors occurred in any test suite
1049         * base/loop-extensions.lisp: Fix error
1050         introduced for Lispworks
1051         * base/pool.lisp: Fix locking for CMUCL
1052         * base/objects.lisp: Remove schema-version cruft
1053         
1054 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1055         * Version 2.6.2: New CLSQL API functions:
1056         DESCRIBE-TABLE AND TRUNCATE-DATABASE
1057         Currently, this are only supported on :postgresql
1058         and :postgresql-socket
1059         * base/database.lisp: automatically load ASDF system
1060         in CONNECT if not already loaded
1061         * base/tests.lisp: disconnect database after testing 
1062         * base/*.lisp: Remove CLOSED-DATABASE type in favor
1063         of storing open/closed status in slot of database
1064         * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL
1065         * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT,
1066         DATABASE-DESCRIBE-TABLE
1067         * db-sqlite/sqlite-sql.lisp: Add missing slots in database
1068         * base/conditions: Remove duplicate condition
1069         * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE
1070         * base/recording.lisp: Add new :QUERY type for recording
1071         
1072 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1073         * Version 2.6.1: documentation fixes, merged
1074         classic-tests into tests
1075
1076 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1077         * Version 2.6.0 released: New API functions
1078         CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE
1079         * doc/ref_clsql.xml: Document new functions
1080         * base/database.lisp: New API functions
1081         * base/conditions.lisp: Added CLSQL-ACCESS-ERROR
1082         * base/utils.lisp: Fix use of position-char.
1083         Add COMMAND-OUTPUT used by backends for running
1084         external programs. Fix parsing of SQL*NET-compatible
1085         connection-specs.
1086         * base/loop-extension.lisp: Simplify package use
1087         for Lispworks and Allegro
1088         * db-*/*-sql.lisp: Added DATABASE-CREATE,
1089         DATABASE-DESTORY, PROBE-DATABASE methods
1090         * tests/test-init.lisp, clasic-tests/tests.lisp:
1091         Use destroy-database and create-database to ensure 
1092         testing with empty database
1093         * tests/test-connection.lisp: Add tests for
1094         parsing of string connection-specs
1095         * examples/run-tests.sh: New file for running
1096         test suite on all installed CL implementations
1097         * examples/clsql-tutorial.lisp: moved from
1098         doc directory
1099         * examples/dot.clsql-tests.config: New file
1100         giving an example test configuration
1101         * test/README: Add notes about rtest/ptester
1102         downloads and link to sample test configuration file.
1103         
1104 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1105         * Version 2.5.1 released:
1106         * tests/*.lisp: Rework so tests are run
1107         on multiple backends automatically based
1108         on the contents of ~/.clsql-tests.config.
1109         Reuse helper functions from classic-tests.
1110         * base/database.lisp: Support connection-spec
1111         as string for CONNECT
1112         * classic-tests/tests.lisp: Automatically
1113         load database backends as needed. 
1114         
1115 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1116         * Version 2.5.0 released:
1117         All tests for CLSQL and CLSQL-CLASSIC pass
1118         on all platforms.
1119         * base/loop-extension.lisp: Add Lispworks
1120         loop-extension. Improve type specifying on
1121         other platforms.
1122         
1123 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1124         * Version 2.4.2 released:
1125         loop extension now supported on Allegro, all
1126         CLSQL-TESTS pass on Allegro.
1127         * sql/metaclasses.lisp: Some optimization
1128         of compute-slots, be selective when
1129         ordered-class-slots needs to be called
1130         instead of class-slots
1131         * TODO: add URL with documentation on
1132         extending Lispworks LOOP form
1133         
1134 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1135         * Version 2.4.1 released: CLSQL-TESt suite passes
1136         all tests for postgresql and CMUCL, SBCL, OpenMCL.
1137         Allegro and Lispworks pass all tests except for
1138         FDML/LOOP/1 since the loop extension have not yet
1139         been ported to those implementions.
1140         * sql/metaclasses.lisp: Added new slot to standard-db-class
1141         to hold user-specified type. OpenMCL adjustments to compensate
1142         for its type-predicate function. Since AllegroCL, Lispworks,
1143         and OpenMCL have different slot orders, added compute-slots
1144         and ordered-class-slots functions so their slot order matches
1145         SBCL/CMUCL.
1146
1147 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1148         * Version 2.4.0 released: All tests for clsql-classic now finish
1149         correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for
1150         mysql, postgresql, postgresql-sockets, and sqlite backends.
1151         * db-mysql/mysql-sql.lisp: Fix array dereferencing
1152         * classic-tests/tests.lisp: Fix package name of
1153         number-to-sql-string. 
1154         * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
1155         * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes,
1156         now passes tests on all support UFFI platforms.
1157         * db-postgresql-socket/postgresql-socket-api.list: Ported to 
1158         SBCL and OpenMCL
1159         * multiple: Finish renaming of :types keyword to :result-types for
1160         greater CommonSQL compatibility, including documentation
1161         * sql/basic-cmds.lisp: Remove obsolete file
1162         
1163 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1164         * Version 2.3.3 released
1165         * Fixes for sequences on mysql and sqlite [Marcus Pearce]
1166         * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
1167         * Fix for schema table [Marcus Pearce]
1168         * Add loop extension support for SBCL and OpenMCL [Marcus Pearce]
1169         * Fixes to test suite [Marcus Pearce]
1170
1171 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1172         * db-*/*-sql.lisp: Ensure that expr in
1173         database-query-result-set is a string
1174         * Documentation integration
1175         
1176 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1177         * With for Marcus Pearce's excellent work, I've merged
1178         his clsql-usql port into clsql. The original clsql
1179         interface is available in the clsql-classic package.
1180
1181 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1182         * Integrate patch from Marcus Pearce <ek735@soi.city.ac.uk>
1183         adding further support for providing backend for UncommonSQL
1184
1185 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net)
1186         * Integrate patch from Aurelio Bignoli for SQLite backend
1187
1188 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net)
1189         * Converted documentation to XML format
1190         * Made package installable with asdf-install
1191
1192 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net)
1193         * Add for-each-row macro
1194
1195 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net)
1196         * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL
1197         
1198 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net)
1199         * Add support for SBCL, OpenMCL, and SCL
1200         * Add *load-truename* to search path for clsql's
1201         compiled libraries.
1202
1203 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net)
1204         * Rework use of file types in .asd files
1205
1206 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net)
1207         * Add .asd definition files for ASDF users
1208
1209 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1210         * Restructure directories for Common Lisp Controller v3 compatibility
1211
1212 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1213         * Also change case of logical host in loader files
1214         * Rework handling of logical pathnames
1215         
1216 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1217         * Change case of logical host
1218         
1219 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net)
1220         * clsql-base.system: Added base package that can be used without
1221         high-level SQL commands. Used for adding support for UncommonSQL.
1222         * *.system: Reworked logical pathnames to be more consistent with
1223         Common Lisp Controller.
1224         * debian/*: Completed initial Debian support
1225         
1226 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1227         * sql/classes.cl:
1228         * sql/transactions.cl:
1229         Added transaction support. Functions/macros added:
1230         with-transaction, commit-transaction, rollback-transaction,
1231         add-transaction-commit-hook, add-transaction-rollback-hook
1232
1233 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1234         * sql/sql.cl:
1235         * sql/pool.cl:
1236         * sql/functional.cl:
1237         Added pool support in connect/disconnect and with-database.
1238         Removed with-db-from-pool as with-database can now works with the connections pool
1239
1240 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1241         * sql/sql.cl:
1242         * sql/pool.cl:
1243         * sql/classes.cl:
1244         * sql/package.cl:
1245         Completed connection pool.
1246         Added with-db-from-pool macro.
1247         
1248 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1249         * Multiple files:
1250         Added initial support for connection pool
1251         * sql/transactions.cl
1252         Took transaction code from UncommonSQL and integrated
1253         into CLSQL code. See file for disclaimer about why this
1254         was added.
1255
1256 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1257         * interfaces/postgresql/postgresql-sql.cl:
1258         Fix keyword typo in database-read-large-object
1259         * interfaces/mysql/mysql-loader.cl
1260         Fix loading on Win32
1261         * test-suite/tester-clsql.cl
1262         Fix type coercion of double-float
1263         * doc/*
1264         Added debian docbook catalog, made it the default
1265         
1266 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1267         * interface/postgresql/postgresql-api.cl:
1268         * interface/postgresql/postgresql-sql.cl:
1269         * sql/sql.cl:
1270         * sql/db-interface.cl:
1271         Added large objects support for postgresql.
1272
1273 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1274         * src/postgresql-socket/postgresql-socket-api.cl:
1275         Fixed find-foreign-function call, eliminated crypt warning
1276         * Makefiles:
1277         Multiple improvements
1278         * sql/usql.cl:
1279         Moved functionality from low-level interfaces to this file
1280         via generic functions
1281         * test-suite/tester.cl:
1282         Added test with acl-compat-tester, moved others to old-tests
1283         directory.
1284         
1285 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1286         * src/usql.cl:
1287         Reinstated commented out sections
1288         * interfaces/postgresql/postgresql-loader.cl:
1289         * interfaces/mysql/mysql-loader.cl:
1290         Updated find-forieign-library support.
1291         * interfaces/postgresql-socket/postgresql-socket-package.cl:
1292         Fixed require form for Lispworks (Thanks Marc Battyani!)
1293         * interfaces/postgresql-socket/postgresql-socket-api.cl:
1294         Fixed eval of def-function for crypt library.
1295                 
1296 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1297         * Added interface to support USQL high-level rouines
1298         
1299 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1300         * Separated db-interface and conditions from sql/sql.cl
1301         * Improved foreign library loading testing
1302         * interfaces/postgresql/postgresql-api.cl
1303         Added PQisBusy function
1304         * interfaces/clsql-uffi/clsql-uffi.cl
1305         Fixed sign error for 64-bit processing
1306         
1307 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1308         * interfaces/postgresql-socket/postgresql-socket-api.cl:
1309         Fixes to read-double-from-socket. Added 64-bit integer support.
1310         * test-suite/xptest-clsql.cl
1311         Added testint for 64-bit integers
1312         * Additons to installation docs
1313         
1314 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1315         * interfaces/postgresql-socket/postgresql-socket-api.cl:
1316         Implemented direct socket reading for field type :double
1317         * Added usage information for :types to documentation
1318         * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi,
1319         atol, atof calls
1320         * interfaces/clsql-uffi: Created new directory. Split common
1321         interface routines that use UFFI into this package. Required
1322         especially to support direct reading of 64-bit integers into
1323         bignums and bypassing temporary strings.
1324         * test-clsql.cl: Updated to test postgresql-socket's
1325         read-double-from-socket function.
1326         * test-suite/xptest-clsql.cl
1327         Started work on test suite
1328
1329 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1330         * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields,
1331         mysql-fetch-field-direct Got :auto types working
1332         * interfaces/postgresql/postgresql-api.cl
1333         * interfaces/postgresql-socket/postgresql-socket-api.cl
1334         Added pgsql-field-types enum. Got :auto types working.
1335         * multiple-files
1336         Renamed :field-types to :types.
1337         
1338 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1339         * Added field-types parameter to query, database-query,
1340         database-query-result-set, map-query. Haven't added code
1341         to utilize field types, yet.
1342         * Changed postgresql-socket result set from cons to a structure
1343         * Updated test-clsql.cl to use automated testing with a config
1344         file
1345         * Changed return types of field accessors from cstring to
1346         (* :unsigned-char).  This prepares for being able to use specified
1347         type conversions when taking field data into lisp.
1348         * Added field-type processing for most interfaces. Not done yet.
1349         
1350 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1351         * doc/ref.sgml: Updated MAP-QUERY example to use
1352         *read-default-float-format* (John Foderaro)
1353         * Extensive work to foreign library loaders and .system files to
1354         check for successful loading of foreign libraries.
1355         * Modified test-clsql.cl to allow more modularity and
1356         automated testing in future release.
1357         * mysql/mysql-sql.lisp: Added field types
1358         
1359 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net)
1360         * mysql/mysql-sql.lisp:
1361         - Added support for Allegro CL and Lispworks using UFFI layer
1362         - Changed database-connect to use mysql-real-connect. This way,
1363           can avoid using double (unwind-protect)
1364         - Changed database-connect to have MySQL library allocate space
1365           for MYSQL structure. This will make the code more robust in
1366           the event that MySQL library changes the size of the mysql-mysql
1367           structure.
1368
1369