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