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