1 23 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
2 * sql/oodml.lisp: Add keyword :transactions to def-view-from-class
3 to allow specifying transactionless table creation
4 * doc/ref-oodml.lisp: Add new keyword to signature of
7 18 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
9 * sql/expressions.lisp: when removing duplicate table identifiers
10 in the FROM clause of a query, check both table name and alias
12 * sql/fdml.lisp: remove DESCRIBE-TABLE.
13 * sql/db-interface.lisp: remove generics DESCRIBE-TABLE and
14 DATABASE-DESCRIBE-TABLE.
15 * sql/package.lisp: remove DESCRIBE-TABLE, DATABASE-DESCRIBE-TABLE
16 and LIST-TABLE-INDEXES.
17 * sql/generic-postgresql.lisp: add reader conditional #+nil for
18 DATABASE-DESCRIBE-TABLE and comment about its uses for
19 re-implementing LIST-ATTRIBUTE-TYPES with a single SQL query
20 returning type info for all attributes.
21 Fix DATABASE-SEQUENCE-LAST.
22 * sql/fddl.lisp: remove LIST-TABLE-INDEXES and redefine
23 LIST-INDEXES with additional keyword parameter :ON.
24 * tests/test-fddl.lisp: replace LIST-TABLE-INDEXES in :fddl/index/3
25 with LIST-INDEXES (with :ON parameter).
26 * doc/global-index.xml: remove DESCRIBE-TABLE and LIST-TABLE-INDEXES.
27 * doc/ref-connect.xml: minor tidying.
28 * doc/ref-fddl.xml: document the FDDL.
29 * doc/TODO: removed items done. Moved note about transaction handling
31 * TODO: move note about transaction handling to doc/TODO. Added
32 optimization note about LIST-ATTRIBUTE-TYPES and LIST-INDEXES.
34 13 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
36 * sql/syntax.lisp: updated docstrings.
37 * sql/package.lisp: exported DATABASE-NAME-FROM-SPEC from CLSQL
39 * sql/database.lisp: add docstrings for CREATE-DATABASE,
40 DESTROY-DATABASE, TRUNCATE-DATABASE and LIST-DATABASES. Replace
41 CLSQL-GENERIC-ERROR signalled in RECONNECT with SQL-CONNECTION-ERROR.
42 * doc/ref-syntax.xml, doc/global-index.xml: minor tidying.
43 * doc/ref-connect.xml: document connection/initialisation.
44 * doc/ref-fdml.xml: move TRUNCATE-DATABASE reference entry here.
45 * doc/TODO: remove items done.
46 * Makefile: add db-oracle to to SUBDIRS.
48 13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
49 * sql/oodml.lisp: Add new serialization functions:
50 WRITE-INSTANCE-TO-STREAM and READ-INSTANCE-FROM-STREAM
51 * sql/expressions.lisp: Avoid duplicate FROM names when selecting
52 from a table that has more than one primary index.
53 * sql/conditions.lisp: Fix printing of closed-database error
55 13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
57 * sql/conditions.lisp: Set initial slot value for message in SQL-WARNING
58 * sql/transactions.lisp: Correctly set slots of SQL-WARNING
60 12 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
61 * sql/package.lisp: export DATABASE-TYPE from CLSQL and subclasses
62 of SQL-EXPRESSION from CLSQL-SYS.
63 * sql/syntax.lisp: make error signalled in SQL-OPERATION an
64 SQL-USER-ERROR. Make SQL-OPERATOR return just one value.
65 * doc/Makefile: added Mandrake linux.
66 * doc/catalog-redhat.xml, doc/catalog-mandrake.xml: new files.
67 * doc/appendix.xml: fixed little typo (adsf).
68 * doc/glossary.xml: removed closed-database and note about
69 sql-expression, added some entries.
70 * doc/ref-syntax.xml: documented the symbolic SQL syntax.
72 10 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
74 * db-mysql/mysql-loader.lisp: Remove load of unnecessary zlib library
75 * multiple: Add generalized-boolean type as requested by
77 * TODO: Added need for test of generalized-boolean
79 9 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
80 * Version 2.11.7 released
81 * uffi/clsql-uffi-loader.lisp: Apply patch from Edi Weitz
82 for loading with clc-register-user-package. Remove personal
83 directory from path lisp.
84 * db-mysql/mysql-loader.lisp: Similar changes
86 8 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
87 * Version 2.11.6 released
88 * sql/oodml.lisp: Commit patch from Edi Weitz
89 to fix symbol writing/reading
90 * TODO: Add need for symbol slot test
92 7 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
93 * sql/package.lisp: remove duplicate export of
94 *CACHE-TABLE-QUERIES-DEFAULT*.
95 * doc/ref-*.xml, doc/global-index.xml: new files documenting
96 the CommonSQL compatible api.
97 * tests/test-fdml.lisp: modified the test :fdml/transaction/3 to
98 reflect changes in return values of WITH-TRANSACTION.
100 04 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
101 * tests/README: Fix filename [reported by Bill Clementson]
102 * sql/transactions.lisp: Apply return value patch from
103 Edi Weitz for WITH-TRANSACTION
104 * tests/README: Remove ptester package requirement (as noted
107 03 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
108 * Version 2.11.5 released
109 * examples/clsql-tutorial.lisp: Remove obsolete :nulls-ok attribute,
110 Select connection-spec based on connection type. Bugs reported by
112 * uffi/uffi.dll, uffi/uffi.lib: Recompile with Visual Studio 2003
113 * db-mysql/mysql-loader.lisp: Update check for zlibwapi library
114 name on Windows, add \bin\ directory to search path
116 31 May 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
117 * db-odbc/odbc-sql.lisp: DB-TYPE replaced with DATABASE-TYPE in
119 * sql/operations.lisp: substr now generates SUBSTR for use on
120 Oracle; added a new operator SUBSTRING for use elsewhere. minus
121 now generates MINUS for use on Oracle. Nvl signals an error if
122 not called with exactly 2 arguments. Add concat function for use
123 instead of the || operator on MySQL and Oracle.
124 * sql/syntax.lisp: changed internal symbol for the || operator to
126 * sql/expressions.lisp: removed redundant and unused functions
127 GENERATE-SQL (cf. SQL-OUTPUT) and DATABASE-CONSTRAINT-DESCRIPTION
128 (cf. MAKE-CONSTRAINTS-DESCRIPTION).
129 * sql/generics.lisp: removed generic function for
130 DATABASE-CONSTRAINT-DESCRIPTION (see above).
131 * tests/test-syntax.lisp: modified/added tests according to changes
132 in sql/operations.lisp.
133 * tests/test-fdml.lisp: changed SUBSTR to SUBSTRING in test
135 * sql/package.lisp: added the operators SQL-SUBSTRING, SQL-CONCAT-OP
136 and SQL-USERENV to the shared exports list. Removed
137 ROLLBACK-TRANSACTION, COMMIT-TRANSACTION, DATABASE-START-TRANSACTION,
138 DATABASE-ABORT-TRANSACTION, DATABASE-COMMIT-TRANSACTION,
139 TRANSACTION-LEVEL, TRANSACTION, RECORD-SQL-COMMAND and
140 RECORD-SQL-RESULT from shared exports list.
142 30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
143 * db-postgresql/postgresl-sql.lisp: Avoid computing
144 result-types lisp when nil result-types. Return only
145 one value when field-types nil.
146 * db-mysql/mysql-sql.lisp: Simple queries now
147 working with prepared statements.
149 30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
150 * Version 2.11.4: MySQL 4.1 now passes all tests
151 * sql/package.lisp: Add API for prepared statments.
152 * sql/fdml.lisp: Change implicit flatp processing
153 for string map-query for greater CommonSQL conformance.
154 Add high-high API for prepared statements.
155 * tests/test-basic.lisp: Add test for map-query and
157 * sql/transactions.lisp: Change name/semantics of
158 autocommit to set-autocommit.
159 * sql/generic-postgresql.lisp: Add support for
161 * tests/test-internal.lisp: New file
162 * sql/odbc-api.lisp: Update to using ODBC V3 protocol
163 * clsql-mysql.asd, clsql-uffi.asd: Remove check and Common Lisp
164 Controller invocation.
165 * db-mysql/mysql-api.lisp: Add support for MySQL 4.1 field structure
166 * sql/expressions.lisp: Avoid emitting double parenthesis when a
167 function contains a subselect.
169 27 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
171 * sql/ooddl.lisp: Commit patch from Edi Weitz fixing return
172 type (setf slot-value-using-class)
173 * TODO: add not that need a test case for the above fix
174 * db-sqlite: Remove clisp support since clisp can not run CLSQL
176 * db-oracle/oracle-sql.lisp: By default, use OCIEnvCreate as
177 introduced in Oracle8. Leave older code selectable by a reader macro
178 for Oracle7 and prior. Avoid use of OCIServerAttach since CLSQL
179 uses OCILogon and does not the more complex session management.
181 26 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
182 * sql/oodml.lisp: Commit universal-time typo patch from Edi Weitz
183 * test/test-init.lisp: Add universal-time slot to person.
184 * test/test-fddl.lisp: Add tests of universal-time slot
185 * test/test-ooddl.lisp: Test universal-time slot in an object
186 * TODO: Remove need for universal-time test
187 * debian/rules, debian/control: Add cl-sql-oracle binary package
188 * doc/appendix.xml: Add Oracle backend information
189 * db-oracle/oracle-objects.lisp: Add database-get-type-specifier for
190 universal-time. Convert BIGINT CLSQL type to CHAR SQL type
191 * db-mysql/mysql-sql.lisp: Fix condition name to sql-connection-error
192 * doc/ref-clsql.xml: Renamed from ref_clsql.xml. Change the documentation
193 for map-query to reflect changed in arguments to be CommonSQL compatible.
194 Updated old clsql conditions to new CommonSQL compatible conditions.
196 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
197 * sql/oodml.lisp: (string n) now produces a CHAR field. Add new VARCHAR
198 type. Added *default-varchar-length* rather than previous hard-coded
199 varchar length. Remove 'simple-string and 'simple-base-string since they
200 are subtypes of 'string.
201 * db-oracle/oracle-sql.lisp: Use *default-varchar-length* rather than
202 local hard-coded value.
203 * sql/metaclasses.lisp: Convert specified type VARCHAR and (VARCHAR n) to Lisp
204 type string. Convert specified-type (CHAR n) to string. Convert specified-type
205 CHAR to lisp type character.
206 * sql/generic-postgresql.lisp: (string n) => (CHAR n)
207 * sql/operations.lisp: Add userenv
208 * doc/TODO: Add AUTOCOMMIT. Remove need for large table and bigint
210 * sql/oracle-sql.lisp: Add 64-bit bigint direct conversion
211 * uffi/clsql-uffi.lisp: Handle signed 64-bit integers
212 * test/test-init.lisp: Add large table with bigint slot
214 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
215 * Version 2.11.1 released: Much simpler Oracle client library loading.
216 Now uses ORACLE_HOME environmental variable as well as tests default
217 path for Oracle Instant Client.
219 25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
220 * Version 2.11.0 released: Full Oracle support. All tests pass
221 * db-oracle/oracle-sql.lisp: Add declaration so that SBCL runs efficiently.
222 * tests/test-init.lisp: capitalize odbc backend name in banner
223 * CONTRIBUTORS: Add note about Marcus' excellent work
224 * sql/oodml.lisp: Removed old stub function
225 * clsql.asd: Use module names in current package rather than keyword package
226 * db-oracle/oracle-sql.lisp: Don't trim trailing spaces. Prevent interrupts
227 in setting sequence position. Make autocommits more efficient.
228 * tests/test-init.lisp: Skip 2 tests on Oracle which have unsupported syntax
229 * sql/oodml.lisp: Get rid of undocumented raw-string type. CommonSQL
230 strings are raw (non-trimmed trailing whitespace). Add database-get-type-specifier
231 and read-sql-value for NUMBER and CHAR.
232 * sql/base-classes.lisp: Add autocommit slot
233 * sql/transaction.lisp: Added autocommit processing, mild cleaning.
234 * doc/intro.xml: Add Oracle
236 24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk)
237 * db-postgresql-socket/postgresql-socket-sql.lisp: replace
238 CLSQL-SIMPLE-WARNING with SQL-WARNING.
239 * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with
241 * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR.
242 * clsql.asd: reworked module structure in package definition and
243 file names to better reflect component functionality.
244 * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to
245 exports list. Removed duplicate and obsolete exports. Exported
246 remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT,
247 SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and
248 according to whether they are specified by CommonSQL or CLSQL
250 * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with
252 * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND
253 here from basic-sql.lisp.
254 * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted).
255 * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted).
256 * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp
258 * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted).
259 * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted).
261 23 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
262 * Version 2.10.22 released
263 * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that
264 has reversed class slots, change the default for ordered-class-slots so that slots
265 are now in the same order an in the def-view-class.
266 * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS
267 * test/test-fddl.lisp: Add two tests for mixed case names
268 * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double)
269 for computed fields, this will require some adjustment to the test suite which
270 in many cases expects integers.
271 * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns
273 22 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
274 * Version 2.10.21 released
275 * sql/sequences.lisp: Move generic sequence functions here from db-sqlite,
276 db-odbc, and db-aodbc.
277 * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE,
278 DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these.
279 * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files
280 * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to
281 sql/generic-odbc.lisp
282 * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp:
283 Move common code to sql/generic-postgresql.lisp
284 * sql/classes.lisp: honor case of string tables when outputting queries
285 * sql/objects.lisp: Add database type to default database-get-type-specifier method
286 * sql/sql.lisp: Add database type to default database-abort-transaction method
287 * db-mysql/mysql-objects.lisp: New file
288 * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp
289 * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME
291 * test/test-fdml.lisp: String table names are now case sensitive, so convert to
292 default db case for FDML/SELECT/25
294 22 May 2004 Kevin Rosenberg
295 * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests
296 * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases
297 and string identifiers with non-default case
298 * sql/table.lisp: Don't convert string table name to a symbol.
299 * sql/classes.lisp: Honor case of string identifiers
300 * sql/sql.lisp: Ensure recyclebin is purged for Oracle in
302 * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of
303 of owner phrases. Obtain server and client versions.
304 * db-oracle/oracle-objects.lisp: Fix type specifiers
305 * tests/test-fddl.lisp: Allow :varchar2 and :number as data types
306 * tests/test-init.lisp: Properly get username from Oracle connection-spec
308 22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
309 * sql/generics.lisp: reworked docstrings. Remove generics for
310 ADD-TO-RELATION and REMOVE-FROM-RELATION.
311 * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS
312 to UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
313 * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS
314 for CommonSQL compatibility. Remove ADD-TO-RELATION and
315 REMOVE-FROM-RELATION.
316 * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to
317 UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
318 * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS.
319 * sql/conditions.lisp: add documentation for conditions. Add
320 SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility.
322 21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
323 * sql/basic-sql.lisp: reworked docstrings.
324 * sql/transactions.lisp: reworked docstrings.
325 * sql/sql.lisp: reworked docstrings.
326 * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE
327 sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility.
328 * sql/database.lisp: reworked docstrings.
329 * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P
330 and FDML extensions and database extensions.
332 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
333 * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword.
334 * db-oracle/make9.sh: add makefile for building with Oracle 9 client
336 * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
337 Oracle versions with the PURGE option required for drop table. This needs
338 to be converted to a generic function and moved to db-oracle/oracle-sql.lisp
340 20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
341 * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE.
342 * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION.
343 * sql/table.lisp: reworked docstrings.
344 * sql/objects.lisp: moved *default-update-objects-max-len* here from
346 * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE,
347 DROP-VIEW and DROP-INDEX and the use of the :transactions and
348 :constraints keyword args to CREATE-TABLE.
349 * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now
350 CommonSQL compatible with respect to column constraints.
352 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
353 * sql/oracle-sql.lisp: Now compiles and runs on SBCL.
354 Requires UFFI 1.5.0 or higher
356 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
358 * sql/conditions.lisp: Fix cerror
360 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
361 * Version 2.10.18 released: New condition hierarchy to be compatible
362 with CommonSQL -- not backward compatible with previous CLSQL.
363 * sql/db-interface.lisp: Add more default methods
364 * sql/objects.lisp: Add explicit table name to order-by parameters
365 in find-all when only one table to avoid selecting a duplicate row.
366 Fix error in FIND-ALL when using :order-by such as (([foo] :asc))
367 as previous logic was adding two fields (foo asc) to SELECT query.
368 Make :result-types :auto be the default for object selections.
369 Properly handle caching key when using multiple order-by with asc/desc
371 * db-oracle/*.lisp: Much improvements, now passes 90% of test suite
373 19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
374 * sql/recording.lisp: reworked docstrings.
375 * sql/syntax.lisp: reworked docstrings.
376 * doc/TODO: added notes about extensions to SQL-RECORDING-P and the
377 SQL syntax state functions being macros.
379 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
380 * sql/package.lisp: Export initialize-database-type and
381 *initialize-database-types* from CLSQL package.
382 * sql/conditions.lisp: Add new CommonSQL compatible conditions,
383 remove old CLSQL conditions.
384 * sql/loop-extensions.lisp: Make errors of type sql-user-error
385 * */*.lisp: Convert to from old to new conditions
387 18 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
388 * sql/table.lisp: Add PURGE to drop command for oracle 10g backend.
389 To handle this difference, will need to add a new database-drop-table
391 * db-oracle/oracle-sql.lisp: Move server-version and
392 major-version-number to database object to allow multiple connections
393 to Oracle servers of different versions.
395 18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
396 * TODO: moved notes about backends to doc/TODO.
397 * doc/TODO: added notes about backends and select extensions.
398 * sql/base-classes.lisp: remove obsolete schema slot in database
401 16 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
402 * db-oracle/oracle-api: Add OCIServerVersion
403 * db-oracle/oracle-sql: Query and store server version on connect
404 * sql/db-interface.lisp: Add new db-type-has-bigint? generic
405 function to handle OCI's lack of bigint support
406 * test/test-basic.lisp: Separate bigint testing
407 * test/test-utils.lisp: Add oracle to specs and list of backends
409 * test/test-fdml.lisp: Added FDML/SELECT/34 to test
410 run-time instantiation of variables in reader macros.
411 * TODO: Remove item already complete. Add note about
414 16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
415 * sql/syntax.lisp: added condition to the reader macro to treat [*]
416 as a column identifier (rather than an operation) for CommonSQL
418 * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION
419 keword args to SELECT, [*] as column identifier, new MAP-QUERY
420 behaviour and the ANY and ALL operators in subqueries.
421 * tests/test-init.lisp: add set-operation and subquery tests to
422 appropriate skip lists.
423 * sql/objects.lisp: remove redundant and non CommonSQL compatible
424 ORDER-BY-DESCENDING keyword argument for SELECT.
425 * sql/classes.lisp: remove redundant and non CommonSQL compatible
426 ORDER-BY-DESCENDING keyword argument for SELECT.
427 * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT
430 15 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
431 * sql/db-interface.lisp: Add new db-type-has-union?
432 since Mysql 3.23 does not support unions.
433 * sql/test-init.lisp: Don't try union tests on database
434 backends which do not support it.
435 * db-oracle/*.lisp: initial port to UFFI
436 * sql/objects.lisp: implement UPDATE-OBJECT-JOINS,
437 implement REFRESH for SELECT.
438 * tests/test-oodml.lisp: Add tests for deferred retrieval,
439 caching, refresh, and update-object-joins
440 * tests/test-init.lisp: Add deferred-employee-address class
442 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
443 * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add
444 COALESCE operator and make NVL a synonym for this. Make ANY, SOME,
445 ALL and EXISTS generate function expressions so they output the
447 * sql/classes.lisp: SELECT now generates appropriate SQL when
448 passed the SET-OPERATION and ALL keyword arguments.
449 * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now
450 accepts ordering constraints as pairs of the form (column direction)
451 where direction may be :ASC or :DESC.
452 * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL.
453 Correct tests for ANY, SOME, ALL and EXISTS.
454 * tests/test-fdml.lisp: added test for COALESCE.
455 * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION
456 using funcall unless QUERY-EXPRESSION returns one column and its
457 FLATP slot is not nil in which case apply is used.
458 * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the
460 * TODO: remove items done.
461 * db-postgresql/postgresql-sql.lisp: no need to reverse results in
462 DATABASE-LIST-ATTRIBUTES.
463 * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse
464 results in DATABASE-LIST-ATTRIBUTES.
466 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
467 * sql/classes.lisp: SELECT now accepts table identifiers as strings
468 for CommonSQL compliance. Add support for qualified sql identifiers
469 with aliased table names.
470 * tests/test-fdml.lisp: added tests for table identifiers as strings
471 in SELECT and for aliased definitions.
472 * tests/test-syntax.lisp: added tests for alias definitions.
474 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
475 * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and
476 field-names set to nil.
477 * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly
478 with null attribute values.
479 * sql/operations.lisp: modify SQL concatenation operator to accept
481 * sql/syntax.lisp: modify sql reader macro function to accept
482 unescaped sql concatenation operator.
483 * tests/test-fdml.lisp: unescape sql concatenation operator.
484 * tests/test-syntax.lisp: unescape sql concatenation operator.
485 * TODO: remove items done. Add notes about SQLITE/MYSQL backends.
486 Note to add test for universal-time. Note about difference from
487 CommonSQL in transaction handling.
489 13 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
490 * tests/test-init.lisp: Add deferred-employee-address
492 * tests/test-oodml.lisp: Add deferred retrieval testgs
494 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
496 * LATEST-TEST-RESULTS: Run on all platforms, add AMD64
497 * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp
498 * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type
499 * *: Fix minor style warnings
500 * clsql-classic: Remove system and subdirectory
501 * clsql-base: Remove system and subdirectory and
502 fold into clsql system
503 * doc/intro.xml: Remove reference to old clsql-base. Add x86_64
504 as supported platform.
506 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
507 * Version 2.10.16: CLSQL now fully supports AllegroCL AMD64
508 * db-odbc/odbc-api.lisp: work around return-type bug [spr28889] in
509 Allegro 7.0beta AMD64
510 * db-odbc/*.lisp: Add a layer of indirection to foreign-type
511 of ODBC longs since this type can vary on 64-bit platforms depending
512 upon the compilation options of unixODBC.
513 * db-mysql/mysql-api.lisp: Fix int vs. long slots in foreign
514 structures found by testing with AllegroCL 7.0b AMD64.
515 * db-*/*-loader.lisp: Load 64-bit libraries on 64-bit platorms
516 * sql/objects.lisp: Simple implementation of UPDATE-OBJECT-JOINS.
517 Initial caching support for SELECT
518 * tests/test-oodml.lisp: Avoid using cache when testing select.
519 * sql/kmr-mop.lisp: Explicitly check slot order and
520 store as a cl:*feature*
521 * sql/recording.lisp: Remove additional types to
522 increase CommonSQL conformance.
523 * tests/test-init.lisp: Change a :column attribute
524 to test symbols as value
525 * sql/relations.lisp: Remove functions since they don't support
526 many to many relationships.
527 * examples/clsql-tutorial.lisp, doc/csql.lisp: Remove use
528 of add-to-relations function and replace with explicit field settings.
529 * base/classes.lisp: Remove obsolute query-stream. Add record-caches slot.
531 9 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
533 * LATEST-TEST-RESULTS: results with current version
534 * sql/kmr-mop.lisp: Make CMUCL reader macros specific for cmu18
535 since cmu19 has opposite order of class slots.
536 * sql/objects.lisp: Fix (setf slot-value-using-class) for Lispworks
537 * tests/test-fdml.lisp: Renumber SELECT tests to avoid overwriting
539 * tests/test-init.lisp: Check test-database-underlying-type for
542 8 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
543 * sql/operations.lisp: complete remaining operations for the sql
544 syntax: SUBSTR, SOME, ORDER-BY, GROUP-BY, NULL, DISTINCT, EXCEPT,
545 UNION, INTERSECT, BETWEEN.
546 * sql/classes.lisp: add new classes: SQL-BETWEEN-EXPRESSION,
547 SQL-QUERY-MODIFIER-EXPRESSION and SQL-SET-EXPRESSION.
548 * tests/test-syntax.lisp: add tests for new operations.
549 * tests/test-fdml.lisp: add tests for queries based on new operations.
550 * tests/test-init.lisp: add select/20 to tests skipped for sqlite and
551 select/20, query/5, query/7 and query/8 to tests skipped by mysql.
552 * TODO: removed entries done.
554 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
555 * tests/benchmarks.lisp: Add immediate vs. deferred
558 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
559 * Version 2.10.13: Now works on openmcl 0.14.2
560 * sql/objects.lisp: Add :retrieval :immediate for
562 * tests/test-init.lisp: Add non-index fields for testing
563 join class employee-addresss
564 * test/test-oodml.lisp: Add tests for retrieval immediate
565 * sql/metaclasses.lisp: Handle differences in direct-slot-definition
566 values which are now listifed by openmcl 14.2.
567 * sql/objects.lisp: more framework for supporing immediate retrieval
569 7 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
570 * docs/intro.xml: Upload location of a README file
571 * sql/metaclass.lisp: Work-around openmcl's CHANGE-CLASS
572 changing the type-specifier. Use a lisp type of (OR NULL FOO)
573 for a specified-type of FOO unless :db-constraints :not-null.
574 No need to specialize finalize-inheritance for openmcl.
575 * tests/test-*.lisp: Rename fields so that joins occur on
576 fields with different names. This ensures that join code is
577 selecting the proper name.
578 * test/test-init.lisp: Add :base-table for employee-address
579 view class for testing.
580 * sql/objects.lisp: Use view-table rather than name of table
581 in a number of places to fix errors noted with using :base-table.
583 6 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
584 * sql/objects.lisp: replace *update-records-on-make-instance* with
585 *db-auto-sync* which also controls both automatic creation of
586 new records on creation of new instance and updating of record
587 fields on setting of instance slots (as suggested by Edi Weitz).
588 * tests/test-init.lisp: replace *update-records-on-make-instance*
590 * sql/package.lisp: replace *update-records-on-make-instance*
592 * TODO: replace *update-records-on-make-instance* with *db-auto-sync*.
593 * sql/objects.lisp: remove redundant rebindings of *db-initializing*
594 and *default-database* in FIND-ALL.
595 * sql/package.lisp: import time functions from CLSQL-BASE.
596 * tests/test-time.lisp: replace CLSQl-BASE package qualifier with CLSQL.
597 * tests/test-fdml.lisp: replace CLSQl-BASE package qualifier with CLSQL.
598 * tests/test-init.lisp: replace CLSQl-BASE package qualifier with CLSQL.
599 * tests/test-ooddl.lisp: replace CLSQl-BASE package qualifier with
602 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
603 * sql/classes.lisp: Add SQL-OBJECT-QUERY type. Have [select 'class]
604 now return a sql-object-query type rather than directly performing a query.
605 This improves CommonSQL conformance.
606 * sql/sql.lisp: Add new QUERY method for SQL-OBJECT-QUERY. Move
607 from basic/basic-sql.lisp the DO-QUERY and MAP-QUERY since they now
608 depend on sql-object-query-type.
609 * sql/loop-extensions.lisp: Move from base package
610 * classic/package.lisp: remove references to map-query and do-query
612 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
613 * TODO: New section on optimizations, especially optimizing JOINs.
614 * sql/objects.lisp: Have :target-slot return of list of lists rather
615 than a list of cons pairs to be conformant with CommonSQL.
616 Make :target-slot much more efficient by using a SQL inner join
617 statement and just requiring one SQL query. Add :retrieval :deferrred
618 to target-slot joins. Add placeholder for update-objects-join.
619 * sql/classes.lisp: Add :inner-join and :on slots to sql-query class
620 and process them for query output-sql.
622 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
624 * base/basic-sql.lisp: Avoid multiple evaluation
625 of query-expression in DO-QUERY
626 * sql/objects.lisp: Make SELECT a normal function.
627 SELECT now accepts type-modified database identifiers, such as
628 [foo :string] which means that the values in column foo are returned
629 as Lisp strings. Add new *update-records-on-make-instance* special
630 variable controlling automatic creation of new instances. Add missing
631 RESULT-TYPES keyword to FIND-ALL. Add :target-slot support.
632 * sql/packages.lisp: Export *update-records-on-make-instance*
633 * test/test-oodml.lisp: Add tests for :target-slot and many-to-many
635 * test/test-fdml.lisp: Add tests for type-modified
636 database identifiers.
637 * test/test-init.lisp: Stop using add-relation since implementing
638 many-to-many joins. Use *update-records-on-make-instance*
639 to automatically store records on instance creation. Add many-to-many
640 employee-address view-class.
642 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
644 * base/loop.lisp: Add object iteration. Use :result-type
645 :auto for result-set. Remove
646 duplicate (and non-correct) code for non-list variables by
647 simply making an atom variable into a list.
648 * sql/package.lisp: Remove unnecessary clsql-sys package
649 and replace it with clsql.
650 * sql/metaclasses.lisp: Properly store specified-type from
651 direct-slot-definition and then store translated type in
652 effective-slot-definition
653 * sql/classes.lisp: Don't output type in sql-output
654 for SQL-IDENT-ATTRIBUTE. This is in preparation for supporting
655 [foo :integer] as fields in SELECT.
656 * sql/query.lisp: Set default for :result-types to :auto in
658 * sql/objects.lisp: Use specified-type when invocating
659 database-get-type-specifier. def-view-class macro now returns
661 * base/basic-sql.lisp: Make :AUTO the default value for
662 :RESULT-TYPES for MAP-QUERY and DO-QUERY.
663 * sql/objects.lisp: Add bigint type
664 * test/tests-basic.lisp: Add tests for :result-types for
665 MAP-QUERY and DO-QUERY
666 * test/test-fdml.lisp: Add test for result-types in LOOP
667 and also using single symbol rather than a list for variables.
668 Add test that default :result-types is auto for FDML QUERY.
669 * test/test-syntax.lisp: Don't expect TYPE in the SQL-OUTPUT
670 of SQL-IDENT-ATTRIBUTE.
671 * test/test-oodml.lisp: Enable OO loop iteration test,
672 modify it so it doesn't depend on boolean where.
674 4 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
676 * sql/objects.lisp: added derived type specifier for universal time.
677 * sql/package.lisp: added #:universal-time to clsql-sys exports.
678 * tests/test-oodml.lisp: added test for translation of boolean slots
679 in SELECT with object queries.
681 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
682 * db-odbc/odbc-api.lisp: Fix changing nil to "NIL"
683 for odbc/postgresql backend.
684 * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that
685 it can handle NIL values from the ODBC driver
686 * tests/benchmarks.lisp: New file with initial
688 * sql/relations.lisp: fix to add subclassing support,
689 minor optimizations [Edi Weitz]
691 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
693 * base/conditions.lisp: Add *backend-warning-behavior*
695 * db-postgresql-socket/postgresql-socket-sql.lisp:
696 Honor value of *backend-warning-behavior*
697 * tests/test-fdml.lisp: Remove test of raw boolean value
698 since different backends handle this differently. Add
699 test for :column attribute.
700 * tests/test-oodml.lisp: Add tests for boolean slot value
701 and for :void-value attribute
702 * tests/test-init.lisp: Use *backend-warning-behavior*
703 to suppress warnings from postgresql about implicitly
704 creating primary key in tables. Add new address table.
706 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
708 * db-odbc/odbc-dbi.lisp: Convert TINYINT to integers when
709 result-types is :auto
710 * sql/objects.lisp: Properly handled writing/reading Boolean
711 values from SQL database when retrieving objects.
712 * test/test-fdml.lisp: Add another test for boolean results
713 * test/utils.lisp: Fix incorrect declaration
715 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
717 * sql/generics.lisp: add generic function for SELECT.
718 * sql/objects.lisp: make SELECT a method specialisation.
719 * sql/classes.lisp: MAKE-QUERY now calls SELECT if the selections
720 referred to are View Classes.
721 * base/basic-sql.lisp: in DO-QUERY and MAP-QUERY, if the
722 query-expression arg evaluates to a list, then we have an object
724 * tests/test-oodml.lisp: add tests for DO-QUERY and MAP-QUERY with
726 * TODO: remove items done and add a todo for SELECT.
727 * sql/objects.lisp: SELECT takes a :field-names arg to pass on to
729 * sql/sql.lisp: add :field-names arg to QUERY.
730 * tests/test-fdml.lisp: minor rework to use :field-names arg to
733 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
734 * sql/objects.lisp: fix bug in FIND-ALL when SELECT called with 2
735 or more View Classes.
736 * sql/objects.lisp: make the :flatp argument to SELECT work with
738 * sql/objects.lisp: make SELECT accept a :result-types argument
739 (defaults to :auto) which is passed on to QUERY.
740 * sql/objects.lisp: SELECT returns field-names as a second value.
741 * tests/test-ooddl.lisp: add flatp arg to SELECT calls as appropriate.
742 * tests/test-fdml.lisp: add flatp/result-types arguments to calls
743 to SELECT and take only first value as appropriate.
744 * tests/test-fdml.lisp: add two new tests for query result coercion
745 and the field-names returned as a second value from SELECT.
746 * tests/test-oodml.lisp: add flatp arg to SELECT calls as appropriate.
748 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
749 * Version 2.10.6-pre1
750 * sql/metaclasses.lisp: Add void-value slot
751 * doc/csql.xml: Update def-view-class documentation
752 * test/test-init.lisp: Change old :db-type to :db-kind.
753 Remove old :nulls-ok attributes.
754 * sql/objects.lisp: Add new universal-time and bigint
755 types. Optimize reading of integers using parse-integer
756 rather than read-from-string.
757 * */*.lisp: Merge clsql-base-sys and clsql-base packages
758 into clsql-base package
759 * classic/sql.lisp: Move large object support into base, leaving
760 classic without any functionality that is provided in the clsql
762 * classic/package.lisp: Rename clsql-classic-sys package to
763 its former nickname of clsql-classic
765 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
766 * Version 2.10.5: SQLite backend now passes all result-types tests
767 * clsql-sqlite.asd: Depend on clsql-uffi system
768 * db-sqlite/sqlite-sql.lisp: Use clsql-uffi:convert-raw-field
769 for efficiency and code reuse.
770 * db-sqlite/sqlite-api-uffi.lisp: Change (* :char) to (* :unsigned-char)
771 for better cross-implementation compatibility.
773 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
775 * sql/tables.lisp: Fix typo in CACHE-TABLE-QUERIES
777 * db-postgresql/postgresql-sql.lisp: Fix foreign-string vs. cstring
778 bug on SBCL in result-field-names function as reported by Marcus Pearce
779 * db-sqlite/sqlite-sql.lisp: Fix in database-store-next-row
780 manifest in SBCL testing
782 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
784 * sql/database.lisp: Conform more to CommonSQL output
785 for STATUS command [Marcus Pearce]
786 * sql/sqlite-sql.lisp: Rework to use result-types
787 * sql/sqlite-api-clisp.lisp: Add compatibility layer
788 with sqlite-api-uffi.lisp so that sqlite-sql.lisp can
789 be cleaned up of most clisp reader conditionals
790 * sql/test-init.lisp: Now run field type tests on sqlite
793 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
795 * base/basic-sql.lisp: Set default value of :result-types
796 to :auto for more CommonSQL conformance.
797 * test/test-fdml.lisp: Add tests for numeric value of fields
800 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
801 * Version 2.10.1: New API function: CACHE-TABLE-QUERIES.
802 * base/basic-sql.lisp, db-*/*-sql.lisp: More CommonSQL conformance.
803 Return field names as second value for QUERY. This can be overridden
804 for efficiency with the new keyword :FIELD-NAMES set to NIL
805 in the QUERY invocation.
806 * test/test-fdml.lisp: Add tests for new field-name feature
807 * sql/metaclass.lisp: Remove old Lispworks cruft
808 and replace it with invocation of new code in kmr-mop.lisp
809 which actually works with Lispworks 4.2
810 * doc/ref_clsql.xml: Document new :FIELD-NAMES keyword to
812 * base/db-interface.lisp: Document the multiple values
813 returned by DATABASE-ATTRIBUTE-TYPE so matches the
814 undocumented CommonSQL behavior.
815 * sql/table.lisp: Add *CACHE-TABLE-QUERIES-DEFAULT* and
816 *DEFAULT-UPDATE-OBJECTS-MAX-LEN* variables and export them.
817 LIST-ATTRIBUTE-TYPES now conforms to CommonSQL spec.
818 Implement CACHE-TABLE-QUERIES.
819 * db-odbc/odbc-sql.lisp: Fix attribute-type function
820 * test/test-fddl.lisp: Add tests for attribute type
821 * db-mysql/mysql-sql.lisp: Mild optimization in accessing
823 * base/classes.lisp: Add attribute-cache slot to database clas
824 * base/initialize.lisp: initialize-database-type now automatically
825 loads database-type backend as needed.
826 * base/test-init.lisp: Utilize new initialize-database-type functionality.
827 * TODO: remove items done
829 30 Apr 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
831 * sql/objects.lisp: remove create/drop-sequence-from-class.
832 * sql/objects.lisp: add INSTANCE-REFRESHED generic function.
833 * sql/objects.lisp: improved CommonSQL compatibility for
834 UPDATE-RECORD-FROM-SLOT, UPDATE-RECORD-FROM-SLOTS,
835 UPDATE-RECORDS-FROM-INSTANCE and DELETE-INSTANCE-RECORDS.
836 * sql/generics.lisp: move generics from objects.lisp to here.
838 29 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
840 * db-mysql/mysql-client-info.lisp: Add client version 4.1
842 * sql/sql.lisp: Make *default-database* the default for
845 28 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
847 * db-mysql/mysql-sql.lisp: Fix bug in transaction capability
849 * sql/objects.lisp: Commit patch from Slawek Zak to allow specifying
850 :metaclass in DEF-VIEW-CLASS invocation. This allows defining classes
851 on a metaclass specialized from standard-db-class.
854 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
855 * Version 2.9.4: Multiple changes to support Allegro's "modern"
856 lisp which uses a lowercase reader and has case-sensitive symbols
857 * sql/classes.lisp: Fix make-load-form bug for sql-ident-table
858 exposed by case-sensitive mlisp.
860 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
861 * Version 2.9.3: All tests now pass on all platforms!
862 * LATEST-TEST-RESULTS: New file with summary of test results
863 * sql/generics.lisp: New file for generic function definitions.
864 * test/test-init.lisp: Display names of skipped tests.
865 Use unwind-protect to ensure disconnect
866 * sql/objects.lisp: Change database-type to database-underlying-type
867 so that actual database engine is properly identified
868 * db-odbc/odbc-api.lisp: Have default *time-conversion-function*
869 return an ISO timestring for compatibility with other drivers.
870 Workaround bug in MyODBC for LIST-TABLE-INDEXES
871 * test/test-fdml.lisp: Accomodate that odbc-postgresql driver
872 returns floating-point values for floor and truncate operations
873 * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS
874 * tests/test-basic.lisp: Port to regression tester
875 * test/test-init.lisp: Output to *report-stream*
876 * docs/appendix.xml: Document ODBC and SQLite backends.
877 * sql/classes.lisp: Make output-sql require a database parameter.
878 This allows SQL generation to have the proper case to support
879 the differences in case handling between CommonSQL API,
880 Postgresql, MySQL, Oracle.
882 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
883 * Version 2.9.2: Improvments in database capability introspection
884 and querying. Support transactions in MySQL where available.
885 All tests now pass on MySQL and SQLite in addition to postgresql
886 and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2.
887 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support
888 DATABASE-LIST-SEQUENCES.
889 * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading
890 * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB,
891 HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE
892 * tests/*.lisp: Check database capabilities and remove tests which
893 the database backend does not support
894 * sql/table.lisp: Add :TRANSACTIONS keyword to create table which
895 controls whether InnoDB tables will be created when supported on
896 the underlying MySQL server.
898 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
899 * Version 2.9.0: New API function: LIST-TABLE-INDEXES,
900 supported by all database backends (except AODBC since
901 AODBC doesn't support index querying)
902 * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES
903 * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function
904 to support index queries
905 * db-aodbc/aodbc-sql.lisp: Filter driver manager
906 "information_schema" tables from LIST-TABLES
907 * tests/test-basic.lisp: Remove table after testing
908 * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES
909 * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE
910 which gets the underlying type of database -- required
911 when dealing with ODBC databases and want to query
912 database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES?
913 as first database-backend specific feature. Is T on
914 :mysql, NIL on other backends. Change DROP-TABLE to
917 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
918 * Version 2.8.2: Build changes for FreeBSD [Slawek Zak]
920 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
922 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function
923 * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function
925 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
926 * Version 2.8.0: New API function: LIST-DATABASES
927 * base/utils.lisp: Fix command-output on CMUCL/SBCL
928 * db-*/*-sql.lisp: Add new database-list function
929 * base/database.lisp: Add new LIST-DATABASES command
931 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
933 * db-sqlite/sqlite-sql.lisp: Fix sequence functions.
934 * db-sqlite/sqlite-api-uffi.lisp: Print error string
937 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
939 * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind
942 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
944 * base/objects.lisp, base/classes.lisp: Patch
945 for db-kind from Eduardo Munoz
947 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
949 * base/basic-sql.lisp: Fix FLATP in QUERY
951 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
952 * Version 2.7.3: Implement RECONNECT
954 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
955 * Version 2.7.2: Fix ODBC on Lispworks Windows
957 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
958 * Version 2.7.1: Fix for new ODBC backend.
959 clsql-odbc now works on SBCL, CMUCL, OpenMCL
960 in addition to AllegroCL and Lispworks.
962 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
963 * Version 2.7.0: New backend: ODBC. Tests as
964 well as AODBC backend on Allegro,Lispworks.
965 SBCL and CMUCL don't work quite yet. Requires UFFI v1.4.11+
966 * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr
967 to explicitly set ODBC2 support. Add BIGINT support.
968 Add result-types support. Added SQLTables.
969 Fix array type in fetch-all-rows. Make width
970 changable by database or query.
971 * base/utils.lisp: Add process functions
972 * base/package.lisp: Export utils to CLSQL-BASE-SYS
973 * db-aodbc: Implement sequence functions,
974 database-list-tables, database-list-attributes
975 * tests/utils.lisp: Add support for ODBC backend,
976 rework READ-SPECS to use +all-db-types+
977 * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS
980 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
981 * Version 2.6.13. Requires UFFI version 1.4.9
982 * db-odbc/*.lisp: Further porting.
983 Pre-alpha code! But, basic query is now working.
985 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
987 * base/transactions.lisp: Add quote for macro
988 expansion of WITH-TRANSACTIONS [Time Howe]
989 * db-sqlite/sqlite-sql.lisp: Support memory database
990 in database-probe [Ng Pheng Siong]
991 * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC.
992 The DBI layer is not finished.
994 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
996 * sql/objects.lisp: add :root-class functionality for
997 list-classes and add duration type support [Marcus Pearce]
998 * db-odbc: Add mid-level [DBI] layer
1000 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1002 * db-aodbc: Add methods for generic functions, some are
1003 not yet implemented.
1004 * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC
1007 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1009 * base/package.lisp: Add missing symbols [Marcus Pearce]
1011 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1013 * test/test-fddl.lisp: Cleanup fix [Marcus Pearce]
1014 * utils/time.lisp: Multiple fixes [Marcus Pearce]
1015 * sql/sql.lisp: Fix for truncate-database [Marcus Pearce]
1017 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1019 * sql/*.lisp: Remove schema versioning cruft
1021 * Makefile: Add classic subdirectory
1023 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1025 * sql/sql.lisp: Fix TRUNCATE command, bug reported
1027 * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle
1028 specific and easy for an application to directly support.
1029 Idea from Marcus Pearce.
1030 * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level
1031 API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce].
1032 Keep low-level interface for future optimization
1033 supporting LIST-ATTRIBUTE-TYPES command.
1034 * Makefile: Add to db-sqlite and test directories.
1035 Include them in top-level Makefile
1037 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1039 * sql/relations.lisp: Add missing file
1040 * utils/time.lisp: Fixes/extensions [Marcus Pearce]
1041 * test/test-time.lips: New file [Marcus Pearce]
1043 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1045 * test/test-init.lisp: Properly handle object
1046 creation. Close database after use.
1047 * sql/sql.lisp: Make DESCRIBE-TABLE a generic
1048 function so can have methods specialized on
1049 table being a string or an sql-table object.
1050 * base/pool.lisp: Really fix CMUCL locking
1052 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1054 * test/test-init.lisp: Signal correctly
1055 if any errors occurred in any test suite
1056 * base/loop-extensions.lisp: Fix error
1057 introduced for Lispworks
1058 * base/pool.lisp: Fix locking for CMUCL
1059 * base/objects.lisp: Remove schema-version cruft
1061 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1062 * Version 2.6.2: New CLSQL API functions:
1063 DESCRIBE-TABLE AND TRUNCATE-DATABASE
1064 Currently, this are only supported on :postgresql
1065 and :postgresql-socket
1066 * base/database.lisp: automatically load ASDF system
1067 in CONNECT if not already loaded
1068 * base/tests.lisp: disconnect database after testing
1069 * base/*.lisp: Remove CLOSED-DATABASE type in favor
1070 of storing open/closed status in slot of database
1071 * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL
1072 * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT,
1073 DATABASE-DESCRIBE-TABLE
1074 * db-sqlite/sqlite-sql.lisp: Add missing slots in database
1075 * base/conditions: Remove duplicate condition
1076 * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE
1077 * base/recording.lisp: Add new :QUERY type for recording
1079 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1080 * Version 2.6.1: documentation fixes, merged
1081 classic-tests into tests
1083 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1084 * Version 2.6.0 released: New API functions
1085 CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE
1086 * doc/ref_clsql.xml: Document new functions
1087 * base/database.lisp: New API functions
1088 * base/conditions.lisp: Added CLSQL-ACCESS-ERROR
1089 * base/utils.lisp: Fix use of position-char.
1090 Add COMMAND-OUTPUT used by backends for running
1091 external programs. Fix parsing of SQL*NET-compatible
1093 * base/loop-extension.lisp: Simplify package use
1094 for Lispworks and Allegro
1095 * db-*/*-sql.lisp: Added DATABASE-CREATE,
1096 DATABASE-DESTORY, PROBE-DATABASE methods
1097 * tests/test-init.lisp, clasic-tests/tests.lisp:
1098 Use destroy-database and create-database to ensure
1099 testing with empty database
1100 * tests/test-connection.lisp: Add tests for
1101 parsing of string connection-specs
1102 * examples/run-tests.sh: New file for running
1103 test suite on all installed CL implementations
1104 * examples/clsql-tutorial.lisp: moved from
1106 * examples/dot.clsql-tests.config: New file
1107 giving an example test configuration
1108 * test/README: Add notes about rtest/ptester
1109 downloads and link to sample test configuration file.
1111 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1112 * Version 2.5.1 released:
1113 * tests/*.lisp: Rework so tests are run
1114 on multiple backends automatically based
1115 on the contents of ~/.clsql-tests.config.
1116 Reuse helper functions from classic-tests.
1117 * base/database.lisp: Support connection-spec
1118 as string for CONNECT
1119 * classic-tests/tests.lisp: Automatically
1120 load database backends as needed.
1122 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1123 * Version 2.5.0 released:
1124 All tests for CLSQL and CLSQL-CLASSIC pass
1126 * base/loop-extension.lisp: Add Lispworks
1127 loop-extension. Improve type specifying on
1130 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1131 * Version 2.4.2 released:
1132 loop extension now supported on Allegro, all
1133 CLSQL-TESTS pass on Allegro.
1134 * sql/metaclasses.lisp: Some optimization
1135 of compute-slots, be selective when
1136 ordered-class-slots needs to be called
1137 instead of class-slots
1138 * TODO: add URL with documentation on
1139 extending Lispworks LOOP form
1141 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1142 * Version 2.4.1 released: CLSQL-TESt suite passes
1143 all tests for postgresql and CMUCL, SBCL, OpenMCL.
1144 Allegro and Lispworks pass all tests except for
1145 FDML/LOOP/1 since the loop extension have not yet
1146 been ported to those implementions.
1147 * sql/metaclasses.lisp: Added new slot to standard-db-class
1148 to hold user-specified type. OpenMCL adjustments to compensate
1149 for its type-predicate function. Since AllegroCL, Lispworks,
1150 and OpenMCL have different slot orders, added compute-slots
1151 and ordered-class-slots functions so their slot order matches
1154 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1155 * Version 2.4.0 released: All tests for clsql-classic now finish
1156 correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for
1157 mysql, postgresql, postgresql-sockets, and sqlite backends.
1158 * db-mysql/mysql-sql.lisp: Fix array dereferencing
1159 * classic-tests/tests.lisp: Fix package name of
1160 number-to-sql-string.
1161 * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
1162 * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes,
1163 now passes tests on all support UFFI platforms.
1164 * db-postgresql-socket/postgresql-socket-api.list: Ported to
1166 * multiple: Finish renaming of :types keyword to :result-types for
1167 greater CommonSQL compatibility, including documentation
1168 * sql/basic-cmds.lisp: Remove obsolete file
1170 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1171 * Version 2.3.3 released
1172 * Fixes for sequences on mysql and sqlite [Marcus Pearce]
1173 * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
1174 * Fix for schema table [Marcus Pearce]
1175 * Add loop extension support for SBCL and OpenMCL [Marcus Pearce]
1176 * Fixes to test suite [Marcus Pearce]
1178 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1179 * db-*/*-sql.lisp: Ensure that expr in
1180 database-query-result-set is a string
1181 * Documentation integration
1183 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1184 * With for Marcus Pearce's excellent work, I've merged
1185 his clsql-usql port into clsql. The original clsql
1186 interface is available in the clsql-classic package.
1188 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
1189 * Integrate patch from Marcus Pearce <ek735@soi.city.ac.uk>
1190 adding further support for providing backend for UncommonSQL
1192 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net)
1193 * Integrate patch from Aurelio Bignoli for SQLite backend
1195 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net)
1196 * Converted documentation to XML format
1197 * Made package installable with asdf-install
1199 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net)
1200 * Add for-each-row macro
1202 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net)
1203 * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL
1205 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net)
1206 * Add support for SBCL, OpenMCL, and SCL
1207 * Add *load-truename* to search path for clsql's
1210 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net)
1211 * Rework use of file types in .asd files
1213 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net)
1214 * Add .asd definition files for ASDF users
1216 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1217 * Restructure directories for Common Lisp Controller v3 compatibility
1219 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1220 * Also change case of logical host in loader files
1221 * Rework handling of logical pathnames
1223 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
1224 * Change case of logical host
1226 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net)
1227 * clsql-base.system: Added base package that can be used without
1228 high-level SQL commands. Used for adding support for UncommonSQL.
1229 * *.system: Reworked logical pathnames to be more consistent with
1230 Common Lisp Controller.
1231 * debian/*: Completed initial Debian support
1233 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1235 * sql/transactions.cl:
1236 Added transaction support. Functions/macros added:
1237 with-transaction, commit-transaction, rollback-transaction,
1238 add-transaction-commit-hook, add-transaction-rollback-hook
1240 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1243 * sql/functional.cl:
1244 Added pool support in connect/disconnect and with-database.
1245 Removed with-db-from-pool as with-database can now works with the connections pool
1247 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1252 Completed connection pool.
1253 Added with-db-from-pool macro.
1255 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1257 Added initial support for connection pool
1258 * sql/transactions.cl
1259 Took transaction code from UncommonSQL and integrated
1260 into CLSQL code. See file for disclaimer about why this
1263 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1264 * interfaces/postgresql/postgresql-sql.cl:
1265 Fix keyword typo in database-read-large-object
1266 * interfaces/mysql/mysql-loader.cl
1267 Fix loading on Win32
1268 * test-suite/tester-clsql.cl
1269 Fix type coercion of double-float
1271 Added debian docbook catalog, made it the default
1273 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1274 * interface/postgresql/postgresql-api.cl:
1275 * interface/postgresql/postgresql-sql.cl:
1277 * sql/db-interface.cl:
1278 Added large objects support for postgresql.
1280 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1281 * src/postgresql-socket/postgresql-socket-api.cl:
1282 Fixed find-foreign-function call, eliminated crypt warning
1284 Multiple improvements
1286 Moved functionality from low-level interfaces to this file
1287 via generic functions
1288 * test-suite/tester.cl:
1289 Added test with acl-compat-tester, moved others to old-tests
1292 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1294 Reinstated commented out sections
1295 * interfaces/postgresql/postgresql-loader.cl:
1296 * interfaces/mysql/mysql-loader.cl:
1297 Updated find-forieign-library support.
1298 * interfaces/postgresql-socket/postgresql-socket-package.cl:
1299 Fixed require form for Lispworks (Thanks Marc Battyani!)
1300 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1301 Fixed eval of def-function for crypt library.
1303 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1304 * Added interface to support USQL high-level rouines
1306 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1307 * Separated db-interface and conditions from sql/sql.cl
1308 * Improved foreign library loading testing
1309 * interfaces/postgresql/postgresql-api.cl
1310 Added PQisBusy function
1311 * interfaces/clsql-uffi/clsql-uffi.cl
1312 Fixed sign error for 64-bit processing
1314 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1315 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1316 Fixes to read-double-from-socket. Added 64-bit integer support.
1317 * test-suite/xptest-clsql.cl
1318 Added testint for 64-bit integers
1319 * Additons to installation docs
1321 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1322 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1323 Implemented direct socket reading for field type :double
1324 * Added usage information for :types to documentation
1325 * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi,
1327 * interfaces/clsql-uffi: Created new directory. Split common
1328 interface routines that use UFFI into this package. Required
1329 especially to support direct reading of 64-bit integers into
1330 bignums and bypassing temporary strings.
1331 * test-clsql.cl: Updated to test postgresql-socket's
1332 read-double-from-socket function.
1333 * test-suite/xptest-clsql.cl
1334 Started work on test suite
1336 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1337 * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields,
1338 mysql-fetch-field-direct Got :auto types working
1339 * interfaces/postgresql/postgresql-api.cl
1340 * interfaces/postgresql-socket/postgresql-socket-api.cl
1341 Added pgsql-field-types enum. Got :auto types working.
1343 Renamed :field-types to :types.
1345 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1346 * Added field-types parameter to query, database-query,
1347 database-query-result-set, map-query. Haven't added code
1348 to utilize field types, yet.
1349 * Changed postgresql-socket result set from cons to a structure
1350 * Updated test-clsql.cl to use automated testing with a config
1352 * Changed return types of field accessors from cstring to
1353 (* :unsigned-char). This prepares for being able to use specified
1354 type conversions when taking field data into lisp.
1355 * Added field-type processing for most interfaces. Not done yet.
1357 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1358 * doc/ref.sgml: Updated MAP-QUERY example to use
1359 *read-default-float-format* (John Foderaro)
1360 * Extensive work to foreign library loaders and .system files to
1361 check for successful loading of foreign libraries.
1362 * Modified test-clsql.cl to allow more modularity and
1363 automated testing in future release.
1364 * mysql/mysql-sql.lisp: Added field types
1366 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net)
1367 * mysql/mysql-sql.lisp:
1368 - Added support for Allegro CL and Lispworks using UFFI layer
1369 - Changed database-connect to use mysql-real-connect. This way,
1370 can avoid using double (unwind-protect)
1371 - Changed database-connect to have MySQL library allocate space
1372 for MYSQL structure. This will make the code more robust in
1373 the event that MySQL library changes the size of the mysql-mysql