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