X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=ChangeLog;h=5e40734a91aecf3d6cf0a66bddda80ec2a76bb51;hp=a0cd1f292cbb26b2953a55b41fa75642f705f58f;hb=8a8ee2d7d791b7a3efaed06420802a925d16fca3;hpb=9898f50385419417475b1c07874a16902695cb8b diff --git a/ChangeLog b/ChangeLog index a0cd1f2..5e40734 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,331 @@ +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/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.