X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=ChangeLog;h=1cdc8b72d4ad3b53753ba8be6e617b072b36f046;hp=04dde1ceb5de8be36b824ae0d5fed4a0e5145d88;hb=e622ee6f4bf2b9fe81af59d566e651c983a4833b;hpb=b3c7fcd23a62240f0f1deb0c4f895cbd981ef5f4 diff --git a/ChangeLog b/ChangeLog index 04dde1c..1965c5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,966 @@ +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 @@ -163,3 +1126,16 @@ 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. + +