r9231: add tests for fdml query, fix loop for single-variable, result-type :auto...
[clsql.git] / ChangeLog
1 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
2         * sql/metaclasses.lisp: Properly store specified-type from
3         direct-slot-definition and then store translated type in
4         effective-slot-definition
5         * sql/objects.lisp: Use specified type when invocating 
6         database-get-type-specifier. Return class for def-view-class.
7         * base/basic-sql.lisp: Make :AUTO the default value for
8         :RESULT-TYPES for MAP-QUERY and DO-QUERY.
9         * sql/objects.lisp: Add bigint type
10         * base/loop.lisp: Add placeholder and error message for object
11         iteration. Use :result-type :auto for result-set. Remove 
12         duplicate (and non-correct) code for non-list variables by
13         simply making an atom variable into a list.
14         * test/tests-basic.lisp: Add tests for :result-types for
15         MAP-QUERY and DO-QUERY
16         * test/test-fdml.lisp: Add test for result-types in LOOP
17         and also using single symbol rather than a list for variables.
18         Add test that default :result-types is auto for FDML QUERY.
19         * sql/query.lisp: Set default for :result-types to :auto in
20         FDML QUERY.
21         
22 4 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
23         * Version 2.10.9
24         * sql/objects.lisp: added derived type specifier for universal time. 
25         * sql/package.lisp: added #:universal-time to clsql-sys exports. 
26         * tests/test-oodml.lisp: added test for translation of boolean slots 
27         in SELECT with object queries. 
28         
29 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
30         * db-odbc/odbc-api.lisp: Fix changing nil to "NIL" 
31         for odbc/postgresql backend.
32         * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that
33         it can handle NIL values from the ODBC driver
34         * tests/benchmarks.lisp: New file with initial
35         benchmark suite
36         * sql/relations.lisp: fix to add subclassing support,
37         minor optimizations [Edi Weitz]
38         
39 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
40         * Version 2.10.8        
41         * base/conditions.lisp: Add *backend-warning-behavior*
42         special variable.
43         * db-postgresql-socket/postgresql-socket-sql.lisp:
44         Honor value of *backend-warning-behavior*
45         * tests/test-fdml.lisp: Remove test of raw boolean value
46         since different backends handle this differently. Add
47         test for :column attribute.
48         * tests/test-oodml.lisp: Add tests for boolean slot value
49         and for :void-value attribute
50         * tests/test-init.lisp: Use *backend-warning-behavior*
51         to suppress warnings from postgresql about implicitly
52         creating primary key in tables. Add new address table.
53         
54 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
55         * Version 2.10.7
56         * db-odbc/odbc-dbi.lisp: Convert TINYINT to integers when
57         result-types is :auto
58         * sql/objects.lisp: Properly handled writing/reading Boolean
59         values from SQL database when retrieving objects.
60         * test/test-fdml.lisp: Add another test for boolean results
61         * test/utils.lisp: Fix incorrect declaration
62         
63 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
64         * Version 2.10.6
65         * sql/generics.lisp: add generic function for SELECT. 
66         * sql/objects.lisp: make SELECT a method specialisation. 
67         * sql/classes.lisp: MAKE-QUERY now calls SELECT if the selections 
68         referred to are View Classes. 
69         * base/basic-sql.lisp: in DO-QUERY and MAP-QUERY, if the 
70         query-expression arg evaluates to a list, then we have an object 
71         query. 
72         * tests/test-oodml.lisp: add tests for DO-QUERY and MAP-QUERY with 
73         object queries. 
74         * TODO: remove items done and add a todo for SELECT. 
75         * sql/objects.lisp: SELECT takes a :field-names arg to pass on to 
76         QUERY. 
77         * sql/sql.lisp: add :field-names arg to QUERY. 
78         * tests/test-fdml.lisp: minor rework to use :field-names arg to 
79         SELECT. 
80
81 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
82         * sql/objects.lisp: fix bug in FIND-ALL when SELECT called with 2 
83         or more View Classes. 
84         * sql/objects.lisp: make the :flatp argument to SELECT work with 
85         object queries. 
86         * sql/objects.lisp: make SELECT accept a :result-types argument 
87         (defaults to :auto) which is passed on to QUERY.  
88         * sql/objects.lisp: SELECT returns field-names as a second value. 
89         * tests/test-ooddl.lisp: add flatp arg to SELECT calls as appropriate. 
90         * tests/test-fdml.lisp: add flatp/result-types arguments to calls 
91         to SELECT and take only first value as appropriate.
92         * tests/test-fdml.lisp: add two new tests for query result coercion 
93         and the field-names returned as a second value from SELECT. 
94         * tests/test-oodml.lisp: add flatp arg to SELECT calls as appropriate. 
95         
96 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
97         * Version 2.10.6-pre1
98         * sql/metaclasses.lisp: Add void-value slot
99         * doc/csql.xml: Update def-view-class documentation
100         * test/test-init.lisp: Change old :db-type to :db-kind.
101         Remove old :nulls-ok attributes.
102         * sql/objects.lisp: Add new universal-time and bigint
103         types. Optimize reading of integers using parse-integer
104         rather than read-from-string.
105         * */*.lisp: Merge clsql-base-sys and clsql-base packages
106         into clsql-base package
107         * classic/sql.lisp: Move large object support into base, leaving
108         classic without any functionality that is provided in the clsql
109         system.
110         * classic/package.lisp: Rename clsql-classic-sys package to
111         its former nickname of clsql-classic
112         
113 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
114         * Version 2.10.5: SQLite backend now passes all result-types tests
115         * clsql-sqlite.asd: Depend on clsql-uffi system
116         * db-sqlite/sqlite-sql.lisp: Use clsql-uffi:convert-raw-field
117         for efficiency and code reuse. 
118         * db-sqlite/sqlite-api-uffi.lisp: Change (* :char) to (* :unsigned-char)
119         for better cross-implementation compatibility.
120
121 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
122         * Version 2.10.4
123         * sql/tables.lisp: Fix typo in CACHE-TABLE-QUERIES
124         [Marcus Pearce]
125         * db-postgresql/postgresql-sql.lisp: Fix foreign-string vs. cstring
126         bug on SBCL in result-field-names function as reported by Marcus Pearce
127         * db-sqlite/sqlite-sql.lisp: Fix  in database-store-next-row
128         manifest in SBCL testing
129         
130 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
131         * Version 2.10.3
132         * sql/database.lisp: Conform more to CommonSQL output
133         for STATUS command [Marcus Pearce]
134         * sql/sqlite-sql.lisp: Rework to use result-types
135         * sql/sqlite-api-clisp.lisp: Add compatibility layer
136         with sqlite-api-uffi.lisp so that sqlite-sql.lisp can
137         be cleaned up of most clisp reader conditionals
138         * sql/test-init.lisp: Now run field type tests on sqlite
139         backend
140         
141 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
142         * Version 2.10.2
143         * base/basic-sql.lisp: Set default value of :result-types 
144         to :auto for more CommonSQL conformance. 
145         * test/test-fdml.lisp: Add tests for numeric value of fields
146         
147
148 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
149         * Version 2.10.1: New API function: CACHE-TABLE-QUERIES.
150         * base/basic-sql.lisp, db-*/*-sql.lisp: More CommonSQL conformance.
151         Return field names as second value for QUERY. This can be overridden
152         for efficiency with the new keyword :FIELD-NAMES set to NIL
153         in the QUERY invocation.
154         * test/test-fdml.lisp: Add tests for new field-name feature
155         * sql/metaclass.lisp: Remove old Lispworks cruft
156         and replace it with invocation of new code in kmr-mop.lisp
157         which actually works with Lispworks 4.2
158         * doc/ref_clsql.xml: Document new :FIELD-NAMES keyword to
159         QUERY function
160         * base/db-interface.lisp: Document the multiple values
161         returned by DATABASE-ATTRIBUTE-TYPE so matches the
162         undocumented CommonSQL behavior. 
163         * sql/table.lisp: Add *CACHE-TABLE-QUERIES-DEFAULT* and
164         *DEFAULT-UPDATE-OBJECTS-MAX-LEN* variables and export them.
165         LIST-ATTRIBUTE-TYPES now conforms to CommonSQL spec.
166         Implement CACHE-TABLE-QUERIES.
167         * db-odbc/odbc-sql.lisp: Fix attribute-type function
168         * test/test-fddl.lisp: Add tests for attribute type     
169         * db-mysql/mysql-sql.lisp: Mild optimization in accessing
170         field structures.
171         * base/classes.lisp: Add attribute-cache slot to database clas
172         * base/initialize.lisp: initialize-database-type now automatically
173         loads database-type backend as needed.
174         * base/test-init.lisp: Utilize new initialize-database-type functionality.
175         * TODO: remove items done
176         
177 30 Apr 2004 Marcus Pearce (m.t.pearce@city.ac.uk) 
178         * Version 2.9.6
179         * sql/objects.lisp: remove create/drop-sequence-from-class. 
180         * sql/objects.lisp: add INSTANCE-REFRESHED generic function. 
181         * sql/objects.lisp: improved CommonSQL compatibility for
182         UPDATE-RECORD-FROM-SLOT, UPDATE-RECORD-FROM-SLOTS,
183         UPDATE-RECORDS-FROM-INSTANCE and DELETE-INSTANCE-RECORDS. 
184         * sql/generics.lisp: move generics from objects.lisp to here. 
185         
186 29 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
187         * Version 2.9.6-pre1
188         * db-mysql/mysql-client-info.lisp: Add client version 4.1
189         detection
190         * sql/sql.lisp: Make *default-database* the default for
191         TRUNCATE-DATABASE
192         
193 28 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
194         * Version 2.9.5
195         * db-mysql/mysql-sql.lisp: Fix bug in transaction capability
196         detection
197         * sql/objects.lisp: Commit patch from Slawek Zak to allow specifying 
198         :metaclass in DEF-VIEW-CLASS invocation. This allows defining classes 
199         on a metaclass specialized from standard-db-class.
200
201         
202 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
203         * Version 2.9.4: Multiple changes to support Allegro's "modern"
204         lisp which uses a lowercase reader and has case-sensitive symbols
205         * sql/classes.lisp: Fix make-load-form bug for sql-ident-table
206         exposed by case-sensitive mlisp. 
207
208 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
209         * Version 2.9.3: All tests now pass on all platforms!
210         * LATEST-TEST-RESULTS: New file with summary of test results
211         * sql/generics.lisp: New file for generic function definitions.
212         * test/test-init.lisp: Display names of skipped tests.
213         Use unwind-protect to ensure disconnect
214         * sql/objects.lisp: Change database-type to database-underlying-type
215         so that actual database engine is properly identified
216         * db-odbc/odbc-api.lisp: Have default *time-conversion-function*
217         return an ISO timestring for compatibility with other drivers.
218         Workaround bug in MyODBC for LIST-TABLE-INDEXES
219         * test/test-fdml.lisp: Accomodate that odbc-postgresql driver
220         returns floating-point values for floor and truncate operations 
221         * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS
222         * tests/test-basic.lisp: Port to regression tester
223         * test/test-init.lisp: Output to *report-stream*
224         * docs/appendix.xml: Document ODBC and SQLite backends.
225         * sql/classes.lisp: Make output-sql require a database parameter.
226         This allows SQL generation to have the proper case to support
227         the differences in case handling between CommonSQL API,
228         Postgresql, MySQL, Oracle.
229         
230 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
231         * Version 2.9.2: Improvments in database capability introspection
232         and querying. Support transactions in MySQL where available.
233         All tests now pass on MySQL and SQLite in addition to postgresql
234         and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2.
235         * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support
236         DATABASE-LIST-SEQUENCES.
237         * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading
238         * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB,
239         HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE
240         * tests/*.lisp: Check database capabilities and remove tests which
241         the database backend does not support
242         * sql/table.lisp: Add :TRANSACTIONS keyword to create table which
243         controls whether InnoDB tables will be created when supported on
244         the underlying MySQL server.
245         
246 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
247         * Version 2.9.0: New API function: LIST-TABLE-INDEXES,
248         supported by all database backends (except AODBC since
249         AODBC doesn't support index querying)
250         * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES
251         * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function
252         to support index queries
253         * db-aodbc/aodbc-sql.lisp: Filter driver manager
254         "information_schema" tables from LIST-TABLES
255         * tests/test-basic.lisp: Remove table after testing
256         * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES
257         * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE
258         which gets the underlying type of database -- required
259         when dealing with ODBC databases and want to query
260         database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES?
261         as first database-backend specific feature. Is T on
262         :mysql, NIL on other backends. Change DROP-TABLE to
263         query this.
264         
265 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
266         * Version 2.8.2: Build changes for FreeBSD [Slawek Zak]
267
268 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
269         * Version 2.8.1
270         * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function 
271         * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function 
272
273 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
274         * Version 2.8.0: New API function: LIST-DATABASES
275         * base/utils.lisp: Fix command-output on CMUCL/SBCL
276         * db-*/*-sql.lisp: Add new database-list function
277         * base/database.lisp: Add new LIST-DATABASES command
278         
279 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
280         * Version 2.7.9
281         * db-sqlite/sqlite-sql.lisp: Fix sequence functions.
282         * db-sqlite/sqlite-api-uffi.lisp: Print error string
283         correctly.
284         
285 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
286         * Version 2.7.7
287         * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind
288         from Eduardo Munoz.
289         
290 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
291         * Version 2.7.6
292         * base/objects.lisp, base/classes.lisp: Patch
293         for db-kind from Eduardo Munoz
294         
295 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
296         * Version 2.7.5
297         * base/basic-sql.lisp: Fix FLATP in QUERY
298
299 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
300         * Version 2.7.3: Implement RECONNECT
301
302 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
303         * Version 2.7.2: Fix ODBC on Lispworks Windows
304
305 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
306         * Version 2.7.1: Fix for new ODBC backend.
307         clsql-odbc now works on SBCL, CMUCL, OpenMCL
308         in addition to AllegroCL and Lispworks.
309
310 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
311         * Version 2.7.0: New backend: ODBC. Tests as
312         well as AODBC backend on Allegro,Lispworks.
313         SBCL and CMUCL don't work quite yet.  Requires UFFI v1.4.11+
314         * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr
315         to explicitly set ODBC2 support. Add BIGINT support.
316         Add result-types support. Added SQLTables.
317         Fix array type in fetch-all-rows. Make width
318         changable by database or query.
319         * base/utils.lisp: Add process functions
320         * base/package.lisp: Export utils to CLSQL-BASE-SYS
321         * db-aodbc: Implement sequence functions,
322         database-list-tables, database-list-attributes
323         * tests/utils.lisp: Add support for ODBC backend,
324         rework READ-SPECS to use +all-db-types+
325         * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS
326         for SEQUENCE-NEXT
327         
328 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
329         * Version 2.6.13. Requires UFFI version 1.4.9
330         * db-odbc/*.lisp: Further porting.
331         Pre-alpha code! But, basic query is now working.
332
333 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
334         * Version 2.6.12
335         * base/transactions.lisp: Add quote for macro
336         expansion of WITH-TRANSACTIONS [Time Howe]
337         * db-sqlite/sqlite-sql.lisp: Support memory database
338         in database-probe [Ng Pheng Siong]
339         * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC.
340         The DBI layer is not finished.
341         
342 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
343         * Version 2.6.11
344         * sql/objects.lisp: add :root-class functionality for
345         list-classes and add duration type support [Marcus Pearce]
346         * db-odbc: Add mid-level [DBI] layer
347
348 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
349         * Version 2.6.10
350         * db-aodbc: Add methods for generic functions, some are
351         not yet implemented.
352         * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC
353         support
354
355 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
356         * Version 2.6.9
357         * base/package.lisp: Add missing symbols [Marcus Pearce]
358
359 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
360         * Version 2.6.8
361         * test/test-fddl.lisp: Cleanup fix [Marcus Pearce]
362         * utils/time.lisp: Multiple fixes [Marcus Pearce]
363         * sql/sql.lisp: Fix for truncate-database [Marcus Pearce]
364         
365 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
366         * Version 2.6.7
367         * sql/*.lisp: Remove schema versioning cruft
368         [Marcus Pearce]
369         * Makefile: Add classic subdirectory
370         
371 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
372         * Version 2.6.6
373         * sql/sql.lisp: Fix TRUNCATE command, bug reported
374         by Marcus Pearce
375         * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle
376         specific and easy for an application to directly support.
377         Idea from Marcus Pearce.
378         * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level 
379         API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce].
380         Keep low-level interface for future optimization
381         supporting LIST-ATTRIBUTE-TYPES command.
382         * Makefile: Add to db-sqlite and test directories.
383         Include them in top-level Makefile
384         
385 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
386         * Version 2.6.5
387         * sql/relations.lisp: Add missing file
388         * utils/time.lisp: Fixes/extensions [Marcus Pearce]
389         * test/test-time.lips: New file [Marcus Pearce]
390         
391 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
392         * Version 2.6.4
393         * test/test-init.lisp: Properly handle object
394         creation. Close database after use.
395         * sql/sql.lisp: Make DESCRIBE-TABLE a generic
396         function so can have methods specialized on
397         table being a string or an sql-table object.
398         * base/pool.lisp: Really fix CMUCL locking
399         
400 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
401         * Version 2.6.3
402         * test/test-init.lisp: Signal correctly
403         if any errors occurred in any test suite
404         * base/loop-extensions.lisp: Fix error
405         introduced for Lispworks
406         * base/pool.lisp: Fix locking for CMUCL
407         * base/objects.lisp: Remove schema-version cruft
408         
409 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
410         * Version 2.6.2: New CLSQL API functions:
411         DESCRIBE-TABLE AND TRUNCATE-DATABASE
412         Currently, this are only supported on :postgresql
413         and :postgresql-socket
414         * base/database.lisp: automatically load ASDF system
415         in CONNECT if not already loaded
416         * base/tests.lisp: disconnect database after testing 
417         * base/*.lisp: Remove CLOSED-DATABASE type in favor
418         of storing open/closed status in slot of database
419         * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL
420         * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT,
421         DATABASE-DESCRIBE-TABLE
422         * db-sqlite/sqlite-sql.lisp: Add missing slots in database
423         * base/conditions: Remove duplicate condition
424         * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE
425         * base/recording.lisp: Add new :QUERY type for recording
426         
427 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
428         * Version 2.6.1: documentation fixes, merged
429         classic-tests into tests
430
431 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
432         * Version 2.6.0 released: New API functions
433         CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE
434         * doc/ref_clsql.xml: Document new functions
435         * base/database.lisp: New API functions
436         * base/conditions.lisp: Added CLSQL-ACCESS-ERROR
437         * base/utils.lisp: Fix use of position-char.
438         Add COMMAND-OUTPUT used by backends for running
439         external programs. Fix parsing of SQL*NET-compatible
440         connection-specs.
441         * base/loop-extension.lisp: Simplify package use
442         for Lispworks and Allegro
443         * db-*/*-sql.lisp: Added DATABASE-CREATE,
444         DATABASE-DESTORY, PROBE-DATABASE methods
445         * tests/test-init.lisp, clasic-tests/tests.lisp:
446         Use destroy-database and create-database to ensure 
447         testing with empty database
448         * tests/test-connection.lisp: Add tests for
449         parsing of string connection-specs
450         * examples/run-tests.sh: New file for running
451         test suite on all installed CL implementations
452         * examples/clsql-tutorial.lisp: moved from
453         doc directory
454         * examples/dot.clsql-tests.config: New file
455         giving an example test configuration
456         * test/README: Add notes about rtest/ptester
457         downloads and link to sample test configuration file.
458         
459 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
460         * Version 2.5.1 released:
461         * tests/*.lisp: Rework so tests are run
462         on multiple backends automatically based
463         on the contents of ~/.clsql-tests.config.
464         Reuse helper functions from classic-tests.
465         * base/database.lisp: Support connection-spec
466         as string for CONNECT
467         * classic-tests/tests.lisp: Automatically
468         load database backends as needed. 
469         
470 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
471         * Version 2.5.0 released:
472         All tests for CLSQL and CLSQL-CLASSIC pass
473         on all platforms.
474         * base/loop-extension.lisp: Add Lispworks
475         loop-extension. Improve type specifying on
476         other platforms.
477         
478 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
479         * Version 2.4.2 released:
480         loop extension now supported on Allegro, all
481         CLSQL-TESTS pass on Allegro.
482         * sql/metaclasses.lisp: Some optimization
483         of compute-slots, be selective when
484         ordered-class-slots needs to be called
485         instead of class-slots
486         * TODO: add URL with documentation on
487         extending Lispworks LOOP form
488         
489 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
490         * Version 2.4.1 released: CLSQL-TESt suite passes
491         all tests for postgresql and CMUCL, SBCL, OpenMCL.
492         Allegro and Lispworks pass all tests except for
493         FDML/LOOP/1 since the loop extension have not yet
494         been ported to those implementions.
495         * sql/metaclasses.lisp: Added new slot to standard-db-class
496         to hold user-specified type. OpenMCL adjustments to compensate
497         for its type-predicate function. Since AllegroCL, Lispworks,
498         and OpenMCL have different slot orders, added compute-slots
499         and ordered-class-slots functions so their slot order matches
500         SBCL/CMUCL.
501
502 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
503         * Version 2.4.0 released: All tests for clsql-classic now finish
504         correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for
505         mysql, postgresql, postgresql-sockets, and sqlite backends.
506         * db-mysql/mysql-sql.lisp: Fix array dereferencing
507         * classic-tests/tests.lisp: Fix package name of
508         number-to-sql-string. 
509         * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
510         * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes,
511         now passes tests on all support UFFI platforms.
512         * db-postgresql-socket/postgresql-socket-api.list: Ported to 
513         SBCL and OpenMCL
514         * multiple: Finish renaming of :types keyword to :result-types for
515         greater CommonSQL compatibility, including documentation
516         * sql/basic-cmds.lisp: Remove obsolete file
517         
518 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
519         * Version 2.3.3 released
520         * Fixes for sequences on mysql and sqlite [Marcus Pearce]
521         * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
522         * Fix for schema table [Marcus Pearce]
523         * Add loop extension support for SBCL and OpenMCL [Marcus Pearce]
524         * Fixes to test suite [Marcus Pearce]
525
526 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
527         * db-*/*-sql.lisp: Ensure that expr in
528         database-query-result-set is a string
529         * Documentation integration
530         
531 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
532         * With for Marcus Pearce's excellent work, I've merged
533         his clsql-usql port into clsql. The original clsql
534         interface is available in the clsql-classic package.
535
536 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
537         * Integrate patch from Marcus Pearce <ek735@soi.city.ac.uk>
538         adding further support for providing backend for UncommonSQL
539
540 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net)
541         * Integrate patch from Aurelio Bignoli for SQLite backend
542
543 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net)
544         * Converted documentation to XML format
545         * Made package installable with asdf-install
546
547 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net)
548         * Add for-each-row macro
549
550 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net)
551         * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL
552         
553 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net)
554         * Add support for SBCL, OpenMCL, and SCL
555         * Add *load-truename* to search path for clsql's
556         compiled libraries.
557
558 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net)
559         * Rework use of file types in .asd files
560
561 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net)
562         * Add .asd definition files for ASDF users
563
564 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
565         * Restructure directories for Common Lisp Controller v3 compatibility
566
567 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
568         * Also change case of logical host in loader files
569         * Rework handling of logical pathnames
570         
571 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
572         * Change case of logical host
573         
574 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net)
575         * clsql-base.system: Added base package that can be used without
576         high-level SQL commands. Used for adding support for UncommonSQL.
577         * *.system: Reworked logical pathnames to be more consistent with
578         Common Lisp Controller.
579         * debian/*: Completed initial Debian support
580         
581 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
582         * sql/classes.cl:
583         * sql/transactions.cl:
584         Added transaction support. Functions/macros added:
585         with-transaction, commit-transaction, rollback-transaction,
586         add-transaction-commit-hook, add-transaction-rollback-hook
587
588 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
589         * sql/sql.cl:
590         * sql/pool.cl:
591         * sql/functional.cl:
592         Added pool support in connect/disconnect and with-database.
593         Removed with-db-from-pool as with-database can now works with the connections pool
594
595 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
596         * sql/sql.cl:
597         * sql/pool.cl:
598         * sql/classes.cl:
599         * sql/package.cl:
600         Completed connection pool.
601         Added with-db-from-pool macro.
602         
603 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
604         * Multiple files:
605         Added initial support for connection pool
606         * sql/transactions.cl
607         Took transaction code from UncommonSQL and integrated
608         into CLSQL code. See file for disclaimer about why this
609         was added.
610
611 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
612         * interfaces/postgresql/postgresql-sql.cl:
613         Fix keyword typo in database-read-large-object
614         * interfaces/mysql/mysql-loader.cl
615         Fix loading on Win32
616         * test-suite/tester-clsql.cl
617         Fix type coercion of double-float
618         * doc/*
619         Added debian docbook catalog, made it the default
620         
621 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com)
622         * interface/postgresql/postgresql-api.cl:
623         * interface/postgresql/postgresql-sql.cl:
624         * sql/sql.cl:
625         * sql/db-interface.cl:
626         Added large objects support for postgresql.
627
628 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
629         * src/postgresql-socket/postgresql-socket-api.cl:
630         Fixed find-foreign-function call, eliminated crypt warning
631         * Makefiles:
632         Multiple improvements
633         * sql/usql.cl:
634         Moved functionality from low-level interfaces to this file
635         via generic functions
636         * test-suite/tester.cl:
637         Added test with acl-compat-tester, moved others to old-tests
638         directory.
639         
640 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
641         * src/usql.cl:
642         Reinstated commented out sections
643         * interfaces/postgresql/postgresql-loader.cl:
644         * interfaces/mysql/mysql-loader.cl:
645         Updated find-forieign-library support.
646         * interfaces/postgresql-socket/postgresql-socket-package.cl:
647         Fixed require form for Lispworks (Thanks Marc Battyani!)
648         * interfaces/postgresql-socket/postgresql-socket-api.cl:
649         Fixed eval of def-function for crypt library.
650                 
651 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
652         * Added interface to support USQL high-level rouines
653         
654 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
655         * Separated db-interface and conditions from sql/sql.cl
656         * Improved foreign library loading testing
657         * interfaces/postgresql/postgresql-api.cl
658         Added PQisBusy function
659         * interfaces/clsql-uffi/clsql-uffi.cl
660         Fixed sign error for 64-bit processing
661         
662 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
663         * interfaces/postgresql-socket/postgresql-socket-api.cl:
664         Fixes to read-double-from-socket. Added 64-bit integer support.
665         * test-suite/xptest-clsql.cl
666         Added testint for 64-bit integers
667         * Additons to installation docs
668         
669 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
670         * interfaces/postgresql-socket/postgresql-socket-api.cl:
671         Implemented direct socket reading for field type :double
672         * Added usage information for :types to documentation
673         * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi,
674         atol, atof calls
675         * interfaces/clsql-uffi: Created new directory. Split common
676         interface routines that use UFFI into this package. Required
677         especially to support direct reading of 64-bit integers into
678         bignums and bypassing temporary strings.
679         * test-clsql.cl: Updated to test postgresql-socket's
680         read-double-from-socket function.
681         * test-suite/xptest-clsql.cl
682         Started work on test suite
683
684 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
685         * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields,
686         mysql-fetch-field-direct Got :auto types working
687         * interfaces/postgresql/postgresql-api.cl
688         * interfaces/postgresql-socket/postgresql-socket-api.cl
689         Added pgsql-field-types enum. Got :auto types working.
690         * multiple-files
691         Renamed :field-types to :types.
692         
693 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
694         * Added field-types parameter to query, database-query,
695         database-query-result-set, map-query. Haven't added code
696         to utilize field types, yet.
697         * Changed postgresql-socket result set from cons to a structure
698         * Updated test-clsql.cl to use automated testing with a config
699         file
700         * Changed return types of field accessors from cstring to
701         (* :unsigned-char).  This prepares for being able to use specified
702         type conversions when taking field data into lisp.
703         * Added field-type processing for most interfaces. Not done yet.
704         
705 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
706         * doc/ref.sgml: Updated MAP-QUERY example to use
707         *read-default-float-format* (John Foderaro)
708         * Extensive work to foreign library loaders and .system files to
709         check for successful loading of foreign libraries.
710         * Modified test-clsql.cl to allow more modularity and
711         automated testing in future release.
712         * mysql/mysql-sql.lisp: Added field types
713         
714 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net)
715         * mysql/mysql-sql.lisp:
716         - Added support for Allegro CL and Lispworks using UFFI layer
717         - Changed database-connect to use mysql-real-connect. This way,
718           can avoid using double (unwind-protect)
719         - Changed database-connect to have MySQL library allocate space
720           for MYSQL structure. This will make the code more robust in
721           the event that MySQL library changes the size of the mysql-mysql
722           structure.
723
724