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