1 24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk)
2 * db-postgresql-socket/postgresql-socket-sql.lisp: replace
3 CLSQL-SIMPLE-WARNING with SQL-WARNING.
4 * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with
6 * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR.
7 * clsql.asd: reworked module structure in package definition and
8 file names to better reflect component functionality.
9 * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to
10 exports list. Removed duplicate and obsolete exports. Exported
11 remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT,
12 SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and
13 according to whether they are specified by CommonSQL or CLSQL
15 * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with
17 * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND
18 here from basic-sql.lisp.
19 * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted).
20 * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted).
21 * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp
23 * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted).
24 * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted).
26 23 May 2004 Kevin Rosenberg
27 * Version 2.10.22 released
28 * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that
29 has reversed class slots, change the default for ordered-class-slots so that slots
30 are now in the same order an in the def-view-class.
31 * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS
32 * test/test-fddl.lisp: Add two tests for mixed case names
33 * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double)
34 for computed fields, this will require some adjustment to the test suite which
35 in many cases expects integers.
36 * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns
38 22 May 2004 Kevin Rosenberg
39 * Version 2.10.21 released
40 * sql/sequences.lisp: Move generic sequence functions here from db-sqlite,
41 db-odbc, and db-aodbc.
42 * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE,
43 DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these.
44 * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files
45 * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to
47 * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp:
48 Move common code to sql/generic-postgresql.lisp
49 * sql/classes.lisp: honor case of string tables when outputting queries
50 * sql/objects.lisp: Add database type to default database-get-type-specifier method
51 * sql/sql.lisp: Add database type to default database-abort-transaction method
52 * db-mysql/mysql-objects.lisp: New file
53 * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp
54 * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME
56 * test/test-fdml.lisp: String table names are now case sensitive, so convert to
57 default db case for FDML/SELECT/25
59 22 May 2004 Kevin Rosenberg
60 * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests
61 * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases
62 and string identifiers with non-default case
63 * sql/table.lisp: Don't convert string table name to a symbol.
64 * sql/classes.lisp: Honor case of string identifiers
65 * sql/sql.lisp: Ensure recyclebin is purged for Oracle in
67 * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of
68 of owner phrases. Obtain server and client versions.
69 * db-oracle/oracle-objects.lisp: Fix type specifiers
70 * tests/test-fddl.lisp: Allow :varchar2 and :number as data types
71 * tests/test-init.lisp: Properly get username from Oracle connection-spec
73 22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
74 * sql/generics.lisp: reworked docstrings. Remove generics for
75 ADD-TO-RELATION and REMOVE-FROM-RELATION.
76 * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS
77 to UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
78 * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS
79 for CommonSQL compatibility. Remove ADD-TO-RELATION and
81 * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to
82 UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
83 * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS.
84 * sql/conditions.lisp: add documentation for conditions. Add
85 SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility.
87 21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
88 * sql/basic-sql.lisp: reworked docstrings.
89 * sql/transactions.lisp: reworked docstrings.
90 * sql/sql.lisp: reworked docstrings.
91 * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE
92 sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility.
93 * sql/database.lisp: reworked docstrings.
94 * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P
95 and FDML extensions and database extensions.
97 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
98 * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword.
99 * db-oracle/make9.sh: add makefile for building with Oracle 9 client
101 * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
102 Oracle versions with the PURGE option required for drop table. This needs
103 to be converted to a generic function and moved to db-oracle/oracle-sql.lisp
105 20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
106 * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE.
107 * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION.
108 * sql/table.lisp: reworked docstrings.
109 * sql/objects.lisp: moved *default-update-objects-max-len* here from
111 * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE,
112 DROP-VIEW and DROP-INDEX and the use of the :transactions and
113 :constraints keyword args to CREATE-TABLE.
114 * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now
115 CommonSQL compatible with respect to column constraints.
117 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
118 * sql/oracle-sql.lisp: Now compiles and runs on SBCL.
119 Requires UFFI 1.5.0 or higher
121 20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
123 * sql/conditions.lisp: Fix cerror
125 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
126 * Version 2.10.18 released: New condition hierarchy to be compatible
127 with CommonSQL -- not backward compatible with previous CLSQL.
128 * sql/db-interface.lisp: Add more default methods
129 * sql/objects.lisp: Add explicit table name to order-by parameters
130 in find-all when only one table to avoid selecting a duplicate row.
131 Fix error in FIND-ALL when using :order-by such as (([foo] :asc))
132 as previous logic was adding two fields (foo asc) to SELECT query.
133 Make :result-types :auto be the default for object selections.
134 Properly handle caching key when using multiple order-by with asc/desc
136 * db-oracle/*.lisp: Much improvements, now passes 90% of test suite
138 19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
139 * sql/recording.lisp: reworked docstrings.
140 * sql/syntax.lisp: reworked docstrings.
141 * doc/TODO: added notes about extensions to SQL-RECORDING-P and the
142 SQL syntax state functions being macros.
144 19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
145 * sql/package.lisp: Export initialize-database-type and
146 *initialize-database-types* from CLSQL package.
147 * sql/conditions.lisp: Add new CommonSQL compatible conditions,
148 remove old CLSQL conditions.
149 * sql/loop-extensions.lisp: Make errors of type sql-user-error
150 * */*.lisp: Convert to from old to new conditions
152 18 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
153 * sql/table.lisp: Add PURGE to drop command for oracle 10g backend.
154 To handle this difference, will need to add a new database-drop-table
156 * db-oracle/oracle-sql.lisp: Move server-version and
157 major-version-number to database object to allow multiple connections
158 to Oracle servers of different versions.
160 18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
161 * TODO: moved notes about backends to doc/TODO.
162 * doc/TODO: added notes about backends and select extensions.
163 * sql/base-classes.lisp: remove obsolete schema slot in database
166 16 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
167 * db-oracle/oracle-api: Add OCIServerVersion
168 * db-oracle/oracle-sql: Query and store server version on connect
169 * sql/db-interface.lisp: Add new db-type-has-bigint? generic
170 function to handle OCI's lack of bigint support
171 * test/test-basic.lisp: Separate bigint testing
172 * test/test-utils.lisp: Add oracle to specs and list of backends
174 * test/test-fdml.lisp: Added FDML/SELECT/34 to test
175 run-time instantiation of variables in reader macros.
176 * TODO: Remove item already complete. Add note about
179 16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
180 * sql/syntax.lisp: added condition to the reader macro to treat [*]
181 as a column identifier (rather than an operation) for CommonSQL
183 * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION
184 keword args to SELECT, [*] as column identifier, new MAP-QUERY
185 behaviour and the ANY and ALL operators in subqueries.
186 * tests/test-init.lisp: add set-operation and subquery tests to
187 appropriate skip lists.
188 * sql/objects.lisp: remove redundant and non CommonSQL compatible
189 ORDER-BY-DESCENDING keyword argument for SELECT.
190 * sql/classes.lisp: remove redundant and non CommonSQL compatible
191 ORDER-BY-DESCENDING keyword argument for SELECT.
192 * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT
195 15 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
196 * sql/db-interface.lisp: Add new db-type-has-union?
197 since Mysql 3.23 does not support unions.
198 * sql/test-init.lisp: Don't try union tests on database
199 backends which do not support it.
200 * db-oracle/*.lisp: initial port to UFFI
201 * sql/objects.lisp: implement UPDATE-OBJECT-JOINS,
202 implement REFRESH for SELECT.
203 * tests/test-oodml.lisp: Add tests for deferred retrieval,
204 caching, refresh, and update-object-joins
205 * tests/test-init.lisp: Add deferred-employee-address class
207 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
208 * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add
209 COALESCE operator and make NVL a synonym for this. Make ANY, SOME,
210 ALL and EXISTS generate function expressions so they output the
212 * sql/classes.lisp: SELECT now generates appropriate SQL when
213 passed the SET-OPERATION and ALL keyword arguments.
214 * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now
215 accepts ordering constraints as pairs of the form (column direction)
216 where direction may be :ASC or :DESC.
217 * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL.
218 Correct tests for ANY, SOME, ALL and EXISTS.
219 * tests/test-fdml.lisp: added test for COALESCE.
220 * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION
221 using funcall unless QUERY-EXPRESSION returns one column and its
222 FLATP slot is not nil in which case apply is used.
223 * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the
225 * TODO: remove items done.
226 * db-postgresql/postgresql-sql.lisp: no need to reverse results in
227 DATABASE-LIST-ATTRIBUTES.
228 * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse
229 results in DATABASE-LIST-ATTRIBUTES.
231 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
232 * sql/classes.lisp: SELECT now accepts table identifiers as strings
233 for CommonSQL compliance. Add support for qualified sql identifiers
234 with aliased table names.
235 * tests/test-fdml.lisp: added tests for table identifiers as strings
236 in SELECT and for aliased definitions.
237 * tests/test-syntax.lisp: added tests for alias definitions.
239 15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
240 * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and
241 field-names set to nil.
242 * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly
243 with null attribute values.
244 * sql/operations.lisp: modify SQL concatenation operator to accept
246 * sql/syntax.lisp: modify sql reader macro function to accept
247 unescaped sql concatenation operator.
248 * tests/test-fdml.lisp: unescape sql concatenation operator.
249 * tests/test-syntax.lisp: unescape sql concatenation operator.
250 * TODO: remove items done. Add notes about SQLITE/MYSQL backends.
251 Note to add test for universal-time. Note about difference from
252 CommonSQL in transaction handling.
254 13 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
255 * tests/test-init.lisp: Add deferred-employee-address
257 * tests/test-oodml.lisp: Add deferred retrieval testgs
259 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
261 * LATEST-TEST-RESULTS: Run on all platforms, add AMD64
262 * sql/sql.lisp: Add FOR-EACH-ROW macro from clsql-classic/sql.lisp
263 * db-sqlite/sqlite-uffi-api.lisp: Fix row-pointer type
264 * *: Fix minor style warnings
265 * clsql-classic: Remove system and subdirectory
266 * clsql-base: Remove system and subdirectory and
267 fold into clsql system
268 * doc/intro.xml: Remove reference to old clsql-base. Add x86_64
269 as supported platform.
271 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
272 * Version 2.10.16: CLSQL now fully supports AllegroCL AMD64
273 * db-odbc/odbc-api.lisp: work around return-type bug [spr28889] in
274 Allegro 7.0beta AMD64
275 * db-odbc/*.lisp: Add a layer of indirection to foreign-type
276 of ODBC longs since this type can vary on 64-bit platforms depending
277 upon the compilation options of unixODBC.
278 * db-mysql/mysql-api.lisp: Fix int vs. long slots in foreign
279 structures found by testing with AllegroCL 7.0b AMD64.
280 * db-*/*-loader.lisp: Load 64-bit libraries on 64-bit platorms
281 * sql/objects.lisp: Simple implementation of UPDATE-OBJECT-JOINS.
282 Initial caching support for SELECT
283 * tests/test-oodml.lisp: Avoid using cache when testing select.
284 * sql/kmr-mop.lisp: Explicitly check slot order and
285 store as a cl:*feature*
286 * sql/recording.lisp: Remove additional types to
287 increase CommonSQL conformance.
288 * tests/test-init.lisp: Change a :column attribute
289 to test symbols as value
290 * sql/relations.lisp: Remove functions since they don't support
291 many to many relationships.
292 * examples/clsql-tutorial.lisp, doc/csql.lisp: Remove use
293 of add-to-relations function and replace with explicit field settings.
294 * base/classes.lisp: Remove obsolute query-stream. Add record-caches slot.
296 9 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
298 * LATEST-TEST-RESULTS: results with current version
299 * sql/kmr-mop.lisp: Make CMUCL reader macros specific for cmu18
300 since cmu19 has opposite order of class slots.
301 * sql/objects.lisp: Fix (setf slot-value-using-class) for Lispworks
302 * tests/test-fdml.lisp: Renumber SELECT tests to avoid overwriting
304 * tests/test-init.lisp: Check test-database-underlying-type for
307 8 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
308 * sql/operations.lisp: complete remaining operations for the sql
309 syntax: SUBSTR, SOME, ORDER-BY, GROUP-BY, NULL, DISTINCT, EXCEPT,
310 UNION, INTERSECT, BETWEEN.
311 * sql/classes.lisp: add new classes: SQL-BETWEEN-EXPRESSION,
312 SQL-QUERY-MODIFIER-EXPRESSION and SQL-SET-EXPRESSION.
313 * tests/test-syntax.lisp: add tests for new operations.
314 * tests/test-fdml.lisp: add tests for queries based on new operations.
315 * tests/test-init.lisp: add select/20 to tests skipped for sqlite and
316 select/20, query/5, query/7 and query/8 to tests skipped by mysql.
317 * TODO: removed entries done.
319 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
320 * tests/benchmarks.lisp: Add immediate vs. deferred
323 8 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
324 * Version 2.10.13: Now works on openmcl 0.14.2
325 * sql/objects.lisp: Add :retrieval :immediate for
327 * tests/test-init.lisp: Add non-index fields for testing
328 join class employee-addresss
329 * test/test-oodml.lisp: Add tests for retrieval immediate
330 * sql/metaclasses.lisp: Handle differences in direct-slot-definition
331 values which are now listifed by openmcl 14.2.
332 * sql/objects.lisp: more framework for supporing immediate retrieval
334 7 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
335 * docs/intro.xml: Upload location of a README file
336 * sql/metaclass.lisp: Work-around openmcl's CHANGE-CLASS
337 changing the type-specifier. Use a lisp type of (OR NULL FOO)
338 for a specified-type of FOO unless :db-constraints :not-null.
339 No need to specialize finalize-inheritance for openmcl.
340 * tests/test-*.lisp: Rename fields so that joins occur on
341 fields with different names. This ensures that join code is
342 selecting the proper name.
343 * test/test-init.lisp: Add :base-table for employee-address
344 view class for testing.
345 * sql/objects.lisp: Use view-table rather than name of table
346 in a number of places to fix errors noted with using :base-table.
348 6 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
349 * sql/objects.lisp: replace *update-records-on-make-instance* with
350 *db-auto-sync* which also controls both automatic creation of
351 new records on creation of new instance and updating of record
352 fields on setting of instance slots (as suggested by Edi Weitz).
353 * tests/test-init.lisp: replace *update-records-on-make-instance*
355 * sql/package.lisp: replace *update-records-on-make-instance*
357 * TODO: replace *update-records-on-make-instance* with *db-auto-sync*.
358 * sql/objects.lisp: remove redundant rebindings of *db-initializing*
359 and *default-database* in FIND-ALL.
360 * sql/package.lisp: import time functions from CLSQL-BASE.
361 * tests/test-time.lisp: replace CLSQl-BASE package qualifier with CLSQL.
362 * tests/test-fdml.lisp: replace CLSQl-BASE package qualifier with CLSQL.
363 * tests/test-init.lisp: replace CLSQl-BASE package qualifier with CLSQL.
364 * tests/test-ooddl.lisp: replace CLSQl-BASE package qualifier with
367 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
368 * sql/classes.lisp: Add SQL-OBJECT-QUERY type. Have [select 'class]
369 now return a sql-object-query type rather than directly performing a query.
370 This improves CommonSQL conformance.
371 * sql/sql.lisp: Add new QUERY method for SQL-OBJECT-QUERY. Move
372 from basic/basic-sql.lisp the DO-QUERY and MAP-QUERY since they now
373 depend on sql-object-query-type.
374 * sql/loop-extensions.lisp: Move from base package
375 * classic/package.lisp: remove references to map-query and do-query
377 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
378 * TODO: New section on optimizations, especially optimizing JOINs.
379 * sql/objects.lisp: Have :target-slot return of list of lists rather
380 than a list of cons pairs to be conformant with CommonSQL.
381 Make :target-slot much more efficient by using a SQL inner join
382 statement and just requiring one SQL query. Add :retrieval :deferrred
383 to target-slot joins. Add placeholder for update-objects-join.
384 * sql/classes.lisp: Add :inner-join and :on slots to sql-query class
385 and process them for query output-sql.
387 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
389 * base/basic-sql.lisp: Avoid multiple evaluation
390 of query-expression in DO-QUERY
391 * sql/objects.lisp: Make SELECT a normal function.
392 SELECT now accepts type-modified database identifiers, such as
393 [foo :string] which means that the values in column foo are returned
394 as Lisp strings. Add new *update-records-on-make-instance* special
395 variable controlling automatic creation of new instances. Add missing
396 RESULT-TYPES keyword to FIND-ALL. Add :target-slot support.
397 * sql/packages.lisp: Export *update-records-on-make-instance*
398 * test/test-oodml.lisp: Add tests for :target-slot and many-to-many
400 * test/test-fdml.lisp: Add tests for type-modified
401 database identifiers.
402 * test/test-init.lisp: Stop using add-relation since implementing
403 many-to-many joins. Use *update-records-on-make-instance*
404 to automatically store records on instance creation. Add many-to-many
405 employee-address view-class.
407 4 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
409 * base/loop.lisp: Add object iteration. Use :result-type
410 :auto for result-set. Remove
411 duplicate (and non-correct) code for non-list variables by
412 simply making an atom variable into a list.
413 * sql/package.lisp: Remove unnecessary clsql-sys package
414 and replace it with clsql.
415 * sql/metaclasses.lisp: Properly store specified-type from
416 direct-slot-definition and then store translated type in
417 effective-slot-definition
418 * sql/classes.lisp: Don't output type in sql-output
419 for SQL-IDENT-ATTRIBUTE. This is in preparation for supporting
420 [foo :integer] as fields in SELECT.
421 * sql/query.lisp: Set default for :result-types to :auto in
423 * sql/objects.lisp: Use specified-type when invocating
424 database-get-type-specifier. def-view-class macro now returns
426 * base/basic-sql.lisp: Make :AUTO the default value for
427 :RESULT-TYPES for MAP-QUERY and DO-QUERY.
428 * sql/objects.lisp: Add bigint type
429 * test/tests-basic.lisp: Add tests for :result-types for
430 MAP-QUERY and DO-QUERY
431 * test/test-fdml.lisp: Add test for result-types in LOOP
432 and also using single symbol rather than a list for variables.
433 Add test that default :result-types is auto for FDML QUERY.
434 * test/test-syntax.lisp: Don't expect TYPE in the SQL-OUTPUT
435 of SQL-IDENT-ATTRIBUTE.
436 * test/test-oodml.lisp: Enable OO loop iteration test,
437 modify it so it doesn't depend on boolean where.
439 4 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
441 * sql/objects.lisp: added derived type specifier for universal time.
442 * sql/package.lisp: added #:universal-time to clsql-sys exports.
443 * tests/test-oodml.lisp: added test for translation of boolean slots
444 in SELECT with object queries.
446 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
447 * db-odbc/odbc-api.lisp: Fix changing nil to "NIL"
448 for odbc/postgresql backend.
449 * db-odbc/odbc-sql.lisp: Fix ATTRIBUTE-TYPE so that
450 it can handle NIL values from the ODBC driver
451 * tests/benchmarks.lisp: New file with initial
453 * sql/relations.lisp: fix to add subclassing support,
454 minor optimizations [Edi Weitz]
456 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
458 * base/conditions.lisp: Add *backend-warning-behavior*
460 * db-postgresql-socket/postgresql-socket-sql.lisp:
461 Honor value of *backend-warning-behavior*
462 * tests/test-fdml.lisp: Remove test of raw boolean value
463 since different backends handle this differently. Add
464 test for :column attribute.
465 * tests/test-oodml.lisp: Add tests for boolean slot value
466 and for :void-value attribute
467 * tests/test-init.lisp: Use *backend-warning-behavior*
468 to suppress warnings from postgresql about implicitly
469 creating primary key in tables. Add new address table.
471 3 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
473 * db-odbc/odbc-dbi.lisp: Convert TINYINT to integers when
474 result-types is :auto
475 * sql/objects.lisp: Properly handled writing/reading Boolean
476 values from SQL database when retrieving objects.
477 * test/test-fdml.lisp: Add another test for boolean results
478 * test/utils.lisp: Fix incorrect declaration
480 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
482 * sql/generics.lisp: add generic function for SELECT.
483 * sql/objects.lisp: make SELECT a method specialisation.
484 * sql/classes.lisp: MAKE-QUERY now calls SELECT if the selections
485 referred to are View Classes.
486 * base/basic-sql.lisp: in DO-QUERY and MAP-QUERY, if the
487 query-expression arg evaluates to a list, then we have an object
489 * tests/test-oodml.lisp: add tests for DO-QUERY and MAP-QUERY with
491 * TODO: remove items done and add a todo for SELECT.
492 * sql/objects.lisp: SELECT takes a :field-names arg to pass on to
494 * sql/sql.lisp: add :field-names arg to QUERY.
495 * tests/test-fdml.lisp: minor rework to use :field-names arg to
498 2 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
499 * sql/objects.lisp: fix bug in FIND-ALL when SELECT called with 2
500 or more View Classes.
501 * sql/objects.lisp: make the :flatp argument to SELECT work with
503 * sql/objects.lisp: make SELECT accept a :result-types argument
504 (defaults to :auto) which is passed on to QUERY.
505 * sql/objects.lisp: SELECT returns field-names as a second value.
506 * tests/test-ooddl.lisp: add flatp arg to SELECT calls as appropriate.
507 * tests/test-fdml.lisp: add flatp/result-types arguments to calls
508 to SELECT and take only first value as appropriate.
509 * tests/test-fdml.lisp: add two new tests for query result coercion
510 and the field-names returned as a second value from SELECT.
511 * tests/test-oodml.lisp: add flatp arg to SELECT calls as appropriate.
513 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
514 * Version 2.10.6-pre1
515 * sql/metaclasses.lisp: Add void-value slot
516 * doc/csql.xml: Update def-view-class documentation
517 * test/test-init.lisp: Change old :db-type to :db-kind.
518 Remove old :nulls-ok attributes.
519 * sql/objects.lisp: Add new universal-time and bigint
520 types. Optimize reading of integers using parse-integer
521 rather than read-from-string.
522 * */*.lisp: Merge clsql-base-sys and clsql-base packages
523 into clsql-base package
524 * classic/sql.lisp: Move large object support into base, leaving
525 classic without any functionality that is provided in the clsql
527 * classic/package.lisp: Rename clsql-classic-sys package to
528 its former nickname of clsql-classic
530 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
531 * Version 2.10.5: SQLite backend now passes all result-types tests
532 * clsql-sqlite.asd: Depend on clsql-uffi system
533 * db-sqlite/sqlite-sql.lisp: Use clsql-uffi:convert-raw-field
534 for efficiency and code reuse.
535 * db-sqlite/sqlite-api-uffi.lisp: Change (* :char) to (* :unsigned-char)
536 for better cross-implementation compatibility.
538 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
540 * sql/tables.lisp: Fix typo in CACHE-TABLE-QUERIES
542 * db-postgresql/postgresql-sql.lisp: Fix foreign-string vs. cstring
543 bug on SBCL in result-field-names function as reported by Marcus Pearce
544 * db-sqlite/sqlite-sql.lisp: Fix in database-store-next-row
545 manifest in SBCL testing
547 1 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
549 * sql/database.lisp: Conform more to CommonSQL output
550 for STATUS command [Marcus Pearce]
551 * sql/sqlite-sql.lisp: Rework to use result-types
552 * sql/sqlite-api-clisp.lisp: Add compatibility layer
553 with sqlite-api-uffi.lisp so that sqlite-sql.lisp can
554 be cleaned up of most clisp reader conditionals
555 * sql/test-init.lisp: Now run field type tests on sqlite
558 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
560 * base/basic-sql.lisp: Set default value of :result-types
561 to :auto for more CommonSQL conformance.
562 * test/test-fdml.lisp: Add tests for numeric value of fields
565 30 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
566 * Version 2.10.1: New API function: CACHE-TABLE-QUERIES.
567 * base/basic-sql.lisp, db-*/*-sql.lisp: More CommonSQL conformance.
568 Return field names as second value for QUERY. This can be overridden
569 for efficiency with the new keyword :FIELD-NAMES set to NIL
570 in the QUERY invocation.
571 * test/test-fdml.lisp: Add tests for new field-name feature
572 * sql/metaclass.lisp: Remove old Lispworks cruft
573 and replace it with invocation of new code in kmr-mop.lisp
574 which actually works with Lispworks 4.2
575 * doc/ref_clsql.xml: Document new :FIELD-NAMES keyword to
577 * base/db-interface.lisp: Document the multiple values
578 returned by DATABASE-ATTRIBUTE-TYPE so matches the
579 undocumented CommonSQL behavior.
580 * sql/table.lisp: Add *CACHE-TABLE-QUERIES-DEFAULT* and
581 *DEFAULT-UPDATE-OBJECTS-MAX-LEN* variables and export them.
582 LIST-ATTRIBUTE-TYPES now conforms to CommonSQL spec.
583 Implement CACHE-TABLE-QUERIES.
584 * db-odbc/odbc-sql.lisp: Fix attribute-type function
585 * test/test-fddl.lisp: Add tests for attribute type
586 * db-mysql/mysql-sql.lisp: Mild optimization in accessing
588 * base/classes.lisp: Add attribute-cache slot to database clas
589 * base/initialize.lisp: initialize-database-type now automatically
590 loads database-type backend as needed.
591 * base/test-init.lisp: Utilize new initialize-database-type functionality.
592 * TODO: remove items done
594 30 Apr 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
596 * sql/objects.lisp: remove create/drop-sequence-from-class.
597 * sql/objects.lisp: add INSTANCE-REFRESHED generic function.
598 * sql/objects.lisp: improved CommonSQL compatibility for
599 UPDATE-RECORD-FROM-SLOT, UPDATE-RECORD-FROM-SLOTS,
600 UPDATE-RECORDS-FROM-INSTANCE and DELETE-INSTANCE-RECORDS.
601 * sql/generics.lisp: move generics from objects.lisp to here.
603 29 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
605 * db-mysql/mysql-client-info.lisp: Add client version 4.1
607 * sql/sql.lisp: Make *default-database* the default for
610 28 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
612 * db-mysql/mysql-sql.lisp: Fix bug in transaction capability
614 * sql/objects.lisp: Commit patch from Slawek Zak to allow specifying
615 :metaclass in DEF-VIEW-CLASS invocation. This allows defining classes
616 on a metaclass specialized from standard-db-class.
619 24 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
620 * Version 2.9.4: Multiple changes to support Allegro's "modern"
621 lisp which uses a lowercase reader and has case-sensitive symbols
622 * sql/classes.lisp: Fix make-load-form bug for sql-ident-table
623 exposed by case-sensitive mlisp.
625 22 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
626 * Version 2.9.3: All tests now pass on all platforms!
627 * LATEST-TEST-RESULTS: New file with summary of test results
628 * sql/generics.lisp: New file for generic function definitions.
629 * test/test-init.lisp: Display names of skipped tests.
630 Use unwind-protect to ensure disconnect
631 * sql/objects.lisp: Change database-type to database-underlying-type
632 so that actual database engine is properly identified
633 * db-odbc/odbc-api.lisp: Have default *time-conversion-function*
634 return an ISO timestring for compatibility with other drivers.
635 Workaround bug in MyODBC for LIST-TABLE-INDEXES
636 * test/test-fdml.lisp: Accomodate that odbc-postgresql driver
637 returns floating-point values for floor and truncate operations
638 * db-aodbc/aodbc-sql.lisp: Implement DATABASE-LIST-VIEWS
639 * tests/test-basic.lisp: Port to regression tester
640 * test/test-init.lisp: Output to *report-stream*
641 * docs/appendix.xml: Document ODBC and SQLite backends.
642 * sql/classes.lisp: Make output-sql require a database parameter.
643 This allows SQL generation to have the proper case to support
644 the differences in case handling between CommonSQL API,
645 Postgresql, MySQL, Oracle.
647 21 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
648 * Version 2.9.2: Improvments in database capability introspection
649 and querying. Support transactions in MySQL where available.
650 All tests now pass on MySQL and SQLite in addition to postgresql
651 and postgresql-socket. ODBC fails only with OODDL/TIME/1 and OODDL/TIME/2.
652 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST-VIEWS. Better support
653 DATABASE-LIST-SEQUENCES.
654 * clsql-uffi.asd, clsql-mysql.asd: Improve shared library loading
655 * Database_capabilies: add HAS-VIEWS, HAS-CREATE/DESTROY-DB,
656 HAS-BOOLEAN-WHERE, TRANSACTION-CAPABLE
657 * tests/*.lisp: Check database capabilities and remove tests which
658 the database backend does not support
659 * sql/table.lisp: Add :TRANSACTIONS keyword to create table which
660 controls whether InnoDB tables will be created when supported on
661 the underlying MySQL server.
663 20 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
664 * Version 2.9.0: New API function: LIST-TABLE-INDEXES,
665 supported by all database backends (except AODBC since
666 AODBC doesn't support index querying)
667 * db-obdc/odbc-sql.lisp: Support DATABASE-LIST-INDEXES
668 * db-odbc/odbc-api.lisp: Add %TABLE-STATISTICS function
669 to support index queries
670 * db-aodbc/aodbc-sql.lisp: Filter driver manager
671 "information_schema" tables from LIST-TABLES
672 * tests/test-basic.lisp: Remove table after testing
673 * tests/test-fddl.lisp: Test LIST-TABLE-INDEXES
674 * base/db-interface.lisp: Add DATABASE-UNDERLYING-TYPE
675 which gets the underlying type of database -- required
676 when dealing with ODBC databases and want to query
677 database capabilities. Added DB-USE-COLUMN-ON-DROP-TABLES?
678 as first database-backend specific feature. Is T on
679 :mysql, NIL on other backends. Change DROP-TABLE to
682 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
683 * Version 2.8.2: Build changes for FreeBSD [Slawek Zak]
685 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
687 * db-odbc/odbc-sql.lisp: Add DATABASE-LIST function
688 * db-odbc/odbc-dbi.lisp: Add LIST-ALL-DATA-SOURCES function
690 19 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
691 * Version 2.8.0: New API function: LIST-DATABASES
692 * base/utils.lisp: Fix command-output on CMUCL/SBCL
693 * db-*/*-sql.lisp: Add new database-list function
694 * base/database.lisp: Add new LIST-DATABASES command
696 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
698 * db-sqlite/sqlite-sql.lisp: Fix sequence functions.
699 * db-sqlite/sqlite-api-uffi.lisp: Print error string
702 18 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
704 * doc/csql.xml, examples/clsql-tutorial.lisp: Patch for db-kind
707 17 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
709 * base/objects.lisp, base/classes.lisp: Patch
710 for db-kind from Eduardo Munoz
712 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
714 * base/basic-sql.lisp: Fix FLATP in QUERY
716 16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
717 * Version 2.7.3: Implement RECONNECT
719 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
720 * Version 2.7.2: Fix ODBC on Lispworks Windows
722 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
723 * Version 2.7.1: Fix for new ODBC backend.
724 clsql-odbc now works on SBCL, CMUCL, OpenMCL
725 in addition to AllegroCL and Lispworks.
727 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
728 * Version 2.7.0: New backend: ODBC. Tests as
729 well as AODBC backend on Allegro,Lispworks.
730 SBCL and CMUCL don't work quite yet. Requires UFFI v1.4.11+
731 * db-odbc/*.lisp: Add ODBC3 function SQLSetEnvAttr
732 to explicitly set ODBC2 support. Add BIGINT support.
733 Add result-types support. Added SQLTables.
734 Fix array type in fetch-all-rows. Make width
735 changable by database or query.
736 * base/utils.lisp: Add process functions
737 * base/package.lisp: Export utils to CLSQL-BASE-SYS
738 * db-aodbc: Implement sequence functions,
739 database-list-tables, database-list-attributes
740 * tests/utils.lisp: Add support for ODBC backend,
741 rework READ-SPECS to use +all-db-types+
742 * db-mysql/mysql-sql.lisp: Use WITHOUT-INTERRUPTS
745 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
746 * Version 2.6.13. Requires UFFI version 1.4.9
747 * db-odbc/*.lisp: Further porting.
748 Pre-alpha code! But, basic query is now working.
750 13 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
752 * base/transactions.lisp: Add quote for macro
753 expansion of WITH-TRANSACTIONS [Time Howe]
754 * db-sqlite/sqlite-sql.lisp: Support memory database
755 in database-probe [Ng Pheng Siong]
756 * db-odbc/*.lisp: Initial port to UFFI of SQL-ODBC.
757 The DBI layer is not finished.
759 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
761 * sql/objects.lisp: add :root-class functionality for
762 list-classes and add duration type support [Marcus Pearce]
763 * db-odbc: Add mid-level [DBI] layer
765 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
767 * db-aodbc: Add methods for generic functions, some are
769 * clsql-odbc.asd, db-odbc/*.lisp: Initial start of ODBC
772 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
774 * base/package.lisp: Add missing symbols [Marcus Pearce]
776 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
778 * test/test-fddl.lisp: Cleanup fix [Marcus Pearce]
779 * utils/time.lisp: Multiple fixes [Marcus Pearce]
780 * sql/sql.lisp: Fix for truncate-database [Marcus Pearce]
782 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
784 * sql/*.lisp: Remove schema versioning cruft
786 * Makefile: Add classic subdirectory
788 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
790 * sql/sql.lisp: Fix TRUNCATE command, bug reported
792 * sql/sql.lisp: Remove EXPLAIN function. Postgresql/Oracle
793 specific and easy for an application to directly support.
794 Idea from Marcus Pearce.
795 * base/basic-sql.lisp: Remove DESCRIBE-TABLE top-level
796 API as duplicates LIST-ATTRIBUTE-TYPES [Marcus Pearce].
797 Keep low-level interface for future optimization
798 supporting LIST-ATTRIBUTE-TYPES command.
799 * Makefile: Add to db-sqlite and test directories.
800 Include them in top-level Makefile
802 12 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
804 * sql/relations.lisp: Add missing file
805 * utils/time.lisp: Fixes/extensions [Marcus Pearce]
806 * test/test-time.lips: New file [Marcus Pearce]
808 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
810 * test/test-init.lisp: Properly handle object
811 creation. Close database after use.
812 * sql/sql.lisp: Make DESCRIBE-TABLE a generic
813 function so can have methods specialized on
814 table being a string or an sql-table object.
815 * base/pool.lisp: Really fix CMUCL locking
817 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
819 * test/test-init.lisp: Signal correctly
820 if any errors occurred in any test suite
821 * base/loop-extensions.lisp: Fix error
822 introduced for Lispworks
823 * base/pool.lisp: Fix locking for CMUCL
824 * base/objects.lisp: Remove schema-version cruft
826 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
827 * Version 2.6.2: New CLSQL API functions:
828 DESCRIBE-TABLE AND TRUNCATE-DATABASE
829 Currently, this are only supported on :postgresql
830 and :postgresql-socket
831 * base/database.lisp: automatically load ASDF system
832 in CONNECT if not already loaded
833 * base/tests.lisp: disconnect database after testing
834 * base/*.lisp: Remove CLOSED-DATABASE type in favor
835 of storing open/closed status in slot of database
836 * base/pool.lisp: Support locks for CMUCL, OpenMCL, SBCL
837 * db-postgresql/postgresql-sql.lisp: add DATABASE-RECONNECT,
838 DATABASE-DESCRIBE-TABLE
839 * db-sqlite/sqlite-sql.lisp: Add missing slots in database
840 * base/conditions: Remove duplicate condition
841 * db-*/*-sql.lisp: Fill new database slot DATABASE-TYPE
842 * base/recording.lisp: Add new :QUERY type for recording
844 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
845 * Version 2.6.1: documentation fixes, merged
846 classic-tests into tests
848 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
849 * Version 2.6.0 released: New API functions
850 CREATE-DATABASE, DESTORY-DATABASE, PROBE-DATABASE
851 * doc/ref_clsql.xml: Document new functions
852 * base/database.lisp: New API functions
853 * base/conditions.lisp: Added CLSQL-ACCESS-ERROR
854 * base/utils.lisp: Fix use of position-char.
855 Add COMMAND-OUTPUT used by backends for running
856 external programs. Fix parsing of SQL*NET-compatible
858 * base/loop-extension.lisp: Simplify package use
859 for Lispworks and Allegro
860 * db-*/*-sql.lisp: Added DATABASE-CREATE,
861 DATABASE-DESTORY, PROBE-DATABASE methods
862 * tests/test-init.lisp, clasic-tests/tests.lisp:
863 Use destroy-database and create-database to ensure
864 testing with empty database
865 * tests/test-connection.lisp: Add tests for
866 parsing of string connection-specs
867 * examples/run-tests.sh: New file for running
868 test suite on all installed CL implementations
869 * examples/clsql-tutorial.lisp: moved from
871 * examples/dot.clsql-tests.config: New file
872 giving an example test configuration
873 * test/README: Add notes about rtest/ptester
874 downloads and link to sample test configuration file.
876 10 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
877 * Version 2.5.1 released:
878 * tests/*.lisp: Rework so tests are run
879 on multiple backends automatically based
880 on the contents of ~/.clsql-tests.config.
881 Reuse helper functions from classic-tests.
882 * base/database.lisp: Support connection-spec
883 as string for CONNECT
884 * classic-tests/tests.lisp: Automatically
885 load database backends as needed.
887 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
888 * Version 2.5.0 released:
889 All tests for CLSQL and CLSQL-CLASSIC pass
891 * base/loop-extension.lisp: Add Lispworks
892 loop-extension. Improve type specifying on
895 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
896 * Version 2.4.2 released:
897 loop extension now supported on Allegro, all
898 CLSQL-TESTS pass on Allegro.
899 * sql/metaclasses.lisp: Some optimization
900 of compute-slots, be selective when
901 ordered-class-slots needs to be called
902 instead of class-slots
903 * TODO: add URL with documentation on
904 extending Lispworks LOOP form
906 09 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
907 * Version 2.4.1 released: CLSQL-TESt suite passes
908 all tests for postgresql and CMUCL, SBCL, OpenMCL.
909 Allegro and Lispworks pass all tests except for
910 FDML/LOOP/1 since the loop extension have not yet
911 been ported to those implementions.
912 * sql/metaclasses.lisp: Added new slot to standard-db-class
913 to hold user-specified type. OpenMCL adjustments to compensate
914 for its type-predicate function. Since AllegroCL, Lispworks,
915 and OpenMCL have different slot orders, added compute-slots
916 and ordered-class-slots functions so their slot order matches
919 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
920 * Version 2.4.0 released: All tests for clsql-classic now finish
921 correctly on Allegro, Lispworks, CMUCL, SBCL, OpenMCL for
922 mysql, postgresql, postgresql-sockets, and sqlite backends.
923 * db-mysql/mysql-sql.lisp: Fix array dereferencing
924 * classic-tests/tests.lisp: Fix package name of
925 number-to-sql-string.
926 * clsql.asd/clsql-tests.asd: Add support for asdf:test-op
927 * db-sqlite/sqlite-api-{uffi,sql}.lisp: Multiple UFFI fixes,
928 now passes tests on all support UFFI platforms.
929 * db-postgresql-socket/postgresql-socket-api.list: Ported to
931 * multiple: Finish renaming of :types keyword to :result-types for
932 greater CommonSQL compatibility, including documentation
933 * sql/basic-cmds.lisp: Remove obsolete file
935 08 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
936 * Version 2.3.3 released
937 * Fixes for sequences on mysql and sqlite [Marcus Pearce]
938 * Fixes for uffi sqlite backend [Aurelio Bignoli / Kevin Rosenberg]
939 * Fix for schema table [Marcus Pearce]
940 * Add loop extension support for SBCL and OpenMCL [Marcus Pearce]
941 * Fixes to test suite [Marcus Pearce]
943 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
944 * db-*/*-sql.lisp: Ensure that expr in
945 database-query-result-set is a string
946 * Documentation integration
948 06 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
949 * With for Marcus Pearce's excellent work, I've merged
950 his clsql-usql port into clsql. The original clsql
951 interface is available in the clsql-classic package.
953 02 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
954 * Integrate patch from Marcus Pearce <ek735@soi.city.ac.uk>
955 adding further support for providing backend for UncommonSQL
957 10 Mar 2004 Kevin Rosenberg (kevin@rosenberg.net)
958 * Integrate patch from Aurelio Bignoli for SQLite backend
960 11 Nov 2003 Kevin Rosenberg (kevin@rosenberg.net)
961 * Converted documentation to XML format
962 * Made package installable with asdf-install
964 23 Jul 2003 Kevin Rosenberg (kevin@rosenberg.net)
965 * Add for-each-row macro
967 12 Dec 2002 Kevin Rosenberg (kevin@rosenberg.net)
968 * uffi/clsql-uffi.lisp: return NIL for numeric fields that are NULL
970 16 Oct 2002 Kevin Rosenberg (kevin@rosenberg.net)
971 * Add support for SBCL, OpenMCL, and SCL
972 * Add *load-truename* to search path for clsql's
975 01 Sep 2002 Kevin Rosenberg (kevin@rosenberg.net)
976 * Rework use of file types in .asd files
978 17 Aug 2002 Kevin Rosenberg (kevin@rosenberg.net)
979 * Add .asd definition files for ASDF users
981 31 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
982 * Restructure directories for Common Lisp Controller v3 compatibility
984 25 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
985 * Also change case of logical host in loader files
986 * Rework handling of logical pathnames
988 05 Jul 2002 Kevin Rosenberg (kevin@rosenberg.net)
989 * Change case of logical host
991 14 May 2002 Kevin Rosenberg (kevin@rosenberg.net)
992 * clsql-base.system: Added base package that can be used without
993 high-level SQL commands. Used for adding support for UncommonSQL.
994 * *.system: Reworked logical pathnames to be more consistent with
995 Common Lisp Controller.
996 * debian/*: Completed initial Debian support
998 10 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1000 * sql/transactions.cl:
1001 Added transaction support. Functions/macros added:
1002 with-transaction, commit-transaction, rollback-transaction,
1003 add-transaction-commit-hook, add-transaction-rollback-hook
1005 04 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1008 * sql/functional.cl:
1009 Added pool support in connect/disconnect and with-database.
1010 Removed with-db-from-pool as with-database can now works with the connections pool
1012 01 May 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1017 Completed connection pool.
1018 Added with-db-from-pool macro.
1020 27 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1022 Added initial support for connection pool
1023 * sql/transactions.cl
1024 Took transaction code from UncommonSQL and integrated
1025 into CLSQL code. See file for disclaimer about why this
1028 23 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1029 * interfaces/postgresql/postgresql-sql.cl:
1030 Fix keyword typo in database-read-large-object
1031 * interfaces/mysql/mysql-loader.cl
1032 Fix loading on Win32
1033 * test-suite/tester-clsql.cl
1034 Fix type coercion of double-float
1036 Added debian docbook catalog, made it the default
1038 19 Apr 2002 Marc Battyani (marc.battyani@fractalconcept.com)
1039 * interface/postgresql/postgresql-api.cl:
1040 * interface/postgresql/postgresql-sql.cl:
1042 * sql/db-interface.cl:
1043 Added large objects support for postgresql.
1045 07 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1046 * src/postgresql-socket/postgresql-socket-api.cl:
1047 Fixed find-foreign-function call, eliminated crypt warning
1049 Multiple improvements
1051 Moved functionality from low-level interfaces to this file
1052 via generic functions
1053 * test-suite/tester.cl:
1054 Added test with acl-compat-tester, moved others to old-tests
1057 06 Apr 2002 Kevin Rosenberg (kevin@rosenberg.net)
1059 Reinstated commented out sections
1060 * interfaces/postgresql/postgresql-loader.cl:
1061 * interfaces/mysql/mysql-loader.cl:
1062 Updated find-forieign-library support.
1063 * interfaces/postgresql-socket/postgresql-socket-package.cl:
1064 Fixed require form for Lispworks (Thanks Marc Battyani!)
1065 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1066 Fixed eval of def-function for crypt library.
1068 31 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1069 * Added interface to support USQL high-level rouines
1071 29 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1072 * Separated db-interface and conditions from sql/sql.cl
1073 * Improved foreign library loading testing
1074 * interfaces/postgresql/postgresql-api.cl
1075 Added PQisBusy function
1076 * interfaces/clsql-uffi/clsql-uffi.cl
1077 Fixed sign error for 64-bit processing
1079 27 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1080 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1081 Fixes to read-double-from-socket. Added 64-bit integer support.
1082 * test-suite/xptest-clsql.cl
1083 Added testint for 64-bit integers
1084 * Additons to installation docs
1086 26 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1087 * interfaces/postgresql-socket/postgresql-socket-api.cl:
1088 Implemented direct socket reading for field type :double
1089 * Added usage information for :types to documentation
1090 * interfaces/mysql/mysql-sql.cl: Fixed type specifiers in atoi,
1092 * interfaces/clsql-uffi: Created new directory. Split common
1093 interface routines that use UFFI into this package. Required
1094 especially to support direct reading of 64-bit integers into
1095 bignums and bypassing temporary strings.
1096 * test-clsql.cl: Updated to test postgresql-socket's
1097 read-double-from-socket function.
1098 * test-suite/xptest-clsql.cl
1099 Started work on test suite
1101 25 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1102 * interfaces/mysql/mysql-api.cl: Added mysql-fetch-fields,
1103 mysql-fetch-field-direct Got :auto types working
1104 * interfaces/postgresql/postgresql-api.cl
1105 * interfaces/postgresql-socket/postgresql-socket-api.cl
1106 Added pgsql-field-types enum. Got :auto types working.
1108 Renamed :field-types to :types.
1110 24 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1111 * Added field-types parameter to query, database-query,
1112 database-query-result-set, map-query. Haven't added code
1113 to utilize field types, yet.
1114 * Changed postgresql-socket result set from cons to a structure
1115 * Updated test-clsql.cl to use automated testing with a config
1117 * Changed return types of field accessors from cstring to
1118 (* :unsigned-char). This prepares for being able to use specified
1119 type conversions when taking field data into lisp.
1120 * Added field-type processing for most interfaces. Not done yet.
1122 23 Mar 2002 Kevin Rosenberg (kevin@rosenberg.net)
1123 * doc/ref.sgml: Updated MAP-QUERY example to use
1124 *read-default-float-format* (John Foderaro)
1125 * Extensive work to foreign library loaders and .system files to
1126 check for successful loading of foreign libraries.
1127 * Modified test-clsql.cl to allow more modularity and
1128 automated testing in future release.
1129 * mysql/mysql-sql.lisp: Added field types
1131 01 Jan 2002 Kevin Rosenberg (kevin@rosenberg.net)
1132 * mysql/mysql-sql.lisp:
1133 - Added support for Allegro CL and Lispworks using UFFI layer
1134 - Changed database-connect to use mysql-real-connect. This way,
1135 can avoid using double (unwind-protect)
1136 - Changed database-connect to have MySQL library allocate space
1137 for MYSQL structure. This will make the code more robust in
1138 the event that MySQL library changes the size of the mysql-mysql