+20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * 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
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.
-
+ 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