r9252: Implement new SQL-QUERY-OBJECT class and change behavior of [select 'class]
[clsql.git] / ChangeLog
index 2c8c6c83deae4ac2321f0898d89d7b6c700d6bf9..a9cf64265eebf961d1966f0de6099309bf8d1238 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,134 @@
+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.