r9336: 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / ChangeLog
index 31920630427b4eed1eac8eac8e89c4648986fd65..5e40734a91aecf3d6cf0a66bddda80ec2a76bb51 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+       * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp
+       * clsql-classic: Remove system and subdirectory
+       * clsql-base: Remove system and subdirectory and
+       fold into clsql system
+       
+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: 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/objects.lisp: Use specified type when invocating 
-       database-get-type-specifier. Return class for def-view-class.
+       * 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
-       * base/loop.lisp: Add placeholder (and warning) for object iteration
-       * TODO: Need results for result-types for map-query and do-query
+       * 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