1 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
2 * Version 2.9.4: Multiple changes to support Allegro's "modern"
3 lisp which uses a lowercase reader and has case-sensitive symbols
4 * sql/classes.lisp: Fix make-load-form bug for sql-ident-table
5 exposed by case-sensitive mlisp
7 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
8 * Version 2.9.3: All tests now pass on all platforms!
9 * LATEST-TEST-RESULTS: New file with summary of test results
10 * sql/generics.lisp: New file for generic function definitions.
11 * test/test-init.lisp: Display names of skipped tests.
12 Use unwind-protect to ensure disconnect
13 * sql/objects.lisp: Change database-type to database-underlying-type
14 so that actual database engine is properly identified
15 * db-odbc/odbc-api.lisp: Have default *time-conversion-function*
16 return an ISO timestring for compatibility with other drivers.
17 Workaround bug in MyODBC for LIST-TABLE-INDEXES
18 * test/test-fdml.lisp: Accomodate that odbc-postgresql driver
19 returns floating-point values for floor and truncate operations
20 * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS
21 * tests/test-basic.lisp: Port to regression tester
22 * test/test-init.lisp: Output to *report-stream*
23 * docs/appendix.xml: Document ODBC and SQLite backends.
24 * sql/classes.lisp: Make output-sql require a database parameter.
25 This allows SQL generation to have the proper case to support
26 the differences in case handling between CommonSQL API,
27 Postgresql, MySQL, Oracle.
29 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
30 * Version 2.9.2: Improvments in database capability introspection
31 and querying. Support transactions in MySQL where available.
32 All tests now pass on MySQL and SQLite in addition to postgresql
33 and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2.
34 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support
35 DATABASE-LIST-SEQUENCES.
36 * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading
37 * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB,
38 HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE
39 * tests/*.lisp: Check database capabilities and remove tests which
40 the database backend does not support
41 * sql/table.lisp: Add :TRANSACTIONS keyword to create table which
42 controls whether InnoDB tables will be created when supported on
43 the underlying MySQL server.
45 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
46 * Version 2.9.0: New API function: LIST-TABLE-INDEXES,
47 supported by all database backends (except AODBC since
48 AODBC doesn't support index querying)
49 * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES
50 * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function
51 to support index queries
52 * db-aodbc/aodbc-sql.lisp: Filter driver manager
53 "information_schema" tables from LIST-TABLES
54 * tests/test-basic.lisp: Remove table after testing
55 * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES
56 * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE
57 which gets the underlying type of database -- required
58 when dealing with ODBC databases and want to query
59 database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES?
60 as first database-backend specific feature. Is T on
61 :mysql, NIL on other backends. Change DROP-TABLE to
64 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
65 * Version 2.8.2: Build changes for FreeBSD [Slawek Zak]
67 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
69 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function
70 * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function
72 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
73 * Version 2.8.0: New API function: LIST-DATABASES
74 * base/utils.lisp: Fix command-output on CMUCL/SBCL
75 * db-*/*-sql.lisp: Add new database-list function
76 * base/database.lisp: Add new LIST-DATABASES command
78 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
80 * db-sqlite/sqlite-sql.lisp: Fix sequence functions.
81 * db-sqlite/sqlite-api-uffi.lisp: Print error string
84 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
86 * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind
89 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
91 * base/objects.lisp, base/classes.lisp: Patch
92 for db-kind from Eduardo Munoz
94 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
96 * base/basic-sql.lisp: Fix FLATP in QUERY
98 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
99 * Version 2.7.3: Implement RECONNECT
101 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
102 * Version 2.7.2: Fix ODBC on Lispworks Windows
104 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
105 * Version 2.7.1: Fix for new ODBC backend.
106 clsql-odbc now works on SBCL, CMUCL, OpenMCL
107 in addition to AllegroCL and Lispworks.
109 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
110 * Version 2.7.0: New backend: ODBC. Tests as
111 well as AODBC backend on Allegro,Lispworks.
112 SBCL and CMUCL don't work quite yet. Requires UFFI v1.4.11+
113 * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr
114 to explicitly set ODBC2 support. Add BIGINT support.
115 Add result-types support. Added SQLTables.
116 Fix array type in fetch-all-rows. Make width
117 changable by database or query.
118 * base/utils.lisp: Add process functions
119 * base/package.lisp: Export utils to CLSQL-BASE-SYS
120 * db-aodbc: Implement sequence functions,
121 database-list-tables, database-list-attributes
122 * tests/utils.lisp: Add support for ODBC backend,
123 rework READ-SPECS to use +all-db-types+
124 * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS
127 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
128 * Version 2.6.13. Requires UFFI version 1.4.9
129 * db-odbc/*.lisp: Further porting.
130 Pre-alpha code! But, basic query is now working.
132 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
134 * base/transactions.lisp: Add quote for macro
135 expansion of WITH-TRANSACTIONS [Time Howe]
136 * db-sqlite/sqlite-sql.lisp: Support memory database
137 in database-probe [Ng Pheng Siong]
138 * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC.
139 The DBI layer is not finished.
141 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
143 * sql/objects.lisp: add :root-class functionality for
144 list-classes and add duration type support [Marcus Pearce]
145 * db-odbc: Add mid-level [DBI] layer
147 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
149 * db-aodbc: Add methods for generic functions, some are
151 * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC
154 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
156 * base/package.lisp: Add missing symbols [Marcus Pearce]
158 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
160 * test/test-fddl.lisp: Cleanup fix [Marcus Pearce]
161 * utils/time.lisp: Multiple fixes [Marcus Pearce]
162 * sql/sql.lisp: Fix for truncate-database [Marcus Pearce]
164 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
166 * sql/*.lisp: Remove schema versioning cruft
168 * Makefile: Add classic subdirectory
170 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
172 * sql/sql.lisp: Fix TRUNCATE command, bug reported
174 * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle
175 specific and easy for an application to directly support.
176 Idea from Marcus Pearce.
177 * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level
178 API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce].
179 Keep low-level interface for future optimization
180 supporting LIST-ATTRIBUTE-TYPES command.
181 * Makefile: Add to db-sqlite and test directories.
182 Include them in top-level Makefile
184 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
186 * sql/relations.lisp: Add missing file
187 * utils/time.lisp: Fixes/extensions [Marcus Pearce]
188 * test/test-time.lips: New file [Marcus Pearce]
190 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
192 * test/test-init.lisp: Properly handle object
193 creation. Close database after use.
194 * sql/sql.lisp: Make DESCRIBE-TABLE a generic
195 function so can have methods specialized on
196 table being a string or an sql-table object.
197 * base/pool.lisp: Really fix CMUCL locking
199 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
201 * test/test-init.lisp: Signal correctly
202 if any errors occurred in any test suite
203 * base/loop-extensions.lisp: Fix error
204 introduced for Lispworks
205 * base/pool.lisp: Fix locking for CMUCL
206 * base/objects.lisp: Remove schema-version cruft
208 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
209 * Version 2.6.2: New CLSQL API functions:
210 DESCRIBE-TABLE AND TRUNCATE-DATABASE
211 Currently, this are only supported on :postgresql
212 and :postgresql-socket
213 * base/database.lisp: automatically load ASDF system
214 in CONNECT if not already loaded
215 * base/tests.lisp: disconnect database after testing
216 * base/*.lisp: Remove CLOSED-DATABASE type in favor
217 of storing open/closed status in slot of database
218 * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL
219 * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT,
220 DATABASE-DESCRIBE-TABLE
221 * db-sqlite/sqlite-sql.lisp: Add missing slots in database
222 * base/conditions: Remove duplicate condition
223 * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE
224 * base/recording.lisp: Add new :QUERY type for recording
226 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
227 * Version 2.6.1: documentation fixes, merged
228 classic-tests into tests
230 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
231 * Version 2.6.0 released: New API functions
232 CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE
233 * doc/ref_clsql.xml: Document new functions
234 * base/database.lisp: New API functions
235 * base/conditions.lisp: Added CLSQL-ACCESS-ERROR
236 * base/utils.lisp: Fix use of position-char.
237 Add COMMAND-OUTPUT used by backends for running
238 external programs. Fix parsing of SQL*NET-compatible
240 * base/loop-extension.lisp: Simplify package use
241 for Lispworks and Allegro
242 * db-*/*-sql.lisp: Added DATABASE-CREATE,
243 DATABASE-DESTORY, PROBE-DATABASE methods
244 * tests/test-init.lisp, clasic-tests/tests.lisp:
245 Use destroy-database and create-database to ensure
246 testing with empty database
247 * tests/test-connection.lisp: Add tests for
248 parsing of string connection-specs
249 * examples/run-tests.sh: New file for running
250 test suite on all installed CL implementations
251 * examples/clsql-tutorial.lisp: moved from
253 * examples/dot.clsql-tests.config: New file
254 giving an example test configuration
255 * test/README: Add notes about rtest/ptester
256 downloads and link to sample test configuration file.
258 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
259 * Version 2.5.1 released:
260 * tests/*.lisp: Rework so tests are run
261 on multiple backends automatically based
262 on the contents of ~/.clsql-tests.config.
263 Reuse helper functions from classic-tests.
264 * base/database.lisp: Support connection-spec
265 as string for CONNECT
266 * classic-tests/tests.lisp: Automatically
267 load database backends as needed.
269 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
270 * Version 2.5.0 released:
271 All tests for CLSQL and CLSQL-CLASSIC pass
273 * base/loop-extension.lisp: Add Lispworks
274 loop-extension. Improve type specifying on
277 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
278 * Version 2.4.2 released:
279 loop extension now supported on Allegro, all
280 CLSQL-TESTS pass on Allegro.
281 * sql/metaclasses.lisp: Some optimization
282 of compute-slots, be selective when
283 ordered-class-slots needs to be called
284 instead of class-slots
285 * TODO: add URL with documentation on
286 extending Lispworks LOOP form
288 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
289 * Version 2.4.1 released: CLSQL-TESt suite passes
290 all tests for postgresql and CMUCL, SBCL, OpenMCL.
291 Allegro and Lispworks pass all tests except for
292 FDML/LOOP/1 since the loop extension have not yet
293 been ported to those implementions.
294 * sql/metaclasses.lisp: Added new slot to standard-db-class
295 to hold user-specified type. OpenMCL adjustments to compensate
296 for its type-predicate function. Since AllegroCL, Lispworks,
297 and OpenMCL have different slot orders, added compute-slots
298 and ordered-class-slots functions so their slot order matches
301 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
302 * Version 2.4.0 released: All tests for clsql-classic now finish
303 correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for
304 mysql, postgresql, postgresql-sockets, and sqlite backends.
305 * db-mysql/mysql-sql.lisp: Fix array dereferencing
306 * classic-tests/tests.lisp: Fix package name of
307 number-to-sql-string.
308 * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
309 * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes,
310 now passes tests on all support UFFI platforms.
311 * db-postgresql-socket/postgresql-socket-api.list: Ported to
313 * multiple: Finish renaming of :types keyword to :result-types for
314 greater CommonSQL compatibility, including documentation
315 * sql/basic-cmds.lisp: Remove obsolete file
317 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
318 * Version 2.3.3 released
319 * Fixes for sequences on mysql and sqlite [Marcus Pearce]
320 * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
321 * Fix for schema table [Marcus Pearce]
322 * Add loop extension support for SBCL and OpenMCL [Marcus Pearce]
323 * Fixes to test suite [Marcus Pearce]
325 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
326 * db-*/*-sql.lisp: Ensure that expr in
327 database-query-result-set is a string
328 * Documentation integration
330 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
331 * With for Marcus Pearce's excellent work, I've merged
332 his clsql-usql port into clsql. The original clsql
333 interface is available in the clsql-classic package.
335 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
336 * Integrate patch from Marcus Pearce <ek735@soi.city.ac.uk>
337 adding further support for providing backend for UncommonSQL
339 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net)
340 * Integrate patch from Aurelio Bignoli for SQLite backend
342 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net)
343 * Converted documentation to XML format
344 * Made package installable with asdf-install
346 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net)
347 * Add for-each-row macro
349 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net)
350 * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL
352 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net)
353 * Add support for SBCL, OpenMCL, and SCL
354 * Add *load-truename* to search path for clsql's
357 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net)
358 * Rework use of file types in .asd files
360 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net)
361 * Add .asd definition files for ASDF users
363 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
364 * Restructure directories for Common Lisp Controller v3 compatibility
366 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
367 * Also change case of logical host in loader files
368 * Rework handling of logical pathnames
370 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
371 * Change case of logical host
373 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net)
374 * clsql-base.system: Added base package that can be used without
375 high-level SQL commands. Used for adding support for UncommonSQL.
376 * *.system: Reworked logical pathnames to be more consistent with
377 Common Lisp Controller.
378 * debian/*: Completed initial Debian support
380 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
382 * sql/transactions.cl:
383 Added transaction support. Functions/macros added:
384 with-transaction, commit-transaction, rollback-transaction,
385 add-transaction-commit-hook, add-transaction-rollback-hook
387 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
391 Added pool support in connect/disconnect and with-database.
392 Removed with-db-from-pool as with-database can now works with the connections pool
394 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
399 Completed connection pool.
400 Added with-db-from-pool macro.
402 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
404 Added initial support for connection pool
405 * sql/transactions.cl
406 Took transaction code from UncommonSQL and integrated
407 into CLSQL code. See file for disclaimer about why this
410 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
411 * interfaces/postgresql/postgresql-sql.cl:
412 Fix keyword typo in database-read-large-object
413 * interfaces/mysql/mysql-loader.cl
415 * test-suite/tester-clsql.cl
416 Fix type coercion of double-float
418 Added debian docbook catalog, made it the default
420 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com)
421 * interface/postgresql/postgresql-api.cl:
422 * interface/postgresql/postgresql-sql.cl:
424 * sql/db-interface.cl:
425 Added large objects support for postgresql.
427 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
428 * src/postgresql-socket/postgresql-socket-api.cl:
429 Fixed find-foreign-function call, eliminated crypt warning
431 Multiple improvements
433 Moved functionality from low-level interfaces to this file
434 via generic functions
435 * test-suite/tester.cl:
436 Added test with acl-compat-tester, moved others to old-tests
439 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
441 Reinstated commented out sections
442 * interfaces/postgresql/postgresql-loader.cl:
443 * interfaces/mysql/mysql-loader.cl:
444 Updated find-forieign-library support.
445 * interfaces/postgresql-socket/postgresql-socket-package.cl:
446 Fixed require form for Lispworks (Thanks Marc Battyani!)
447 * interfaces/postgresql-socket/postgresql-socket-api.cl:
448 Fixed eval of def-function for crypt library.
450 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
451 * Added interface to support USQL high-level rouines
453 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
454 * Separated db-interface and conditions from sql/sql.cl
455 * Improved foreign library loading testing
456 * interfaces/postgresql/postgresql-api.cl
457 Added PQisBusy function
458 * interfaces/clsql-uffi/clsql-uffi.cl
459 Fixed sign error for 64-bit processing
461 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
462 * interfaces/postgresql-socket/postgresql-socket-api.cl:
463 Fixes to read-double-from-socket. Added 64-bit integer support.
464 * test-suite/xptest-clsql.cl
465 Added testint for 64-bit integers
466 * Additons to installation docs
468 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
469 * interfaces/postgresql-socket/postgresql-socket-api.cl:
470 Implemented direct socket reading for field type :double
471 * Added usage information for :types to documentation
472 * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi,
474 * interfaces/clsql-uffi: Created new directory. Split common
475 interface routines that use UFFI into this package. Required
476 especially to support direct reading of 64-bit integers into
477 bignums and bypassing temporary strings.
478 * test-clsql.cl: Updated to test postgresql-socket's
479 read-double-from-socket function.
480 * test-suite/xptest-clsql.cl
481 Started work on test suite
483 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
484 * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields,
485 mysql-fetch-field-direct Got :auto types working
486 * interfaces/postgresql/postgresql-api.cl
487 * interfaces/postgresql-socket/postgresql-socket-api.cl
488 Added pgsql-field-types enum. Got :auto types working.
490 Renamed :field-types to :types.
492 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
493 * Added field-types parameter to query, database-query,
494 database-query-result-set, map-query. Haven't added code
495 to utilize field types, yet.
496 * Changed postgresql-socket result set from cons to a structure
497 * Updated test-clsql.cl to use automated testing with a config
499 * Changed return types of field accessors from cstring to
500 (* :unsigned-char). This prepares for being able to use specified
501 type conversions when taking field data into lisp.
502 * Added field-type processing for most interfaces. Not done yet.
504 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
505 * doc/ref.sgml: Updated MAP-QUERY example to use
506 *read-default-float-format* (John Foderaro)
507 * Extensive work to foreign library loaders and .system files to
508 check for successful loading of foreign libraries.
509 * Modified test-clsql.cl to allow more modularity and
510 automated testing in future release.
511 * mysql/mysql-sql.lisp: Added field types
513 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net)
514 * mysql/mysql-sql.lisp:
515 - Added support for Allegro CL and Lispworks using UFFI layer
516 - Changed database-connect to use mysql-real-connect. This way,
517 can avoid using double (unwind-protect)
518 - Changed database-connect to have MySQL library allocate space
519 for MYSQL structure. This will make the code more robust in
520 the event that MySQL library changes the size of the mysql-mysql