16 Oct 2006 Kevin Rosenberg * Version 3.7.7 * db-postgresql/postgresql-sql.lisp: Remove uffi:convert-foreign-to-native wrapper since using cstring for PQresultErrorField 16 Oct 2006 Kevin Rosenberg * Version 3.7.6 * db-postgresql/postgresql-api.lisp: Fix UFFI return type for PQresultErrorField foreign function. 16 Oct 2006 Kevin Rosenberg * Version 3.7.5 * doc/intro.xml: Update supported platforms. * db-postgresql/postgresql-{package,api,sql}.lisp: Apply changes from Andew Golding to use a more-specific error code from PostgreSQL than the generic fatal error code of the result set. 03 Oct 2006 Kevin Rosenberg * sql/syntax.lisp: Commit patch from Marcus Pearce to improve readtable modifications 02 Oct 2006 Kevin Rosenberg * sql/syntax.lisp: Check that original reader syntax functions stored before trying to restore them. 20 Sep 2006 Kevin Rosenberg * sql/syntax.lisp: Apply patch from Marcus Pearce to correctly display sql reader syntax. 06 Sep 2006 Kevin Rosenberg * uffi/clsql-uffi-loader.lisp, db-mysql/mysql-loader.lisp: Change from using *features* to decide on 64-bit platform and check size of most-positive-fixnum instead. Needed to support clisp amd64. 03 Sep 2006 Kevin Rosenberg * Version 3.7.1 * sql/metaclasses.lisp: Rework slot type's to be more AMOP compatibile. Add warning for a metaclass condition that should not occur. * sql/time.lisp: Fixed symbol case inconsistency causing problem in AllegroCL's modern lisp. First sign of bug noted by Joel Reymond on clsql-devel. * clsql.asd: Make time.lisp depend on utils.lisp 31 Aug 2006 Kevin Rosenberg * db-mysql/mysql-loader.lisp: Apply patch from Marcus Pearce to push *library-file-dir* to CLSQL's library path. 30 Aug 2006 Kevin Rosenberg * Version 3.7.0: New platforms supported: SBCL/Win32, CLISP/Win32, CLISP/Cygwin, CLISP/Linux x86, CLISP/Linux amd64, OpenMCL amd64. CLISP support requires the latest development versions of CLISP, cffi, and cffi-uffi-compat packages. * Makefile.common: Add OS detection * uffi/make.sh, db-mysql/make.sh: Remove files * uffi/Makefile, db-mysql/Makefile: Add support for cygwin compilation. Refactor to remove need to make.sh shell scripts. * clsql.asd: Add support for loop extensions for clisp. Support clisp via cffi. * sql/loop-extension.lisp: Define loop-record-iteration-path in CLSQL-SYS package rather than CL-USER. Add support for ansi-loop on clisp. * sql/ansi-loop.lisp: New file to support iteration on clisp. * db-mysql/mysql-api.lisp: Remove old mysql C API functions that no longer exist in the mysql client library. * doc/ref-fdml.lisp: Correct default field-type. * sql/expressions.lisp: Use database-output-as-type if value exists for boolean output. Fixed bug with noted with MySQL 5.0.24 and boolean values. 28 Aug 2006 Kevin Rosenberg * Version 3.6.7 * sql/oodml.lisp: Remove high debugging level declaration 14 Aug 2006 Kevin Rosenberg * Version 3.6.6 * sql/generic-postgresql.lisp: Fix assumption that postgres user id is always 1. Fixes problem noted with PostgreSQL 8.1. 12 Aug 2006 Kevin Rosenberg * Version 3.6.5 * sql/generic-postgresql.lisp: Add slot for has-table-pg_roles to lazily cache if pg_roles tables exist. Selectively use SQL from Joel's previous patch if pg_roles table exists. Should now work with both postgresql 7.4 and 8.x. 12 Aug 2006 Kevin Rosenberg * Version 3.6.4 * clsql.asd: Add support for c:\etc\clsql-init.lisp as possible local initialization file * db-mysql/mysql-loader.lisp: Remove former method of using pathnames as name candidates. * db-odbc/odbc-api.lisp: Work-around Allegro/Windows FFI bug that generates incorrect integer return type * sql/generic-postgresql.lisp: Revert patch from Joel Reymont since it fails on versions of postgresql that lack the pg_role table 07 Jul 2006 Kevin Rosenberg * Version 3.6.3 * sql/transactions.lisp: Important typo fix from Alexey Antipov for database-start-transaction 04 Jul 2006 Kevin Rosenberg * Version 3.6.2 * db-postgresql/postgresql-sql.lisp: Apply patch from Vladimir Sekissov to close connection when failing to connect to database. * sql/generic-postgresql.lisp: Apply patch from Joel Reymont to avoid dropping system views. * sql/oodml.lisp: Apply patch from Joel Reymont to avoid listify a nil value [patch sponsored by Flektor] * clsql-uffi.asd, uffi/make.sh: Patch from Richard Kreuter for netbsd compilation 15 May 2006 Kevin Rosenberg * doc/ref-ooddl.xml: Add documentation for :db-reader and :db-writer slots for def-view-class macro [as reported missing by Thomas Fischbacher]. 09 May 2006 Kevin Rosenberg * db-postgresql-socket/postgresql-socket-api.lisp: Apply patch from Marko Kocic adding the socket creation function needed for CLISP. 08 May 2006 Kevin Rosenberg * Version: 3.6.0 (requires UFFI v1.5.11 or greater) * db-oracle/metaclasses.lisp: Patch from James Bielman for checking slot constraints. * db-oracle/oracle-{api,sql}.lisp: Avoid dead pointers on loading saved openmcl images (based on patch from James Bielman) 06 May 2006 Kevin Rosenberg * doc/ref-fdml.xml: Documentation patch from Marcus Pearce for limit keyword 03 May 2006 Kevin Rosenberg * Version 3.5.7 * sql/time.lisp: Apply patch from Aleksandar Bakic to extended duration parsing and unparsing to include year and month. * clsql-uffi.asd, uffi/clsql-uffi-loader.lisp: Apply patch from Nathan Bird improving library search on Windows platform. * doc/ref-fdml.xml, /doc/TODO, tests/test-fdml.lisp, tests/test-init.lisp: Apply patch from Marcus Pearce documenting and testing :limit and :offset for SELECT 20 Mar 2006 Kevin Rosenberg * Version 3.5.6 * clsql-postgresql-socket.asd, * db-postgresql-socket/postgresql-socket-package.lisp: Use the cl-md5 package on all platforms. Based on report from Alan Caulkins. 09 Mar 2006 Kevin Rosenberg * Version 3.5.5 * uffi/make.sh, db-mysql/make.sh: Add GNU uname 28 Feb 2006 Kevin Rosenberg * Version 3.5.4 * sql/metaclasses.lisp: Apply patch from Friedrich Dominicus to fix accessor for new versions of SBCL * db-oracle/oracle-sql.lisp: Apply patch from James Bielman to improving parsing of time. * db-db2/db2-constants.lisp: Change NULL_HANDLE has suggested by Harold Lee. * db-oracle/oracle-dbi.lisp: Add support for SQL BIT type as noted by Russ Tyndall. 16 Jan 2006 Kevin Rosenberg * Version 3.5.3 * sql/time.lisp: Commit patch from Aleksandar Bakic to properly handle destructive flag * db-postgresql-socket/postgresql-socket-api.lisp: Apply patch from Steven Harris for socket files with SBCL. * sql/pool.lisp: Apply patch from Vladimir Sekissov so that new connections added to the pool do not become the *default-database* * sql/connect.lisp: Optionally set *default-database* for pooled connection when make-default is generalized true. 23 Dec 2005 Kevin Rosenberg * Version 3.5.1 * sql/expressions.lisp: Ensure table names are properly escaped before comparing -- fixes bug reported by Asbjørn Bjørnstad on CLSQL-Devel. 02 Dec 2005 Kevin Rosenberg * sql/generic-postgresql.lisp: improved decoding of table attribute parameters [from Vladimir Sekissov] * sql/metaclasses.lisp: check that metaclass is standard-db-class or it's subclass to prevent adding standard-db-object to supers if somebody in the path has it already when metaclass inherited from standard-db-class. [from Vladimir Sekissov] 26 Nov 2005 Kevin Rosenberg * Version 3.5.0 * tests/test-init.lisp, tests/test-fddl.lisp, tests/test-fdml.lisp, * db-odbc/odbc-api.lisp, db-odbc/odbc-ff-interface.lisp, * db-odbc/odbc-package.lisp, db-odbc/odbc-constants.lisp * db-odbc/odbc-dbi.lisp, db-odbc/odbc-sql.lisp * sql/fddl.lisp, sql/generic-odbc.lisp, sql/db-interface.lisp * sql/transaction.lisp, sql/package.lisp, sql/time.lisp Commit patch from Dominic Robinson providing support for Microsoft SQL Server * doc/csql.lisp: Fix typo in slot name 24 Nov 2005 Kevin Rosenberg * Version 3.4.7 * sql/time.lisp: Commit patch from Aleksandar Bakic for correct handling of decode-time usec value * clsql-mysql.asd: Commit patch from Harald Hanche-Olsen to correct the name of the shared library file. 16 Nov 2005 Kevin Rosenberg * version 3.4.6 * sql/metaclasses.lisp: Avoid calling change-class on effective-slot-definitions on sbcl to conform to sbcl 0.9.6.38 changes. 15 Nov 2005 Kevin Rosenberg * Version 3.4.5 * sql/expressions.lisp: Patch from James Biel to add subselects 14 Nov 2005 Kevin Rosenberg * Version 3.4.4 [ Requires UFFI 1.5.7+] * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel to fix lifetime of foreign strings for Oracle calls 13 Nov 2005 Kevin Rosenberg * Version 3.4.3 * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel to improve performance 12 Nov 2005 Kevin Rosenberg * Version 3.4.2 * clsql-uffi.asd: Patch from James Biel improving loading * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel to support 64-bit lisps 12 Nov 2005 Kevin Rosenberg * Version 3.4.1 * sql/expressions.lisp: Escape numbers to SQL strings at expression level. 11 Nov 2005 Kevin Rosenberg * Version 3.4: Add MySQL 5 support * db-mysql/mysql-client-info.lisp: Recognize MySQL 5 * db-mysql/mysql-sql.lisp: Add support for views in MySQL 5 * doc/mysql-macosx-notes.txt: New document from Martin Brooks 7 Nov 2005 Kevin Rosenberg * src/time.lisp: Apply patch from Aleksandar Bakic for ROLL function. * BUGS: Added report for update-object-joins by Aleksandar Bakic 4 Nov 2005 Kevin Rosenberg * Version 3.3.4 [UFFI >= 1.5.5 needed] * db-odbc/odbc-api.lisp: Apply patch from Yaroslav Kavenchuk to add missing #\' character. * clsql.asd: Add support for CLSQLINIT environmental variable, based on patch from Yaroslav Kavenchcuk. New version of UFFI required. 30 Oct 2005 Kevin Rosenberg * Version 3.3.3 * sql/oodml.lisp: Apply patch from Drew Crampsie to fix update-objects-joins when using the :target-slot attribute 26 Oct 2005 Kevin Rosenberg * Version 3.3.2 * sql/expressions.lisp: Avoid parenthesis on multiple group-by fields as noted by Harald Hanche-Olsen. * tests/test-syntax.lisp: Add test for multiple field group-by 25 Oct 2005 Kevin Rosenberg * Version 3.3.1 * sql/time.lisp: Commit patch from Alan Shields to display escape string on wall-time display only when *print-escape* is true. 11 Oct 2005 Kevin Rosenberg * sql/metaclasses.lisp: Commit patch from Will to properly set db-reader slot in effective-slot-definition * sql/expressions.lisp: Commit patch from Alan Shields adding make-load-form for sql-relational-exp * sql/generic-postgresql.lisp: Commit patch from Aleksandar Bakic adding support for new NUMBER type 17 Sep 2005 Kevin Rosenberg * Version 3.3.0 * sql/time.lisp: Apply patch from Alan Shields adding DATE type. * doc/ref-ooddl.xml: Documentation of new type * notes/add-type-hints.txt: New file from Alan Shields * sql/fddl.lisp: Add owner keyword to drop-table as suggested by Francis Leboutte * db-postgresql-socket/postgresql-socket-sql.lisp: Fix database-probe as noted by Francis Leboutte. Similar fix applied to db-mysql and db-postgresql. * sql/expressions.lisp: Allow string table names for output as contributed by Francis Leboutte. * examples/clsql-tutorial.lisp: Support :postgresql-socket as noted by Francis Leboutte 08 Sep 2005 Kevin Rosenberg * Version 3.2.4 * doc/into.xml: Change download from ftp to http protocol 08 Sep 2005 Kevin Rosenberg * Version 3.2.3 * db-oracle/oracle-sql.lisp: Correction for v3.2.2 changes by Edi Weitz 08 Sep 2005 Kevin Rosenberg * Version 3.2.2 * db-oracle/oracle-sql.lisp: Add check for zero increment as suggested by Edi Weitz. Add missing database-sequence-last function as noted and tested by Edi Weitz. Ensure that UFFI buffer is freed in handle-oci-error. Add unwind-protect to sql-stmt-exec. Free UFFI stmthp object when query cursor is freed with OCI. 22 Aug 2005 Kevin Rosenberg * uffi/clsql-uffi-loader.lisp: Commit patch from astor@pvv.ntnu.no to display search path when error occurs loading foreign library. 05 Jul 2005 Kevin Rosenberg * Version 3.2.1 * doc/appendix.xml: Incorporate Edi Weitz's notes into documentation with changes to support case-sensitive lisp implementations. Add paragraph on using /etc/clsql-init.lisp site initialization file. * clsql.asd: Load file /etc/clsql-init.lisp, if it exists, after package is loaded to set site-specific configuration 2005-06-24 Edi Weitz * sql/db-interface.lisp: Added new special variable *FOREIGN-LIBRARY-SEARCH-PATHS* and function PUSH-LIBRARY-PATH to manipulate it. * sql/package.lisp: Export these. * uffi/clsql-uffi-loader.lisp: Used new variable; changed order of libs. * db-mysql/mysql-loader.lisp: Changed order of libs. 09 Jun 2005 Kevin Rosenberg * Version 3.2.0: REQUIRES UFFI VERSION 1.4.38 OR HIGHER * clsql-mysql.asd: Renamed clsql/mysql interface library from mysql to clsql_mysql * clsql-uffi.asd: Renamed clsql/uffi interface library from mysql to clsql_uffi * uffi/clsql_uffi.c: Renamed from uffi.c * db-mysql/clsql_mysql.c: Renamed from mysql.c * db-mysql/Makefile, db-mysql/Makefile.msvc, db-mysql/mysql-loader.lisp: Rename shared library * uffi/Makefile, uffi/Makefile.msvc, uffi/uffi-loader.lisp: Rename shared library * db-*/*-loader.lisp: Commit big patch from Edi Weitz to remove absolute pathnames when searching for foreign libraries. foreign library loading. 07 Jun 2005 Kevin Rosenberg * Version 3.1.16 * db-mysql/mysql-api.lisp: Commit patch from Espen Wiborn to support UTF-8 on sbcl unicode. 18 May 2005 Kevin Rosenberg * Version 3.1.15 * sql/time.lisp: Fix bug in roll that caused failure in test suite 17 May 2005 Kevin Rosenberg * Version 3.1.14 * sql/oodml.lisp: Properly handle when db-writer is NIL 11 May 2005 Kevin Rosenberg * sql/expressions.lisp: Avoid using simple-string declaration when a non-simple string may be encountered. [issue noted by will@cesmail.net] Add a simple-string declaration for a local string generated. 06 May 2005 Kevin Rosenberg * sql/oodml.lisp: Change db-writer and db-reader processing to accept a symbol as well as function to serve as a function designator [issue noted by will@cesmail.net] 05 May 2005 Kevin Rosenberg * Version 3.1.13 * sql/time.lisp: Fix error in submitted patch which caused error in timestrings with 19 or less characters. 27 Apr 2005 Kevin Rosenberg * Version 3.1.12 * db-postgresql-socket/postgresql-api.lisp: Commit patch from Tim Howe to fix read-socket-sequence on non-sb-unicode sbcl. 26 Apr 2005 Kevin Rosenberg * Version 3.1.12 * sql/time.lisp: Commit patch from Daniel Lowe which adds support for fractional seconds which is required by PostgreSQL * db-postgresql/postgresql-loader.lisp: Add library path for Windows 25 Apr 2005 Kevin Rosenberg * sql/csql.lisp: Update URL for "SQL for Web Dummies" [Sean Champ] 24 Apr 2005 Kevin Rosenberg * Version 3.1.11 * sql/syntax: Commit patch from Alan Shields to supress reader macros when *read-supress* is T. 13 Apr 2005 Kevin Rosenberg * Version 3.1.10 * db-postgresql-socket/postgresql-socket-api.lisp: Commit patch from Janis Dzerins to support unicode on SBCL * sql/syntax: Commit patch from Alan Shields to improve reporting of invalid syntax statements. 06 Apr 2005 Kevin Rosenberg * Version 3.1.9 * db-mysql/mysql-sql.lisp: Add port to connection specification based on patch from Dave Watson * doc/appendix.xml: Document MySQL port parameter to connection spec 03 Apr 2005 Kevin Rosenberg * Version 3.1.8 * sql/time.lisp: Patch from Keith James for parsing ISO-8601 timestamps 18 Mar 2005 Kevin Rosenberg * sql/oodml.lisp: Add missing database argument [Patch from Alan Caulkins] 03 Mar 2005 Kevin Rosenberg * sql/oodml.lisp: Improve database priority in update-records-from-instance [Patch from Walter C. Pelissero] 17 Feb 2005 Kevin Rosenberg * Version 3.1.7 * sql/package.lisp: Export database-reconnect from clsql-sys 08 Feb 2005 Kevin Rosenberg * sql/oodml.lisp: Use explicit database in fault-join-target-slot [Patch from Walter Pelissero] 29 Jan 2005 Kevin Rosenberg * db-postgresql/postgresql-loader.lisp: Add additional directories to Fink on darwin [patch from Cyrus Harmon]. 29 Jan 2005 Kevin Rosenberg * Version 3.1.6 * sql/oodml.lisp: Clear view instance cache when delete-instance-records is invoked [suggested by Alan Shutko]. * uffi/clsql-uffi-loader.lisp: Improvements for loading with SBCL X86-64 * sql/metaclasses.lisp: Don't change case of a :base-table string supplied to def-view-class [fix suggested by Fred Gilham]. 25 Jan 2005 Kevin Rosenberg * tests/*.lisp: Change Vladamir to Vladimir per Cyrus Harmon's suggestion. * sql/utils.lisp: Fix unnecessary consing noted by Fred Gilham. * doc/*.xml: Fix spelling of Vladimir 24 Jan 2005 Kevin Rosenberg * doc/bookinfo.xml, doc/csql.xml, doc/intro.xml: Update links now that LispWorks is an independant company [noted by Martin Thornquist] 22 Jan 2005 Kevin Rosenberg * db-sqlite/sqlite-sql.lisp, db-sqlite3/sqlite3-sql.lisp: Better support for 64 bit environments 05 Jan 2005 Kevin Rosenberg * Version 3.1.5 * sql/metaclass.lisp: Make t the default value of :set [noted by Cyrus Harmon] 28 Dec 2004 Kevin Rosenberg * Version 3.1.4 * uffi/clsql-uffi.lisp: Add support for unsigned integers * db-mysql/mysql-sql.lisp: Add support for detecting/marking unsigned integers. Apply patch from Yannick Gingras to implement database-sequence-last. 26 Dec 2004 Kevin Rosenberg * doc/ref-fdml.lisp: Fix variable tag name to varname [noted by Eduardo Munoz] * db-mysql/mysql-loader.lisp: Handle library paths for 64-bit systems 06 Dec 2004 Kevin Rosenberg * Version 3.1.2 * sql/ooddl.lisp: Accept patch from Klaus Harbo for update-object-joins. * sql/metaclass.lisp: Remove unnecssary (and runtime error causing) change-class invocation when running on CLISP. * db-mysql/mysql-api.lisp: Commit patch from Paul Werkowski to fix structure name. * sql/database.lisp: More specific error message with trying to use a database value of NIL. * sql/expressions.lisp: Accept a string for the table name in (sql-output sql-delete database) [suggested by Ed Symanzik]. 11 Nov 2004 Kevin Rosenberg * Version 3.1.1 * sql/generic-postgresql.lisp: Commit patch from Chris Capel to ignore columns which have been dropped. * clsql-postgresql-socket.asd, db-postgresql-socket/postgresql-socket-package.lisp: Use sb-md5 package on SBCL, recommended by Chris Capel 09 Nov 2004 Kevin Rosenberg * Version 3.1.0 released: New SQLite3 backend by Aurelio Bignoli * doc/appendix.xml: Document SQLITE3 backend, patch by Aurelio Bignoli * sql/operations.lisp: Add lower and upper SQL functions [Daniel Lowe]. 08 Nov 2004 Kevin Rosenberg * sql/expressions.lisp: Fix slot name [thanks to Daniel Lowe] 31 Oct 2004 Kevin Rosenberg * clsql-sqlite3, db-sqlite3/*: NEW BACKEND contributed by Aurelio Bignoli 23 Oct 2004 Kevin Rosenberg * sql/oodml.lisp: Commit patch from Walter Pelis to use an object's database for a select on its slot. 20 Oct 2004 Kevin Rosenberg * uffi/uffi.c, uffi/clsql-uffi.lisp: Commit patch from Aurelio Bignoli to fix negative 64-bit integers 07 Oct 2004 Kevin Rosenberg * db-mysql/mysql.c: Fix parameters in bind_param call 07 Oct 2004 Kevin Rosenberg * uffi/clsql-uffi.lisp: Add support for :blob result-type * db-mysql/mysql-sql.lisp: Add support for :blob result-type 04 Oct 2004 Kevin Rosenberg * db-mysql/mysql-sql.lisp, db-db2/db2-sql.lisp: Add missing quotes for types in code that is still in development (thanks to Joerg Hoehle) 03 Oct 2004 Kevin Rosenberg * Version 3.0.8 released * db-sqlite/sqlite-*.lisp: Apply patch from Aurelio Bignoli with improvements 01 Oct 2004 Kevin Rosenberg * multiple: Apply patch from Joerg Hoehle with multiple improvements. 01 Oct 2004 Kevin Rosenberg * Version 3.0.7 released * sql/oodml.lisp, sql/package.lisp, db-mysql/mysql-objects.lisp: Add support for mediumint. * sql/metaclass.lisp: Rework CLISP MOP handling * sql/ooddl.lisp: Work-around to have CLISP finalize standard-db-class 28 Sep 2004 Kevin Rosenberg * sql/metaclass.lisp: Support CLISP's attribute name for the type field in direct class slots 27 Sep 2004 Kevin Rosenberg * Version 3.0.6 released * BUGS: New file. Document suspected SIGPIPE interaction between SBCL and libpq used in postgresql backend. * doc/ref-fdml.lisp: Document the :caching and :refresh keywords of the SELECT function. * doc/ref-ooddml.lisp: Document the new *default-caching* variable. * sql/package.lisp: Export *default-caching* * sql/oodml.lisp: Use *default-caching* to control default caching behavior. 21 Sep 2004 Kevin Rosenberg * Version 3.0.5 release * doc/appendix.xml: Add note about loading Oracle8 version * db-oracle/oracle-loader.lisp: Support Oracle8 based on data from David Young. 10 Sep 2004 Kevin Rosenberg * doc/Makefile, doc/catalog-darwin.xml: Apply patch from Cyrus Harmon for building docs on Mac OS X * sql/package.lisp: Add new (pre-release) clisp MOP package 09 Sep 2004 Kevin Rosenberg * Version 3.0.4 Release * multiple: Remove superfluous quotes in UFFI def-type and def-foreign-type forms. 07 Sep 2004 Kevin Rosenberg * Version 3.0.3 Release * db-postgresql-socket/postgresql-socket-api.lisp: Commit patch from Tagore Smith to call force-output after sending authentication * db-odbc/odbc-api.lisp: Move ODBC v3 conversons * db-odbc/odbc-sql.lisp: Load mysql or postgresql package when connecting to a database of that type so that functions that indicate capabilities of database are available. 02 Sep 2004 Kevin Rosenberg * db-odbc/odbc-api.lisp: More conversions to ODBC v3 02 Sep 2004 Kevin Rosenberg * Version 3.0.2 Release * TODO: Add note about ODBC on Windows * db-odbc/odbc-loader.lisp: Add /winnt/system32/ to search directories * db-odbc/odbc-ff-interface.lisp: Change the return type of SQLSetEnvAttr to :short 02 Sep 2004 Marcus Pearce * examples/clsql-tutorial.lisp: added missing initarg for the COMPANYID slot of the employee View Class definition [reported by Franz Deuzer]. 01 Sep 2004 Kevin Rosenberg * Version 3.0.1 Release * tests/test-init.lisp: Add second join class to employee-address to test a class with two join slots. * sql/oodml.lisp: Fix find-all function for a class with multiple join slots * TODO: Remove need to test/fix multiple join classes 27 Aug 2004 Kevin Rosenberg * db-mysql/Makefile, db-mysql/mysql-loader.lisp: accept patch from Jon Buffington for file locations on Darwin. 17 Aug 2004 Kevin Rosenberg * sql/db-interface.lisp: Improve messages when functions are passed a database object, but the method is not specialized for that database type. * sql/metaclasses.lisp: Fix inline declaration (reported by Cyrus Harmon) 14 Aug 2004 Kevin Rosenberg * TODO: Add bug report about SQL generation with a table containing two join slots. * sql/oodml.lisp: Add optional size to VARCHAR type 3 Aug 2004 Kevin Rosenberg * Version 3.0.0 Release * sql/expressions.lisp: Change declaration that caused error on openmcl * db-aodbc/aodbc-sql.lisp: Fix storage location of odbc connection. Specialize database-query since dbi's :types keyword is different than generic-odbc's :result-types keyword * sql/db-interface.lisp: Add warnings for methods not specialized by a db backends * tests/test-fddl.lisp: Fix case of symbols to support case-sensitive Allegro * db-oracle/oracle-sql.lisp: Rework errbuf in handle-oci-error * tests/test-init.lisp: Note that odbc driver for postgresql doesn't properly handle table ownership * LATEST-TEST-RESULTS: update with version 3.0.0 1 Aug 2004 Marcus Pearce * sql/expressions.lisp: conditionalise escaping of backslash in generated SQL strings on backend. * tests/test-fdml.lisp: test for escaping of backslash. * sql/oodml.lisp: minor tidying in FIND-ALL. 26 Jul 2004 Kevin Rosenberg * NEWS: Initial 3.0 announcement draft * README: Expand acknowledgements of incorporated projects * CONTRIBUTORS: Further document Marcus Pearce contributions 23 Jul 2004 Marcus Pearce * sql/oodml.lisp: add DATABASE-OUTPUT-SQL-AS-TYPE method specialisation to print floats with the exponent markers removed. * tests/test-oodml.lisp: add tests for updating records with floats. 22 Jul 2004 Marcus Pearce * db-oracle/oracle-sql.lisp: enable :OWNER :ALL in DATABASE-LIST-* for CommonSQL compatibility. * tests/test-init.lisp: skip test :FDDL/TABLE/6 on Oracle since this column constraint syntax is not supported. * tests/test-fddl.lisp: change column indexed in test :FDDL/INDEXES/2 from EMPLID to LAST_NAME since Oracle complains that EMPLID is already indexed. 17 Jul 2004 Marcus Pearce * doc/ref-fdml.xml: document CACHE-TABLE-QUERIES. * tests/test-fdml.xml: add test for CACHE-TABLE-QUERIES. * doc/ref-ooddl.xml: minor changes to syntax and examples entries for uniformity. * doc/ref-oodml.xml: add examples for OODML. * sql/oodml.lisp: ensure SELECT passes on its REFRESH argument to FIND-ALL. * sql/metaclasses.lisp: update docstrings. * tests/test-init.lisp: change :db-constraints for emplid to (:not-null :unique) as a temporary test for multiple column constraints in DEF-VIEW-CLASS. * tests/test-oodml.lisp: add tests for *DB-AUTO-SYNC* and return type of (SETF SLOT-VALUE-USING-CLASS). * TODO, doc/TODO: remove items done. * README: fix typo. 16 Jul 2004 Marcus Pearce * sql/oodml.lisp: on Lispworks, use weak valued hash tables for object caching. * sql/expressions.lisp: Fix SQL generation for the symbol NIL. 16 Jul 2004 Marcus Pearce * sql/expressions.lisp: reactivate caching of generated SQL strings. Move methods for DATABASE-OUTPUT-SQL, OUTPUT-SQL and SQL-HASH-KEY here from sql/fdml.lisp. Rationalise behaviour of SQL-OUTPUT, OUTPUT-SQL and DATABASE-OUTPUT-SQL. * sql/fdml.lisp: remove disabled method ADD-STORAGE-CLASS. Move methods for DATABASE-OUTPUT-SQL, OUTPUT-SQL and SQL-HASH-KEY to sql/expressions.lisp. * sql/ooddl.lisp: replace call to DATABASE-OUTPUT-SQL in DATABASE-PKEY-CONSTRAINT with call to SQL-OUTPUT. * sql/generics.lisp: add docstrings. 15 Jul 2004 Kevin Rosenberg * Version 2.11.16 * db-oracle/oracle-sql.lisp: Remove OpenMCL specific code in favor of fixing UFFI with James Bielman's patch 14 Jul 2004 Kevin Rosenberg * Version 2.11.15 * db-oracle/oracle-sql.lisp: Apply patch for OpenMCL/OSX from James Bielman 14 Jul 2004 Marcus Pearce * README, INSTALL: update URLs. Minor updates to descriptions. * tests/README: remove stuff about editing contexts. 12 Jul 2004 Kevin Rosenberg * db-oracle/oracle-objects.lisp: Change *default-varchar-length* to *default-string-length* 12 Jul 2004 Marcus Pearce * tests/test-syntax.lisp, tests/test-fdml.lisp: add tests for escaping of single quotes. * tests/test-fddl.lisp: add tests for column and table constraints in CREATE-TABLE. Add test for OWNER keyword parameter to LIST-TABLES (assuming same underlying machinery in other FDDL functions). * tests/test-init.lisp: restrict above test to postgresql and oracle. 12 Jul 2004 Kevin Rosenberg * db-sqlite/sqlite-sql.lisp: Fix condition as reported by Aurelio Bignoli. 11 Jul 2004 Kevin Rosenberg * sql/oodml.lisp, sql/package.lisp, doc/ref-ooddl.lisp, db-mysql/mysql-objects.lisp: Add tinyint type 10 Jul 2004 Kevin Rosenberg * Version 2.11.14 * doc/*.xml: documentation additionals and fixes so that docbook passes xmllint. 9 Jul 2004 Kevin Rosenberg * Version 2.11.13 * sql/fdml.lisp: Apply patch from Kim Minh Kaplan to change escaping of single quotes. Mild optimizations for escaped string output. * doc/ref-ooddl.lisp: documentation additions * doc/ref-oodml.lisp: Add purpose to functions * TODO: Add need to test single quote escaping 7 Jul 2004 Kevin Rosenberg * doc/ref-ooddl.xml, doc-ref-oodml.xml: documentation additions * sql/ooddl.lisp: Added SMALLINT type * sql/generic-postgresql.lisp: Added INT2 as SMALLINT type * db-mysql/mysql-objects.lisp: Added SMALLINT type * sql/package.lisp: Export SMALLINT * sql/expressions.lisp: Add MYSQL's UNSIGNED and ZEROFILL as db-constraints 6 Jul 2004 Marcus Pearce * sql/expressions.lisp: add AUTO-INCREMENT and UNIQUE to the recognised column constraints for CREATE-TABLE and the :DB-CONSTRAINTS View Class slot option. * sql/ooddl.lisp: fix bug preventing the :DB-CONSTRAINTS View Class slot option accepting a list of constraints [reported by Travis Cross]. * doc/ref-fddl.xml: add some examples of specifying column and table constraints to the documentation for CREATE-TABLE. * TODO: add note about adding tests for table/column constraints. Add optimisation note about using cached attribute types in insert/update operations. 3 Jul 2004 Marcus Pearce * doc/appendix.xml: add notes about idiosyncrasies/unsupported features and so on the documentation for each backend. * doc/TODO: remove items done. * doc/ref-transaction.xml: add note in introduction about autocommit mode as a difference from CommonSQL. * doc/ref-syntax.xml: add notes about SQL syntax state functions being macros in CLSQL. Add note about SQL operators which are CLSQL extensions. 2 Jul 2004 Marcus Pearce * Version 2.11.12 released * doc/ref-recording.xml: document SQL I/O recording. * doc/ref-prepared.xml: new file for documenting prepared statements. * doc/clsql.xml: comment out include for large object and CLSQL-SYS documentation. * doc/ref-conditions.xml: complete documentation of condition system. * doc/global-index.xml: add symbols from condition system and remove those from LOB and prepared statement APIs. * doc/ref-fdml.xml: complete documentation of FDML. * doc/glossary.xml: add View Class. * doc/TODO: remove items done. * sql/conditions.lisp: make SQL-CONDITION a parent of SQL-ERROR. * sql/package.lisp: remove FOR-EACH-ROW from exports list. Export additional slot accessors for condition classes. 1 Jul 2004 Kevin Rosenberg * doc/ref-ooddl.lisp: Add documentation * doc/ooddl.lisp: Move *DEFAULT-VARCHAR-LENGTH* from oodml.lisp and rename to *DEFAULT-STRING-LENGTH*. Add docstring. * doc/oodml.lisp: Rename references to new name of *DEFAULT-STRING-LENGTH* 1 Jul 2004 Marcus Pearce * doc/ref-transaction.xml: document transaction handling. * sql/transaction.lisp: ensure that COMMIT, ROLLBACK and START-TRANSACTION return NIL as per the CommonSQL spec. Modify ADD-TRANSACTION-{ROLLBACK|COMMIT}-HOOK such that a database is passed as a keyword argument defaulting to *DEFAULT-DATABASE*. Added docstrings. 30 Jun 2004 Marcus Pearce * doc/ref-fdml.xml: document the FDML. * doc/ref-fddl.xml: move documentation for TRUNCATE-DATABASE here. * sql/ooddl.lisp: moved *default-varchar-length* to here from oodml.lisp and renamed to *default-string-length* 23 Jun 2004 Kevin Rosenberg * sql/oodml.lisp: Add keyword :transactions to def-view-from-class to allow specifying transactionless table creation * doc/ref-oodml.lisp: Add new keyword to signature of DEF-VIEW-FROM-CLASS 18 Jun 2004 Marcus Pearce * Version 2.11.11 * sql/expressions.lisp: when removing duplicate table identifiers in the FROM clause of a query, check both table name and alias are equivalent. * sql/fdml.lisp: remove DESCRIBE-TABLE. * sql/db-interface.lisp: remove generics DESCRIBE-TABLE and DATABASE-DESCRIBE-TABLE. * sql/package.lisp: remove DESCRIBE-TABLE, DATABASE-DESCRIBE-TABLE and LIST-TABLE-INDEXES. * sql/generic-postgresql.lisp: add reader conditional #+nil for DATABASE-DESCRIBE-TABLE and comment about its uses for re-implementing LIST-ATTRIBUTE-TYPES with a single SQL query returning type info for all attributes. Fix DATABASE-SEQUENCE-LAST. * sql/fddl.lisp: remove LIST-TABLE-INDEXES and redefine LIST-INDEXES with additional keyword parameter :ON. * tests/test-fddl.lisp: replace LIST-TABLE-INDEXES in :fddl/index/3 with LIST-INDEXES (with :ON parameter). * doc/global-index.xml: remove DESCRIBE-TABLE and LIST-TABLE-INDEXES. * doc/ref-connect.xml: minor tidying. * doc/ref-fddl.xml: document the FDDL. * doc/TODO: removed items done. Moved note about transaction handling from TODO to here. * TODO: move note about transaction handling to doc/TODO. Added optimization note about LIST-ATTRIBUTE-TYPES and LIST-INDEXES. 13 Jun 2004 Marcus Pearce * Version 2.11.10 * sql/syntax.lisp: updated docstrings. * sql/package.lisp: exported DATABASE-NAME-FROM-SPEC from CLSQL package. * sql/database.lisp: add docstrings for CREATE-DATABASE, DESTROY-DATABASE, TRUNCATE-DATABASE and LIST-DATABASES. Replace CLSQL-GENERIC-ERROR signalled in RECONNECT with SQL-CONNECTION-ERROR. * doc/ref-syntax.xml, doc/global-index.xml: minor tidying. * doc/ref-connect.xml: document connection/initialisation. * doc/ref-fdml.xml: move TRUNCATE-DATABASE reference entry here. * doc/TODO: remove items done. * Makefile: add db-oracle to to SUBDIRS. 13 Jun 2004 Kevin Rosenberg * sql/oodml.lisp: Add new serialization functions: WRITE-INSTANCE-TO-STREAM and READ-INSTANCE-FROM-STREAM * sql/expressions.lisp: Avoid duplicate FROM names when selecting from a table that has more than one primary index. * sql/conditions.lisp: Fix printing of closed-database error 13 Jun 2004 Kevin Rosenberg * Version 2.11.9 * sql/conditions.lisp: Set initial slot value for message in SQL-WARNING * sql/transactions.lisp: Correctly set slots of SQL-WARNING 12 Jun 2004 Marcus Pearce * sql/package.lisp: export DATABASE-TYPE from CLSQL and subclasses of SQL-EXPRESSION from CLSQL-SYS. * sql/syntax.lisp: make error signalled in SQL-OPERATION an SQL-USER-ERROR. Make SQL-OPERATOR return just one value. * doc/Makefile: added Mandrake linux. * doc/catalog-redhat.xml, doc/catalog-mandrake.xml: new files. * doc/appendix.xml: fixed little typo (adsf). * doc/glossary.xml: removed closed-database and note about sql-expression, added some entries. * doc/ref-syntax.xml: documented the symbolic SQL syntax. 10 Jun 2004 Kevin Rosenberg * Version 2.11.8 * db-mysql/mysql-loader.lisp: Remove load of unnecessary zlib library * multiple: Add generalized-boolean type as requested by Edi Weitz * TODO: Added need for test of generalized-boolean 9 Jun 2004 Kevin Rosenberg * Version 2.11.7 released * uffi/clsql-uffi-loader.lisp: Apply patch from Edi Weitz for loading with clc-register-user-package. Remove personal directory from path lisp. * db-mysql/mysql-loader.lisp: Similar changes 8 Jun 2004 Kevin Rosenberg * Version 2.11.6 released * sql/oodml.lisp: Commit patch from Edi Weitz to fix symbol writing/reading * TODO: Add need for symbol slot test 7 Jun 2004 Marcus Pearce * sql/package.lisp: remove duplicate export of *CACHE-TABLE-QUERIES-DEFAULT*. * doc/ref-*.xml, doc/global-index.xml: new files documenting the CommonSQL compatible api. * tests/test-fdml.lisp: modified the test :fdml/transaction/3 to reflect changes in return values of WITH-TRANSACTION. 04 Jun 2004 Kevin Rosenberg * tests/README: Fix filename [reported by Bill Clementson] * sql/transactions.lisp: Apply return value patch from Edi Weitz for WITH-TRANSACTION * tests/README: Remove ptester package requirement (as noted by Bill Clementson) 03 Jun 2004 Kevin Rosenberg * Version 2.11.5 released * examples/clsql-tutorial.lisp: Remove obsolete :nulls-ok attribute, Select connection-spec based on connection type. Bugs reported by Bill Clementson. * uffi/uffi.dll, uffi/uffi.lib: Recompile with Visual Studio 2003 * db-mysql/mysql-loader.lisp: Update check for zlibwapi library name on Windows, add \bin\ directory to search path 31 May 2004 Marcus Pearce * db-odbc/odbc-sql.lisp: DB-TYPE replaced with DATABASE-TYPE in DATABASE-CONNECT. * sql/operations.lisp: substr now generates SUBSTR for use on Oracle; added a new operator SUBSTRING for use elsewhere. minus now generates MINUS for use on Oracle. Nvl signals an error if not called with exactly 2 arguments. Add concat function for use instead of the || operator on MySQL and Oracle. * sql/syntax.lisp: changed internal symbol for the || operator to CONCAT-OP. * sql/expressions.lisp: removed redundant and unused functions GENERATE-SQL (cf. SQL-OUTPUT) and DATABASE-CONSTRAINT-DESCRIPTION (cf. MAKE-CONSTRAINTS-DESCRIPTION). * sql/generics.lisp: removed generic function for DATABASE-CONSTRAINT-DESCRIPTION (see above). * tests/test-syntax.lisp: modified/added tests according to changes in sql/operations.lisp. * tests/test-fdml.lisp: changed SUBSTR to SUBSTRING in test :fdml/select/21. * sql/package.lisp: added the operators SQL-SUBSTRING, SQL-CONCAT-OP and SQL-USERENV to the shared exports list. Removed ROLLBACK-TRANSACTION, COMMIT-TRANSACTION, DATABASE-START-TRANSACTION, DATABASE-ABORT-TRANSACTION, DATABASE-COMMIT-TRANSACTION, TRANSACTION-LEVEL, TRANSACTION, RECORD-SQL-COMMAND and RECORD-SQL-RESULT from shared exports list. 30 May 2004 Kevin Rosenberg * db-postgresql/postgresl-sql.lisp: Avoid computing result-types lisp when nil result-types. Return only one value when field-types nil. * db-mysql/mysql-sql.lisp: Simple queries now working with prepared statements. 30 May 2004 Kevin Rosenberg * Version 2.11.4: MySQL 4.1 now passes all tests * sql/package.lisp: Add API for prepared statments. * sql/fdml.lisp: Change implicit flatp processing for string map-query for greater CommonSQL conformance. Add high-high API for prepared statements. * tests/test-basic.lisp: Add test for map-query and single argument. * sql/transactions.lisp: Change name/semantics of autocommit to set-autocommit. * sql/generic-postgresql.lisp: Add support for prepared statements. * tests/test-internal.lisp: New file * sql/odbc-api.lisp: Update to using ODBC V3 protocol * clsql-mysql.asd, clsql-uffi.asd: Remove check and Common Lisp Controller invocation. * db-mysql/mysql-api.lisp: Add support for MySQL 4.1 field structure * sql/expressions.lisp: Avoid emitting double parenthesis when a function contains a subselect. 27 May 2004 Kevin Rosenberg * Version 2.11.3 * sql/ooddl.lisp: Commit patch from Edi Weitz fixing return type (setf slot-value-using-class) * TODO: add not that need a test case for the above fix * db-sqlite: Remove clisp support since clisp can not run CLSQL with its MOP usage * db-oracle/oracle-sql.lisp: By default, use OCIEnvCreate as introduced in Oracle8. Leave older code selectable by a reader macro for Oracle7 and prior. Avoid use of OCIServerAttach since CLSQL uses OCILogon and does not the more complex session management. 26 May 2004 Kevin Rosenberg * sql/oodml.lisp: Commit universal-time typo patch from Edi Weitz * test/test-init.lisp: Add universal-time slot to person. * test/test-fddl.lisp: Add tests of universal-time slot * test/test-ooddl.lisp: Test universal-time slot in an object * TODO: Remove need for universal-time test * debian/rules, debian/control: Add cl-sql-oracle binary package * doc/appendix.xml: Add Oracle backend information * db-oracle/oracle-objects.lisp: Add database-get-type-specifier for universal-time. Convert BIGINT CLSQL type to CHAR SQL type * db-mysql/mysql-sql.lisp: Fix condition name to sql-connection-error * doc/ref-clsql.xml: Renamed from ref_clsql.xml. Change the documentation for map-query to reflect changed in arguments to be CommonSQL compatible. Updated old clsql conditions to new CommonSQL compatible conditions. 25 May 2004 Kevin Rosenberg * sql/oodml.lisp: (string n) now produces a CHAR field. Add new VARCHAR type. Added *default-varchar-length* rather than previous hard-coded varchar length. Remove 'simple-string and 'simple-base-string since they are subtypes of 'string. * db-oracle/oracle-sql.lisp: Use *default-varchar-length* rather than local hard-coded value. * sql/metaclasses.lisp: Convert specified type VARCHAR and (VARCHAR n) to Lisp type string. Convert specified-type (CHAR n) to string. Convert specified-type CHAR to lisp type character. * sql/generic-postgresql.lisp: (string n) => (CHAR n) * sql/operations.lisp: Add userenv * doc/TODO: Add AUTOCOMMIT. Remove need for large table and bigint slot tests * sql/oracle-sql.lisp: Add 64-bit bigint direct conversion * uffi/clsql-uffi.lisp: Handle signed 64-bit integers * test/test-init.lisp: Add large table with bigint slot 25 May 2004 Kevin Rosenberg * Version 2.11.1 released: Much simpler Oracle client library loading. Now uses ORACLE_HOME environmental variable as well as tests default path for Oracle Instant Client. 25 May 2004 Kevin Rosenberg * Version 2.11.0 released: Full Oracle support. All tests pass * db-oracle/oracle-sql.lisp: Add declaration so that SBCL runs efficiently. * tests/test-init.lisp: capitalize odbc backend name in banner * CONTRIBUTORS: Add note about Marcus' excellent work * sql/oodml.lisp: Removed old stub function * clsql.asd: Use module names in current package rather than keyword package * db-oracle/oracle-sql.lisp: Don't trim trailing spaces. Prevent interrupts in setting sequence position. Make autocommits more efficient. * tests/test-init.lisp: Skip 2 tests on Oracle which have unsupported syntax * sql/oodml.lisp: Get rid of undocumented raw-string type. CommonSQL strings are raw (non-trimmed trailing whitespace). Add database-get-type-specifier and read-sql-value for NUMBER and CHAR. * sql/base-classes.lisp: Add autocommit slot * sql/transaction.lisp: Added autocommit processing, mild cleaning. * doc/intro.xml: Add Oracle 24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk) * db-postgresql-socket/postgresql-socket-sql.lisp: replace CLSQL-SIMPLE-WARNING with SQL-WARNING. * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with SQL-WARNING. * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR. * clsql.asd: reworked module structure in package definition and file names to better reflect component functionality. * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to exports list. Removed duplicate and obsolete exports. Exported remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT, SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and according to whether they are specified by CommonSQL or CLSQL extensions. * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with SQL-WARNING. * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND here from basic-sql.lisp. * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted). * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted). * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp (both deleted). * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted). * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted). 23 May 2004 Kevin Rosenberg * Version 2.10.22 released * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that has reversed class slots, change the default for ordered-class-slots so that slots are now in the same order an in the def-view-class. * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS * test/test-fddl.lisp: Add two tests for mixed case names * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double) for computed fields, this will require some adjustment to the test suite which in many cases expects integers. * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns 22 May 2004 Kevin Rosenberg * Version 2.10.21 released * sql/sequences.lisp: Move generic sequence functions here from db-sqlite, db-odbc, and db-aodbc. * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE, DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these. * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to sql/generic-odbc.lisp * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp: Move common code to sql/generic-postgresql.lisp * sql/classes.lisp: honor case of string tables when outputting queries * sql/objects.lisp: Add database type to default database-get-type-specifier method * sql/sql.lisp: Add database type to default database-abort-transaction method * db-mysql/mysql-objects.lisp: New file * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME from environment * test/test-fdml.lisp: String table names are now case sensitive, so convert to default db case for FDML/SELECT/25 22 May 2004 Kevin Rosenberg * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases and string identifiers with non-default case * sql/table.lisp: Don't convert string table name to a symbol. * sql/classes.lisp: Honor case of string identifiers * sql/sql.lisp: Ensure recyclebin is purged for Oracle in TRUNCATE-DATABASE * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of of owner phrases. Obtain server and client versions. * db-oracle/oracle-objects.lisp: Fix type specifiers * tests/test-fddl.lisp: Allow :varchar2 and :number as data types * tests/test-init.lisp: Properly get username from Oracle connection-spec 22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/generics.lisp: reworked docstrings. Remove generics for ADD-TO-RELATION and REMOVE-FROM-RELATION. * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS for CommonSQL compatibility. * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS for CommonSQL compatibility. Remove ADD-TO-RELATION and REMOVE-FROM-RELATION. * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS for CommonSQL compatibility. * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS. * sql/conditions.lisp: add documentation for conditions. Add SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility. 21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/basic-sql.lisp: reworked docstrings. * sql/transactions.lisp: reworked docstrings. * sql/sql.lisp: reworked docstrings. * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility. * sql/database.lisp: reworked docstrings. * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P and FDML extensions and database extensions. 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword. * db-oracle/make9.sh: add makefile for building with Oracle 9 client libraries * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous Oracle versions with the PURGE option required for drop table. This needs to be converted to a generic function and moved to db-oracle/oracle-sql.lisp 20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE. * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION. * sql/table.lisp: reworked docstrings. * sql/objects.lisp: moved *default-update-objects-max-len* here from table.lisp. * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE, DROP-VIEW and DROP-INDEX and the use of the :transactions and :constraints keyword args to CREATE-TABLE. * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now CommonSQL compatible with respect to column constraints. 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/oracle-sql.lisp: Now compiles and runs on SBCL. Requires UFFI 1.5.0 or higher 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.19 * sql/conditions.lisp: Fix cerror 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.18 released: New condition hierarchy to be compatible with CommonSQL -- not backward compatible with previous CLSQL. * sql/db-interface.lisp: Add more default methods * sql/objects.lisp: Add explicit table name to order-by parameters in find-all when only one table to avoid selecting a duplicate row. Fix error in FIND-ALL when using :order-by such as (([foo] :asc)) as previous logic was adding two fields (foo asc) to SELECT query. Make :result-types :auto be the default for object selections. Properly handle caching key when using multiple order-by with asc/desc directions. * db-oracle/*.lisp: Much improvements, now passes 90% of test suite 19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/recording.lisp: reworked docstrings. * sql/syntax.lisp: reworked docstrings. * doc/TODO: added notes about extensions to SQL-RECORDING-P and the SQL syntax state functions being macros. 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/package.lisp: Export initialize-database-type and *initialize-database-types* from CLSQL package. * sql/conditions.lisp: Add new CommonSQL compatible conditions, remove old CLSQL conditions. * sql/loop-extensions.lisp: Make errors of type sql-user-error * */*.lisp: Convert to from old to new conditions 18 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/table.lisp: Add PURGE to drop command for oracle 10g backend. To handle this difference, will need to add a new database-drop-table generic function. * db-oracle/oracle-sql.lisp: Move server-version and major-version-number to database object to allow multiple connections to Oracle servers of different versions. 18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * TODO: moved notes about backends to doc/TODO. * doc/TODO: added notes about backends and select extensions. * sql/base-classes.lisp: remove obsolete schema slot in database class. 16 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * db-oracle/oracle-api: Add OCIServerVersion * db-oracle/oracle-sql: Query and store server version on connect * sql/db-interface.lisp: Add new db-type-has-bigint? generic function to handle OCI's lack of bigint support * test/test-basic.lisp: Separate bigint testing * test/test-utils.lisp: Add oracle to specs and list of backends * doc/TODO: New file * test/test-fdml.lisp: Added FDML/SELECT/34 to test run-time instantiation of variables in reader macros. * TODO: Remove item already complete. Add note about condition variances 16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/syntax.lisp: added condition to the reader macro to treat [*] as a column identifier (rather than an operation) for CommonSQL compatibility. * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION keword args to SELECT, [*] as column identifier, new MAP-QUERY behaviour and the ANY and ALL operators in subqueries. * tests/test-init.lisp: add set-operation and subquery tests to appropriate skip lists. * sql/objects.lisp: remove redundant and non CommonSQL compatible ORDER-BY-DESCENDING keyword argument for SELECT. * sql/classes.lisp: remove redundant and non CommonSQL compatible ORDER-BY-DESCENDING keyword argument for SELECT. * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT with object queries. 15 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/db-interface.lisp: Add new db-type-has-union? since Mysql 3.23 does not support unions. * sql/test-init.lisp: Don't try union tests on database backends which do not support it. * db-oracle/*.lisp: initial port to UFFI * sql/objects.lisp: implement UPDATE-OBJECT-JOINS, implement REFRESH for SELECT. * tests/test-oodml.lisp: Add tests for deferred retrieval, caching, refresh, and update-object-joins * tests/test-init.lisp: Add deferred-employee-address class 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add COALESCE operator and make NVL a synonym for this. Make ANY, SOME, ALL and EXISTS generate function expressions so they output the correct SQL. * sql/classes.lisp: SELECT now generates appropriate SQL when passed the SET-OPERATION and ALL keyword arguments. * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now accepts ordering constraints as pairs of the form (column direction) where direction may be :ASC or :DESC. * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL. Correct tests for ANY, SOME, ALL and EXISTS. * tests/test-fdml.lisp: added test for COALESCE. * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION using funcall unless QUERY-EXPRESSION returns one column and its FLATP slot is not nil in which case apply is used. * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the changes. * TODO: remove items done. * db-postgresql/postgresql-sql.lisp: no need to reverse results in DATABASE-LIST-ATTRIBUTES. * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse results in DATABASE-LIST-ATTRIBUTES. 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/classes.lisp: SELECT now accepts table identifiers as strings for CommonSQL compliance. Add support for qualified sql identifiers with aliased table names. * tests/test-fdml.lisp: added tests for table identifiers as strings in SELECT and for aliased definitions. * tests/test-syntax.lisp: added tests for alias definitions. 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and field-names set to nil. * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly with null attribute values. * sql/operations.lisp: modify SQL concatenation operator to accept unescaped || symbol. * sql/syntax.lisp: modify sql reader macro function to accept unescaped sql concatenation operator. * tests/test-fdml.lisp: unescape sql concatenation operator. * tests/test-syntax.lisp: unescape sql concatenation operator. * TODO: remove items done. Add notes about SQLITE/MYSQL backends. Note to add test for universal-time. Note about difference from CommonSQL in transaction handling. 13 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * tests/test-init.lisp: Add deferred-employee-address class * tests/test-oodml.lisp: Add deferred retrieval testgs 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.17 * LATEST-TEST-RESULTS: Run on all platforms, add AMD64 * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type * *: Fix minor style warnings * clsql-classic: Remove system and subdirectory * clsql-base: Remove system and subdirectory and fold into clsql system * doc/intro.xml: Remove reference to old clsql-base. Add x86_64 as supported platform. 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.16: CLSQL now fully supports AllegroCL AMD64 * db-odbc/odbc-api.lisp: work around return-type bug [spr28889] in Allegro 7.0beta AMD64 * db-odbc/*.lisp: Add a layer of indirection to foreign-type of ODBC longs since this type can vary on 64-bit platforms depending upon the compilation options of unixODBC. * db-mysql/mysql-api.lisp: Fix int vs. long slots in foreign structures found by testing with AllegroCL 7.0b AMD64. * db-*/*-loader.lisp: Load 64-bit libraries on 64-bit platorms * sql/objects.lisp: Simple implementation of UPDATE-OBJECT-JOINS. Initial caching support for SELECT * tests/test-oodml.lisp: Avoid using cache when testing select. * sql/kmr-mop.lisp: Explicitly check slot order and store as a cl:*feature* * sql/recording.lisp: Remove additional types to increase CommonSQL conformance. * tests/test-init.lisp: Change a :column attribute to test symbols as value * sql/relations.lisp: Remove functions since they don't support many to many relationships. * examples/clsql-tutorial.lisp, doc/csql.lisp: Remove use of add-to-relations function and replace with explicit field settings. * base/classes.lisp: Remove obsolute query-stream. Add record-caches slot. 9 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.15 * LATEST-TEST-RESULTS: results with current version * sql/kmr-mop.lisp: Make CMUCL reader macros specific for cmu18 since cmu19 has opposite order of class slots. * sql/objects.lisp: Fix (setf slot-value-using-class) for Lispworks * tests/test-fdml.lisp: Renumber SELECT tests to avoid overwriting a previous test * tests/test-init.lisp: Check test-database-underlying-type for ODBC/MySQL tests 8 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/operations.lisp: complete remaining operations for the sql syntax: SUBSTR, SOME, ORDER-BY, GROUP-BY, NULL, DISTINCT, EXCEPT, UNION, INTERSECT, BETWEEN. * sql/classes.lisp: add new classes: SQL-BETWEEN-EXPRESSION, SQL-QUERY-MODIFIER-EXPRESSION and SQL-SET-EXPRESSION. * tests/test-syntax.lisp: add tests for new operations. * tests/test-fdml.lisp: add tests for queries based on new operations. * tests/test-init.lisp: add select/20 to tests skipped for sqlite and select/20, query/5, query/7 and query/8 to tests skipped by mysql. * TODO: removed entries done. 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * tests/benchmarks.lisp: Add immediate vs. deferred join test. 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.13: Now works on openmcl 0.14.2 * sql/objects.lisp: Add :retrieval :immediate for object selections * tests/test-init.lisp: Add non-index fields for testing join class employee-addresss * test/test-oodml.lisp: Add tests for retrieval immediate * sql/metaclasses.lisp: Handle differences in direct-slot-definition values which are now listifed by openmcl 14.2. * sql/objects.lisp: more framework for supporing immediate retrieval 7 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * docs/intro.xml: Upload location of a README file * sql/metaclass.lisp: Work-around openmcl's CHANGE-CLASS changing the type-specifier. Use a lisp type of (OR NULL FOO) for a specified-type of FOO unless :db-constraints :not-null. No need to specialize finalize-inheritance for openmcl. * tests/test-*.lisp: Rename fields so that joins occur on fields with different names. This ensures that join code is selecting the proper name. * test/test-init.lisp: Add :base-table for employee-address view class for testing. * sql/objects.lisp: Use view-table rather than name of table in a number of places to fix errors noted with using :base-table. 6 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/objects.lisp: replace *update-records-on-make-instance* with *db-auto-sync* which also controls both automatic creation of new records on creation of new instance and updating of record fields on setting of instance slots (as suggested by Edi Weitz). * tests/test-init.lisp: replace *update-records-on-make-instance* with *db-auto-sync*. * sql/package.lisp: replace *update-records-on-make-instance* with *db-auto-sync*. * TODO: replace *update-records-on-make-instance* with *db-auto-sync*. * sql/objects.lisp: remove redundant rebindings of *db-initializing* and *default-database* in FIND-ALL. * sql/package.lisp: import time functions from CLSQL-BASE. * tests/test-time.lisp: replace CLSQl-BASE package qualifier with CLSQL. * tests/test-fdml.lisp: replace CLSQl-BASE package qualifier with CLSQL. * tests/test-init.lisp: replace CLSQl-BASE package qualifier with CLSQL. * tests/test-ooddl.lisp: replace CLSQl-BASE package qualifier with CLSQL. 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/classes.lisp: Add SQL-OBJECT-QUERY type. Have [select 'class] now return a sql-object-query type rather than directly performing a query. This improves CommonSQL conformance. * sql/sql.lisp: Add new QUERY method for SQL-OBJECT-QUERY. Move from basic/basic-sql.lisp the DO-QUERY and MAP-QUERY since they now depend on sql-object-query-type. * sql/loop-extensions.lisp: Move from base package * classic/package.lisp: remove references to map-query and do-query 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * TODO: New section on optimizations, especially optimizing JOINs. * sql/objects.lisp: Have :target-slot return of list of lists rather than a list of cons pairs to be conformant with CommonSQL. Make :target-slot much more efficient by using a SQL inner join statement and just requiring one SQL query. Add :retrieval :deferrred to target-slot joins. Add placeholder for update-objects-join. * sql/classes.lisp: Add :inner-join and :on slots to sql-query class and process them for query output-sql. 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.11 * base/basic-sql.lisp: Avoid multiple evaluation of query-expression in DO-QUERY * sql/objects.lisp: Make SELECT a normal function. SELECT now accepts type-modified database identifiers, such as [foo :string] which means that the values in column foo are returned as Lisp strings. Add new *update-records-on-make-instance* special variable controlling automatic creation of new instances. Add missing RESULT-TYPES keyword to FIND-ALL. Add :target-slot support. * sql/packages.lisp: Export *update-records-on-make-instance* * test/test-oodml.lisp: Add tests for :target-slot and many-to-many selections. * test/test-fdml.lisp: Add tests for type-modified database identifiers. * test/test-init.lisp: Stop using add-relation since implementing many-to-many joins. Use *update-records-on-make-instance* to automatically store records on instance creation. Add many-to-many employee-address view-class. 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.10 * base/loop.lisp: Add object iteration. Use :result-type :auto for result-set. Remove duplicate (and non-correct) code for non-list variables by simply making an atom variable into a list. * sql/package.lisp: Remove unnecessary clsql-sys package and replace it with clsql. * sql/metaclasses.lisp: Properly store specified-type from direct-slot-definition and then store translated type in effective-slot-definition * sql/classes.lisp: Don't output type in sql-output for SQL-IDENT-ATTRIBUTE. This is in preparation for supporting [foo :integer] as fields in SELECT. * sql/query.lisp: Set default for :result-types to :auto in FDML QUERY. * sql/objects.lisp: Use specified-type when invocating database-get-type-specifier. def-view-class macro now returns the class instance. * base/basic-sql.lisp: Make :AUTO the default value for :RESULT-TYPES for MAP-QUERY and DO-QUERY. * sql/objects.lisp: Add bigint type * test/tests-basic.lisp: Add tests for :result-types for MAP-QUERY and DO-QUERY * test/test-fdml.lisp: Add test for result-types in LOOP and also using single symbol rather than a list for variables. Add test that default :result-types is auto for FDML QUERY. * test/test-syntax.lisp: Don't expect TYPE in the SQL-OUTPUT of SQL-IDENT-ATTRIBUTE. * test/test-oodml.lisp: Enable OO loop iteration test, modify it so it doesn't depend on boolean where. 4 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * Version 2.10.9 * sql/objects.lisp: added derived type specifier for universal time. * sql/package.lisp: added #:universal-time to clsql-sys exports. * tests/test-oodml.lisp: added test for translation of boolean slots in SELECT with object queries. 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * db-odbc/odbc-api.lisp: Fix changing nil to "NIL" for odbc/postgresql backend. * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that it can handle NIL values from the ODBC driver * tests/benchmarks.lisp: New file with initial benchmark suite * sql/relations.lisp: fix to add subclassing support, minor optimizations [Edi Weitz] 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.8 * base/conditions.lisp: Add *backend-warning-behavior* special variable. * db-postgresql-socket/postgresql-socket-sql.lisp: Honor value of *backend-warning-behavior* * tests/test-fdml.lisp: Remove test of raw boolean value since different backends handle this differently. Add test for :column attribute. * tests/test-oodml.lisp: Add tests for boolean slot value and for :void-value attribute * tests/test-init.lisp: Use *backend-warning-behavior* to suppress warnings from postgresql about implicitly creating primary key in tables. Add new address table. 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.7 * db-odbc/odbc-dbi.lisp: Convert TINYINT to integers when result-types is :auto * sql/objects.lisp: Properly handled writing/reading Boolean values from SQL database when retrieving objects. * test/test-fdml.lisp: Add another test for boolean results * test/utils.lisp: Fix incorrect declaration 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * Version 2.10.6 * sql/generics.lisp: add generic function for SELECT. * sql/objects.lisp: make SELECT a method specialisation. * sql/classes.lisp: MAKE-QUERY now calls SELECT if the selections referred to are View Classes. * base/basic-sql.lisp: in DO-QUERY and MAP-QUERY, if the query-expression arg evaluates to a list, then we have an object query. * tests/test-oodml.lisp: add tests for DO-QUERY and MAP-QUERY with object queries. * TODO: remove items done and add a todo for SELECT. * sql/objects.lisp: SELECT takes a :field-names arg to pass on to QUERY. * sql/sql.lisp: add :field-names arg to QUERY. * tests/test-fdml.lisp: minor rework to use :field-names arg to SELECT. 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * sql/objects.lisp: fix bug in FIND-ALL when SELECT called with 2 or more View Classes. * sql/objects.lisp: make the :flatp argument to SELECT work with object queries. * sql/objects.lisp: make SELECT accept a :result-types argument (defaults to :auto) which is passed on to QUERY. * sql/objects.lisp: SELECT returns field-names as a second value. * tests/test-ooddl.lisp: add flatp arg to SELECT calls as appropriate. * tests/test-fdml.lisp: add flatp/result-types arguments to calls to SELECT and take only first value as appropriate. * tests/test-fdml.lisp: add two new tests for query result coercion and the field-names returned as a second value from SELECT. * tests/test-oodml.lisp: add flatp arg to SELECT calls as appropriate. 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.6-pre1 * sql/metaclasses.lisp: Add void-value slot * doc/csql.xml: Update def-view-class documentation * test/test-init.lisp: Change old :db-type to :db-kind. Remove old :nulls-ok attributes. * sql/objects.lisp: Add new universal-time and bigint types. Optimize reading of integers using parse-integer rather than read-from-string. * */*.lisp: Merge clsql-base-sys and clsql-base packages into clsql-base package * classic/sql.lisp: Move large object support into base, leaving classic without any functionality that is provided in the clsql system. * classic/package.lisp: Rename clsql-classic-sys package to its former nickname of clsql-classic 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.5: SQLite backend now passes all result-types tests * clsql-sqlite.asd: Depend on clsql-uffi system * db-sqlite/sqlite-sql.lisp: Use clsql-uffi:convert-raw-field for efficiency and code reuse. * db-sqlite/sqlite-api-uffi.lisp: Change (* :char) to (* :unsigned-char) for better cross-implementation compatibility. 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.4 * sql/tables.lisp: Fix typo in CACHE-TABLE-QUERIES [Marcus Pearce] * db-postgresql/postgresql-sql.lisp: Fix foreign-string vs. cstring bug on SBCL in result-field-names function as reported by Marcus Pearce * db-sqlite/sqlite-sql.lisp: Fix in database-store-next-row manifest in SBCL testing 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.3 * sql/database.lisp: Conform more to CommonSQL output for STATUS command [Marcus Pearce] * sql/sqlite-sql.lisp: Rework to use result-types * sql/sqlite-api-clisp.lisp: Add compatibility layer with sqlite-api-uffi.lisp so that sqlite-sql.lisp can be cleaned up of most clisp reader conditionals * sql/test-init.lisp: Now run field type tests on sqlite backend 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.2 * base/basic-sql.lisp: Set default value of :result-types to :auto for more CommonSQL conformance. * test/test-fdml.lisp: Add tests for numeric value of fields 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.1: New API function: CACHE-TABLE-QUERIES. * base/basic-sql.lisp, db-*/*-sql.lisp: More CommonSQL conformance. Return field names as second value for QUERY. This can be overridden for efficiency with the new keyword :FIELD-NAMES set to NIL in the QUERY invocation. * test/test-fdml.lisp: Add tests for new field-name feature * sql/metaclass.lisp: Remove old Lispworks cruft and replace it with invocation of new code in kmr-mop.lisp which actually works with Lispworks 4.2 * doc/ref_clsql.xml: Document new :FIELD-NAMES keyword to QUERY function * base/db-interface.lisp: Document the multiple values returned by DATABASE-ATTRIBUTE-TYPE so matches the undocumented CommonSQL behavior. * sql/table.lisp: Add *CACHE-TABLE-QUERIES-DEFAULT* and *DEFAULT-UPDATE-OBJECTS-MAX-LEN* variables and export them. LIST-ATTRIBUTE-TYPES now conforms to CommonSQL spec. Implement CACHE-TABLE-QUERIES. * db-odbc/odbc-sql.lisp: Fix attribute-type function * test/test-fddl.lisp: Add tests for attribute type * db-mysql/mysql-sql.lisp: Mild optimization in accessing field structures. * base/classes.lisp: Add attribute-cache slot to database clas * base/initialize.lisp: initialize-database-type now automatically loads database-type backend as needed. * base/test-init.lisp: Utilize new initialize-database-type functionality. * TODO: remove items done 30 Apr 2004 Marcus Pearce (m.t.pearce@city.ac.uk) * Version 2.9.6 * sql/objects.lisp: remove create/drop-sequence-from-class. * sql/objects.lisp: add INSTANCE-REFRESHED generic function. * sql/objects.lisp: improved CommonSQL compatibility for UPDATE-RECORD-FROM-SLOT, UPDATE-RECORD-FROM-SLOTS, UPDATE-RECORDS-FROM-INSTANCE and DELETE-INSTANCE-RECORDS. * sql/generics.lisp: move generics from objects.lisp to here. 29 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.6-pre1 * db-mysql/mysql-client-info.lisp: Add client version 4.1 detection * sql/sql.lisp: Make *default-database* the default for TRUNCATE-DATABASE 28 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.5 * db-mysql/mysql-sql.lisp: Fix bug in transaction capability detection * sql/objects.lisp: Commit patch from Slawek Zak to allow specifying :metaclass in DEF-VIEW-CLASS invocation. This allows defining classes on a metaclass specialized from standard-db-class. 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.4: Multiple changes to support Allegro's "modern" lisp which uses a lowercase reader and has case-sensitive symbols * sql/classes.lisp: Fix make-load-form bug for sql-ident-table exposed by case-sensitive mlisp. 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.3: All tests now pass on all platforms! * LATEST-TEST-RESULTS: New file with summary of test results * sql/generics.lisp: New file for generic function definitions. * test/test-init.lisp: Display names of skipped tests. Use unwind-protect to ensure disconnect * sql/objects.lisp: Change database-type to database-underlying-type so that actual database engine is properly identified * db-odbc/odbc-api.lisp: Have default *time-conversion-function* return an ISO timestring for compatibility with other drivers. Workaround bug in MyODBC for LIST-TABLE-INDEXES * test/test-fdml.lisp: Accomodate that odbc-postgresql driver returns floating-point values for floor and truncate operations * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS * tests/test-basic.lisp: Port to regression tester * test/test-init.lisp: Output to *report-stream* * docs/appendix.xml: Document ODBC and SQLite backends. * sql/classes.lisp: Make output-sql require a database parameter. This allows SQL generation to have the proper case to support the differences in case handling between CommonSQL API, Postgresql, MySQL, Oracle. 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.2: Improvments in database capability introspection and querying. Support transactions in MySQL where available. All tests now pass on MySQL and SQLite in addition to postgresql and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2. * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support DATABASE-LIST-SEQUENCES. * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB, HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE * tests/*.lisp: Check database capabilities and remove tests which the database backend does not support * sql/table.lisp: Add :TRANSACTIONS keyword to create table which controls whether InnoDB tables will be created when supported on the underlying MySQL server. 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.9.0: New API function: LIST-TABLE-INDEXES, supported by all database backends (except AODBC since AODBC doesn't support index querying) * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function to support index queries * db-aodbc/aodbc-sql.lisp: Filter driver manager "information_schema" tables from LIST-TABLES * tests/test-basic.lisp: Remove table after testing * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE which gets the underlying type of database -- required when dealing with ODBC databases and want to query database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES? as first database-backend specific feature. Is T on :mysql, NIL on other backends. Change DROP-TABLE to query this. 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.8.2: Build changes for FreeBSD [Slawek Zak] 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.8.1 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.8.0: New API function: LIST-DATABASES * base/utils.lisp: Fix command-output on CMUCL/SBCL * db-*/*-sql.lisp: Add new database-list function * base/database.lisp: Add new LIST-DATABASES command 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.9 * db-sqlite/sqlite-sql.lisp: Fix sequence functions. * db-sqlite/sqlite-api-uffi.lisp: Print error string correctly. 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.7 * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind from Eduardo Munoz. 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.6 * base/objects.lisp, base/classes.lisp: Patch for db-kind from Eduardo Munoz 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.5 * base/basic-sql.lisp: Fix FLATP in QUERY 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.3: Implement RECONNECT 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.2: Fix ODBC on Lispworks Windows 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.1: Fix for new ODBC backend. clsql-odbc now works on SBCL, CMUCL, OpenMCL in addition to AllegroCL and Lispworks. 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.7.0: New backend: ODBC. Tests as well as AODBC backend on Allegro,Lispworks. SBCL and CMUCL don't work quite yet. Requires UFFI v1.4.11+ * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr to explicitly set ODBC2 support. Add BIGINT support. Add result-types support. Added SQLTables. Fix array type in fetch-all-rows. Make width changable by database or query. * base/utils.lisp: Add process functions * base/package.lisp: Export utils to CLSQL-BASE-SYS * db-aodbc: Implement sequence functions, database-list-tables, database-list-attributes * tests/utils.lisp: Add support for ODBC backend, rework READ-SPECS to use +all-db-types+ * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS for SEQUENCE-NEXT 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.13. Requires UFFI version 1.4.9 * db-odbc/*.lisp: Further porting. Pre-alpha code! But, basic query is now working. 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.12 * base/transactions.lisp: Add quote for macro expansion of WITH-TRANSACTIONS [Time Howe] * db-sqlite/sqlite-sql.lisp: Support memory database in database-probe [Ng Pheng Siong] * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC. The DBI layer is not finished. 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.11 * sql/objects.lisp: add :root-class functionality for list-classes and add duration type support [Marcus Pearce] * db-odbc: Add mid-level [DBI] layer 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.10 * db-aodbc: Add methods for generic functions, some are not yet implemented. * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC support 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.9 * base/package.lisp: Add missing symbols [Marcus Pearce] 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.8 * test/test-fddl.lisp: Cleanup fix [Marcus Pearce] * utils/time.lisp: Multiple fixes [Marcus Pearce] * sql/sql.lisp: Fix for truncate-database [Marcus Pearce] 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.7 * sql/*.lisp: Remove schema versioning cruft [Marcus Pearce] * Makefile: Add classic subdirectory 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.6 * sql/sql.lisp: Fix TRUNCATE command, bug reported by Marcus Pearce * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle specific and easy for an application to directly support. Idea from Marcus Pearce. * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce]. Keep low-level interface for future optimization supporting LIST-ATTRIBUTE-TYPES command. * Makefile: Add to db-sqlite and test directories. Include them in top-level Makefile 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.5 * sql/relations.lisp: Add missing file * utils/time.lisp: Fixes/extensions [Marcus Pearce] * test/test-time.lips: New file [Marcus Pearce] 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.4 * test/test-init.lisp: Properly handle object creation. Close database after use. * sql/sql.lisp: Make DESCRIBE-TABLE a generic function so can have methods specialized on table being a string or an sql-table object. * base/pool.lisp: Really fix CMUCL locking 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.3 * test/test-init.lisp: Signal correctly if any errors occurred in any test suite * base/loop-extensions.lisp: Fix error introduced for Lispworks * base/pool.lisp: Fix locking for CMUCL * base/objects.lisp: Remove schema-version cruft 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.2: New CLSQL API functions: DESCRIBE-TABLE AND TRUNCATE-DATABASE Currently, this are only supported on :postgresql and :postgresql-socket * base/database.lisp: automatically load ASDF system in CONNECT if not already loaded * base/tests.lisp: disconnect database after testing * base/*.lisp: Remove CLOSED-DATABASE type in favor of storing open/closed status in slot of database * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT, DATABASE-DESCRIBE-TABLE * db-sqlite/sqlite-sql.lisp: Add missing slots in database * base/conditions: Remove duplicate condition * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE * base/recording.lisp: Add new :QUERY type for recording 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.1: documentation fixes, merged classic-tests into tests 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.6.0 released: New API functions CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE * doc/ref_clsql.xml: Document new functions * base/database.lisp: New API functions * base/conditions.lisp: Added CLSQL-ACCESS-ERROR * base/utils.lisp: Fix use of position-char. Add COMMAND-OUTPUT used by backends for running external programs. Fix parsing of SQL*NET-compatible connection-specs. * base/loop-extension.lisp: Simplify package use for Lispworks and Allegro * db-*/*-sql.lisp: Added DATABASE-CREATE, DATABASE-DESTORY, PROBE-DATABASE methods * tests/test-init.lisp, clasic-tests/tests.lisp: Use destroy-database and create-database to ensure testing with empty database * tests/test-connection.lisp: Add tests for parsing of string connection-specs * examples/run-tests.sh: New file for running test suite on all installed CL implementations * examples/clsql-tutorial.lisp: moved from doc directory * examples/dot.clsql-tests.config: New file giving an example test configuration * test/README: Add notes about rtest/ptester downloads and link to sample test configuration file. 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.5.1 released: * tests/*.lisp: Rework so tests are run on multiple backends automatically based on the contents of ~/.clsql-tests.config. Reuse helper functions from classic-tests. * base/database.lisp: Support connection-spec as string for CONNECT * classic-tests/tests.lisp: Automatically load database backends as needed. 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.5.0 released: All tests for CLSQL and CLSQL-CLASSIC pass on all platforms. * base/loop-extension.lisp: Add Lispworks loop-extension. Improve type specifying on other platforms. 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.4.2 released: loop extension now supported on Allegro, all CLSQL-TESTS pass on Allegro. * sql/metaclasses.lisp: Some optimization of compute-slots, be selective when ordered-class-slots needs to be called instead of class-slots * TODO: add URL with documentation on extending Lispworks LOOP form 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.4.1 released: CLSQL-TESt suite passes all tests for postgresql and CMUCL, SBCL, OpenMCL. Allegro and Lispworks pass all tests except for FDML/LOOP/1 since the loop extension have not yet been ported to those implementions. * sql/metaclasses.lisp: Added new slot to standard-db-class to hold user-specified type. OpenMCL adjustments to compensate for its type-predicate function. Since AllegroCL, Lispworks, and OpenMCL have different slot orders, added compute-slots and ordered-class-slots functions so their slot order matches SBCL/CMUCL. 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.4.0 released: All tests for clsql-classic now finish correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for mysql, postgresql, postgresql-sockets, and sqlite backends. * db-mysql/mysql-sql.lisp: Fix array dereferencing * classic-tests/tests.lisp: Fix package name of number-to-sql-string. * clsql.asd/clsql-tests.asd: Add support for asdf:test-op * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes, now passes tests on all support UFFI platforms. * db-postgresql-socket/postgresql-socket-api.list: Ported to SBCL and OpenMCL * multiple: Finish renaming of :types keyword to :result-types for greater CommonSQL compatibility, including documentation * sql/basic-cmds.lisp: Remove obsolete file 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.3.3 released * Fixes for sequences on mysql and sqlite [Marcus Pearce] * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg] * Fix for schema table [Marcus Pearce] * Add loop extension support for SBCL and OpenMCL [Marcus Pearce] * Fixes to test suite [Marcus Pearce] 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * db-*/*-sql.lisp: Ensure that expr in database-query-result-set is a string * Documentation integration 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * With for Marcus Pearce's excellent work, I've merged his clsql-usql port into clsql. The original clsql interface is available in the clsql-classic package. 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net) * Integrate patch from Marcus Pearce adding further support for providing backend for UncommonSQL 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net) * Integrate patch from Aurelio Bignoli for SQLite backend 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net) * Converted documentation to XML format * Made package installable with asdf-install 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net) * Add for-each-row macro 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net) * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net) * Add support for SBCL, OpenMCL, and SCL * Add *load-truename* to search path for clsql's compiled libraries. 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net) * Rework use of file types in .asd files 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net) * Add .asd definition files for ASDF users 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net) * Restructure directories for Common Lisp Controller v3 compatibility 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net) * Also change case of logical host in loader files * Rework handling of logical pathnames 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net) * Change case of logical host 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net) * clsql-base.system: Added base package that can be used without high-level SQL commands. Used for adding support for UncommonSQL. * *.system: Reworked logical pathnames to be more consistent with Common Lisp Controller. * debian/*: Completed initial Debian support 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com) * sql/classes.cl: * sql/transactions.cl: Added transaction support. Functions/macros added: with-transaction, commit-transaction, rollback-transaction, add-transaction-commit-hook, add-transaction-rollback-hook 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com) * sql/sql.cl: * sql/pool.cl: * sql/functional.cl: Added pool support in connect/disconnect and with-database. Removed with-db-from-pool as with-database can now works with the connections pool 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com) * sql/sql.cl: * sql/pool.cl: * sql/classes.cl: * sql/package.cl: Completed connection pool. Added with-db-from-pool macro. 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net) * Multiple files: Added initial support for connection pool * sql/transactions.cl Took transaction code from UncommonSQL and integrated into CLSQL code. See file for disclaimer about why this was added. 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net) * interfaces/postgresql/postgresql-sql.cl: Fix keyword typo in database-read-large-object * interfaces/mysql/mysql-loader.cl Fix loading on Win32 * test-suite/tester-clsql.cl Fix type coercion of double-float * doc/* Added debian docbook catalog, made it the default 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com) * interface/postgresql/postgresql-api.cl: * interface/postgresql/postgresql-sql.cl: * sql/sql.cl: * sql/db-interface.cl: Added large objects support for postgresql. 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net) * src/postgresql-socket/postgresql-socket-api.cl: Fixed find-foreign-function call, eliminated crypt warning * Makefiles: Multiple improvements * sql/usql.cl: Moved functionality from low-level interfaces to this file via generic functions * test-suite/tester.cl: Added test with acl-compat-tester, moved others to old-tests directory. 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net) * src/usql.cl: Reinstated commented out sections * interfaces/postgresql/postgresql-loader.cl: * interfaces/mysql/mysql-loader.cl: Updated find-forieign-library support. * interfaces/postgresql-socket/postgresql-socket-package.cl: Fixed require form for Lispworks (Thanks Marc Battyani!) * interfaces/postgresql-socket/postgresql-socket-api.cl: Fixed eval of def-function for crypt library. 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * Added interface to support USQL high-level rouines 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * Separated db-interface and conditions from sql/sql.cl * Improved foreign library loading testing * interfaces/postgresql/postgresql-api.cl Added PQisBusy function * interfaces/clsql-uffi/clsql-uffi.cl Fixed sign error for 64-bit processing 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * interfaces/postgresql-socket/postgresql-socket-api.cl: Fixes to read-double-from-socket. Added 64-bit integer support. * test-suite/xptest-clsql.cl Added testint for 64-bit integers * Additons to installation docs 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * interfaces/postgresql-socket/postgresql-socket-api.cl: Implemented direct socket reading for field type :double * Added usage information for :types to documentation * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi, atol, atof calls * interfaces/clsql-uffi: Created new directory. Split common interface routines that use UFFI into this package. Required especially to support direct reading of 64-bit integers into bignums and bypassing temporary strings. * test-clsql.cl: Updated to test postgresql-socket's read-double-from-socket function. * test-suite/xptest-clsql.cl Started work on test suite 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields, mysql-fetch-field-direct Got :auto types working * interfaces/postgresql/postgresql-api.cl * interfaces/postgresql-socket/postgresql-socket-api.cl Added pgsql-field-types enum. Got :auto types working. * multiple-files Renamed :field-types to :types. 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * Added field-types parameter to query, database-query, database-query-result-set, map-query. Haven't added code to utilize field types, yet. * Changed postgresql-socket result set from cons to a structure * Updated test-clsql.cl to use automated testing with a config file * Changed return types of field accessors from cstring to (* :unsigned-char). This prepares for being able to use specified type conversions when taking field data into lisp. * Added field-type processing for most interfaces. Not done yet. 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net) * doc/ref.sgml: Updated MAP-QUERY example to use *read-default-float-format* (John Foderaro) * Extensive work to foreign library loaders and .system files to check for successful loading of foreign libraries. * Modified test-clsql.cl to allow more modularity and automated testing in future release. * mysql/mysql-sql.lisp: Added field types 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net) * mysql/mysql-sql.lisp: - Added support for Allegro CL and Lispworks using UFFI layer - Changed database-connect to use mysql-real-connect. This way, can avoid using double (unwind-protect) - Changed database-connect to have MySQL library allocate space for MYSQL structure. This will make the code more robust in the event that MySQL library changes the size of the mysql-mysql structure.