X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=ChangeLog;h=1965c5b7e15014badfc6c0d7900638d2d1f8c0cf;hp=0f99960751920ec87a196c2ff68d1b620fe6d0c7;hb=e622ee6f4bf2b9fe81af59d566e651c983a4833b;hpb=9698f9b6d0f6439b7547d198bb9db95f61b20c5d diff --git a/ChangeLog b/ChangeLog index 0f99960..1965c5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,448 @@ +24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk) + * db-postgresql-socket/postgresql-socket-sql.lisp: replace + CLSQL-SIMPLE-WARNING with SQL-WARNING. + * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with + SQL-WARNING. + * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR. + * clsql.asd: reworked module structure in package definition and + file names to better reflect component functionality. + * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to + exports list. Removed duplicate and obsolete exports. Exported + remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT, + SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and + according to whether they are specified by CommonSQL or CLSQL + extensions. + * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with + SQL-WARNING. + * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND + here from basic-sql.lisp. + * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted). + * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted). + * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp + (both deleted). + * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted). + * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted). + +23 May 2004 Kevin Rosenberg + * Version 2.10.22 released + * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that + has reversed class slots, change the default for ordered-class-slots so that slots + are now in the same order an in the def-view-class. + * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS + * test/test-fddl.lisp: Add two tests for mixed case names + * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double) + for computed fields, this will require some adjustment to the test suite which + in many cases expects integers. + * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns + +22 May 2004 Kevin Rosenberg + * Version 2.10.21 released + * sql/sequences.lisp: Move generic sequence functions here from db-sqlite, + db-odbc, and db-aodbc. + * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE, + DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these. + * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files + * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to + sql/generic-odbc.lisp + * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp: + Move common code to sql/generic-postgresql.lisp + * sql/classes.lisp: honor case of string tables when outputting queries + * sql/objects.lisp: Add database type to default database-get-type-specifier method + * sql/sql.lisp: Add database type to default database-abort-transaction method + * db-mysql/mysql-objects.lisp: New file + * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp + * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME + from environment + * test/test-fdml.lisp: String table names are now case sensitive, so convert to + default db case for FDML/SELECT/25 + +22 May 2004 Kevin Rosenberg + * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests + * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases + and string identifiers with non-default case + * sql/table.lisp: Don't convert string table name to a symbol. + * sql/classes.lisp: Honor case of string identifiers + * sql/sql.lisp: Ensure recyclebin is purged for Oracle in + TRUNCATE-DATABASE + * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of + of owner phrases. Obtain server and client versions. + * db-oracle/oracle-objects.lisp: Fix type specifiers + * tests/test-fddl.lisp: Allow :varchar2 and :number as data types + * tests/test-init.lisp: Properly get username from Oracle connection-spec + +22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/generics.lisp: reworked docstrings. Remove generics for + ADD-TO-RELATION and REMOVE-FROM-RELATION. + * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS + to UPDATE-OBJECTS-JOINS for CommonSQL compatibility. + * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS + for CommonSQL compatibility. Remove ADD-TO-RELATION and + REMOVE-FROM-RELATION. + * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to + UPDATE-OBJECTS-JOINS for CommonSQL compatibility. + * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS. + * sql/conditions.lisp: add documentation for conditions. Add + SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility. + +21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/basic-sql.lisp: reworked docstrings. + * sql/transactions.lisp: reworked docstrings. + * sql/sql.lisp: reworked docstrings. + * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE + sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility. + * sql/database.lisp: reworked docstrings. + * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P + and FDML extensions and database extensions. + +20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword. + * db-oracle/make9.sh: add makefile for building with Oracle 9 client + libraries + * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous + Oracle versions with the PURGE option required for drop table. This needs + to be converted to a generic function and moved to db-oracle/oracle-sql.lisp + +20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE. + * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION. + * sql/table.lisp: reworked docstrings. + * sql/objects.lisp: moved *default-update-objects-max-len* here from + table.lisp. + * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE, + DROP-VIEW and DROP-INDEX and the use of the :transactions and + :constraints keyword args to CREATE-TABLE. + * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now + CommonSQL compatible with respect to column constraints. + +20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * sql/oracle-sql.lisp: Now compiles and runs on SBCL. + Requires UFFI 1.5.0 or higher + +20 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * Version 2.10.19 + * sql/conditions.lisp: Fix cerror + +19 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * Version 2.10.18 released: New condition hierarchy to be compatible + with CommonSQL -- not backward compatible with previous CLSQL. + * sql/db-interface.lisp: Add more default methods + * sql/objects.lisp: Add explicit table name to order-by parameters + in find-all when only one table to avoid selecting a duplicate row. + Fix error in FIND-ALL when using :order-by such as (([foo] :asc)) + as previous logic was adding two fields (foo asc) to SELECT query. + Make :result-types :auto be the default for object selections. + Properly handle caching key when using multiple order-by with asc/desc + directions. + * db-oracle/*.lisp: Much improvements, now passes 90% of test suite + +19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/recording.lisp: reworked docstrings. + * sql/syntax.lisp: reworked docstrings. + * doc/TODO: added notes about extensions to SQL-RECORDING-P and the + SQL syntax state functions being macros. + +19 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * sql/package.lisp: Export initialize-database-type and + *initialize-database-types* from CLSQL package. + * sql/conditions.lisp: Add new CommonSQL compatible conditions, + remove old CLSQL conditions. + * sql/loop-extensions.lisp: Make errors of type sql-user-error + * */*.lisp: Convert to from old to new conditions + +18 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * sql/table.lisp: Add PURGE to drop command for oracle 10g backend. + To handle this difference, will need to add a new database-drop-table + generic function. + * db-oracle/oracle-sql.lisp: Move server-version and + major-version-number to database object to allow multiple connections + to Oracle servers of different versions. + +18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * TODO: moved notes about backends to doc/TODO. + * doc/TODO: added notes about backends and select extensions. + * sql/base-classes.lisp: remove obsolete schema slot in database + class. + +16 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * db-oracle/oracle-api: Add OCIServerVersion + * db-oracle/oracle-sql: Query and store server version on connect + * sql/db-interface.lisp: Add new db-type-has-bigint? generic + function to handle OCI's lack of bigint support + * test/test-basic.lisp: Separate bigint testing + * test/test-utils.lisp: Add oracle to specs and list of backends + * doc/TODO: New file + * test/test-fdml.lisp: Added FDML/SELECT/34 to test + run-time instantiation of variables in reader macros. + * TODO: Remove item already complete. Add note about + condition variances + +16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/syntax.lisp: added condition to the reader macro to treat [*] + as a column identifier (rather than an operation) for CommonSQL + compatibility. + * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION + keword args to SELECT, [*] as column identifier, new MAP-QUERY + behaviour and the ANY and ALL operators in subqueries. + * tests/test-init.lisp: add set-operation and subquery tests to + appropriate skip lists. + * sql/objects.lisp: remove redundant and non CommonSQL compatible + ORDER-BY-DESCENDING keyword argument for SELECT. + * sql/classes.lisp: remove redundant and non CommonSQL compatible + ORDER-BY-DESCENDING keyword argument for SELECT. + * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT + with object queries. + +15 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * sql/db-interface.lisp: Add new db-type-has-union? + since Mysql 3.23 does not support unions. + * sql/test-init.lisp: Don't try union tests on database + backends which do not support it. + * db-oracle/*.lisp: initial port to UFFI + * sql/objects.lisp: implement UPDATE-OBJECT-JOINS, + implement REFRESH for SELECT. + * tests/test-oodml.lisp: Add tests for deferred retrieval, + caching, refresh, and update-object-joins + * tests/test-init.lisp: Add deferred-employee-address class + +15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add + COALESCE operator and make NVL a synonym for this. Make ANY, SOME, + ALL and EXISTS generate function expressions so they output the + correct SQL. + * sql/classes.lisp: SELECT now generates appropriate SQL when + passed the SET-OPERATION and ALL keyword arguments. + * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now + accepts ordering constraints as pairs of the form (column direction) + where direction may be :ASC or :DESC. + * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL. + Correct tests for ANY, SOME, ALL and EXISTS. + * tests/test-fdml.lisp: added test for COALESCE. + * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION + using funcall unless QUERY-EXPRESSION returns one column and its + FLATP slot is not nil in which case apply is used. + * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the + changes. + * TODO: remove items done. + * db-postgresql/postgresql-sql.lisp: no need to reverse results in + DATABASE-LIST-ATTRIBUTES. + * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse + results in DATABASE-LIST-ATTRIBUTES. + +15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/classes.lisp: SELECT now accepts table identifiers as strings + for CommonSQL compliance. Add support for qualified sql identifiers + with aliased table names. + * tests/test-fdml.lisp: added tests for table identifiers as strings + in SELECT and for aliased definitions. + * tests/test-syntax.lisp: added tests for alias definitions. + +15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) + * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and + field-names set to nil. + * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly + with null attribute values. + * sql/operations.lisp: modify SQL concatenation operator to accept + unescaped || symbol. + * sql/syntax.lisp: modify sql reader macro function to accept + unescaped sql concatenation operator. + * tests/test-fdml.lisp: unescape sql concatenation operator. + * tests/test-syntax.lisp: unescape sql concatenation operator. + * TODO: remove items done. Add notes about SQLITE/MYSQL backends. + Note to add test for universal-time. Note about difference from + CommonSQL in transaction handling. + +13 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * tests/test-init.lisp: Add deferred-employee-address + class + * tests/test-oodml.lisp: Add deferred retrieval testgs + +12 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * Version 2.10.17 + * LATEST-TEST-RESULTS: Run on all platforms, add AMD64 + * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp + * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type + * *: Fix minor style warnings + * clsql-classic: Remove system and subdirectory + * clsql-base: Remove system and subdirectory and + fold into clsql system + * doc/intro.xml: Remove reference to old clsql-base. Add x86_64 + as supported platform. + +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: Simple implementation of UPDATE-OBJECT-JOINS. + 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.