X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=ChangeLog;h=a9cf64265eebf961d1966f0de6099309bf8d1238;hp=0e0d379c05aad50b1e391ed73b1079d009076841;hb=279b34c9e8e28545c8f2a0959acb01d90138eeda;hpb=cb659acb4345ca90e8202c88a66f617de65df2f9 diff --git a/ChangeLog b/ChangeLog index 0e0d379..a9cf642 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,246 @@ +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