+2015-04-06 Russ Tyndall <russ@acceleration.net>
+ * sql/operations, sql/expressions: add postgresql E-string
+ operator / expression. Needed for correct regex handling
+ EG: [E "some string"]=> E'some string'
+
+2015-03-24 Russ Tyndall <russ@acceleration.net>
+ * sql/oodml.lisp: fixed call-next-method in the base of
+ read-sql-value and replaced with a continuable
+ sql-value-conversion-error
+ * default read-sql-value for list
+ * tests for sql-value-conversion-errors and list
+
+2015-03-18 Russ Tyndall <russ@acceleration.net>
+ * {uffi,db-mysql}/Makefile: remove -pie build hardening for
+ which caused load issues for Linux Mint
+
+2015-02-26 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.6.0 release
+ * {uffi,db-mysql}/Makefile: Add build hardening for Debian
+
+2015-02-24 Russ Tyndall <russ@acceleration.net>
+ * mysql-sql.lisp
+ an error in type declarations generating a compilation warning
+ was being treated as an error in recent SBCLs, fixed the type
+ warning by correcting the type (still a ton of compliation
+ notes)
+
+2015-02-23 Russ Tyndall <russ@acceleration.net>
+ * sql/metaclasses.lisp
+ made reinitialize-instance return the instance passed to it as
+ SBCL now expected (mentioned on the SBCL-devel mailing list by
+ Stas
+
+2014-12-03 Russ Tyndall <russ@acceleration.net>
+ * sqlite-sql.lisp
+ Added database arg to `canonicalize-result-types` so that it could
+ correctly call `sqlite-aref` with the required number of arguments
+ Thanks Zach Beane for the bug report.
+
+2014-07-29 Russ Tyndall <russ@acceleration.net>
+ * mysql-api.lisp, mysql-sql.lisp, test-connection.lisp
+ Added code to the mysql backend to pull all result sets as
+ multiple args. This fixes a bug in the mysql backend where trying
+ to query after executing a stored procedure (even on a pooled
+ connection) would raise an error about the connection being out of
+ sync. The second result set for the stored procedure seems to be
+ empty, so not sure why we need to iterate past it.
+
+ patch / bugreport provided by: Ilya Khaprov deadtrickster@github
+
+2014-06-11 Russ Tyndall <russ@acceleration.net>
+ * databases.lisp, sqlite3-sql.lisp
+ Similar to and overriding the patch 2014-01-30 937a3d, adds a
+ default-encoding variable uses that in places where a nil encoding
+ was being passed. Defaults to :utf-8. This is mostly in place so
+ that uffi and cffi both work similarly (by moving the default into
+ clsql instead of clsql-uffi). This allows my automated build
+ environment to do its job
+
+2014-06-10 Russ Tyndall <russ@acceleration.net>
+
+ * db-mysql/Makefile - the results of dpkg-buildflags --get LDFLAGS
+ seem to have changed on my system and and sed was returning
+ invalid command line arguments to ld. To resolve this I changed
+ sed to emit valid args, which seems to have resolved the issue.
+
+2014-04-24 Russ Tyndall <russ@acceleration.net>
+ * oodml.lisp, test-oodml.lisp Better handling of view-slots of
+ type symbol/keyword. Better handling of printing and reading
+ bindings (per mailing list request, always read and write in base
+ 10)
+
+2014-03-04 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.5.0: New release
+ * makefile.common: Check for /usr/bin/dpkg-buildflags
+ * {db-mysql,uffi}/Makefile: Use debian buildflags
+
+2014-02-24 Russ Tyndall <russ@acceleration.net>
+ * oodml.lisp bind *print-length* to nil before printing
+ lists/arrays to the database.
+
+2014-01-30 Russ Tyndall <russ@acceleration.net>
+ * sqlite3-sql.lisp specify :utf-8 as the default encoding if there
+ is not one (allows :clsql-cffi to be closer to working for this
+ backend).
+
+ I ran the test suite successfully once with :clsql-cffi, but there
+ after I got spurious errors and especially unrecoverable errors
+ while connecting about the database being locked
+
+2014-01-30 Russ Tyndall <russ@acceleration.net>
+ * sqlite3-sql.lisp, fddl.lisp Dont compare database-identifiers
+ with invalid comparison operators
+
+2014-01-30 Russ Tyndall <russ@acceleration.net>
+ * generic-odbc.lisp, ooddl.lisp, generic-postgresql.lisp,
+ test-init.lisp, ds-nodes.lisp, generic-odbc.lisp, odbc-sql.lisp
+
+ auto-increment-column support improvement (mssql esp, now will
+ auto-fill after insert). Use +auto-increment-names+ to determine
+ auto-increment-column-p.
+
+ This triggered much test failing as regards normalized classes /
+ autoincrement primary key stuff.
+
+ New odbc-postgresql-database sub-type
+
+ POSSIBLY BREAKING CHANGES:
+ 1 ) Previously all classes in a normalized heirachy had their p-key
+ marked as "auto-increment". Usually auto-increment means a key
+ supplied by the database system, so this was decidedly
+ non-standard usage (clsql is explicitly providing the key for all
+ normalized subclasses of any given parent see ds-nodes.lisp). Some
+ RDMS will not allow insertion/updates of autoincrement columns
+ without hoop jumping and, as it doesnt really make much sense, I
+ removed the "auto-increment" aspects of normalized sub-classes.
+ Now the primary keys are chained regardless. The parent-most key
+ can be autoincrement or not.
+
+ 2 ) ODBC Postgresql connections are now both GENERIC-ODBC-DATABASE
+ and GENERIC-POSTGRESQL-DATABASE. Probably not a widely used path,
+ but this change allows most of the previously failing tests to
+ pass on this backend (we now format stuff correctly for postgres).
+ I anticipate this probably is not perfect yet (IE: I probably
+ missed something)
+
+2014-01-29 Russ Tyndall <russ@acceleration.net>
+ * oodml.lisp, generics.lisp - added
+ clsql-sys::view-classes-and-storable-slots generic (added method
+ previously). Also added to-database-p keyword to allow overrides
+ to distinguish between the two situations. Mostly so that
+ clsql-helper:dirty-slots-mixin can filter slots when writing
+ values to the database but still allow all slots to be read from
+ the database
+
+2014-01-17 Russ Tyndall <russ@acceleration.net>
+ * oodml.lisp, generics.lisp - added filter-select-list generic
+ to allow fine grained control of generated query/object mappings
+
+2014-01-07 Russ Tyndall <russ@acceleration.net>
+ * clsql-uffi.lisp, sqlite3 auto-increment support
+ * clsql-uffi.lisp, test-basic.lisp, fixes related to unsigned vs
+ signed ints (thanks Aaron Burrow)
+ * cleaning and testing
+
+2013-09-27 Russ Tyndall <russ@acceleration.net>
+ * fixed bug converting to boolean in db-mysql/mysql-sql.lisp
+ from github user Sectoid https://github.com/UnwashedMeme/clsql/pull/1
+
+2013-06-19 Russ Tyndall <russ@acceleration.net>
+ * sql/oodml.lisp, db-postgresql-socket3/sql.lisp,
+ db-mysql/mysql-objects.lisp, sql/generic-odbc.lisp
+ Refactored read-sql-value similar to the other recent refactorings
+
+ * the symbol case now uses intern instead of read-from-string
+ (which may not return a symbol and could have security issues
+ since read-eval was not being unset)
+
+ * read-eval is now off for all cases
+
+ * centralized logic into a single case statement, hopefully making
+ this more readable and debuggable
+
+ * TODO: make these refactorings to the oracle backend (I cannot
+ test against oracle and am loathe to change without testing
+
+2013-06-19 Russ Tyndall <russ@acceleration.net>
+ * sql/mysql-objects.lisp
+ Found and refactored a way some more eql specified methods of
+ database-get-type-specifier in mysql
+
+2013-06-18 Russ Tyndall <russ@acceleration.net>
+ * sql/oodml.lisp, sql/mysql-objects.lisp
+ refactored database-output-sql-as-type in a similar fashion to
+ the previous refactor of database-get-type-specifier (fewer
+ methods using case instead of eql specifiers)
+
+ * removed very strange definition of outputing floats as strings
+ for something sane (it was previously doing silly work like
+ setting the default read float type (which AFAICT doesnt affect
+ printing))
+
+ * half of the cases nil returned "" other times it returned nil,
+ now if we get a null value we return nil always
+
+ * removed odd-logic (seemingly untouched since the initial import),
+ that removed null characters from printed lists. If we have #\null
+ in a printed list, we had probably better figure out what went wrong
+ there rather than destructively modifying the list output on the way
+ to the DB ;; removed (substitute-char-string escaped #\Null " ")
+
+2013-06-18 Russ Tyndall <russ@acceleration.net>
+ * sql/generic-odbc.lisp, sql/generic-postgresql.lisp, sql/oodml.lisp
+ tests/test-fddl.lisp
+
+ refactored database-get-type-specifier for postgres and mssql
+
+ Single methods with a case on the symbol arg (similar to the recent
+ refactoring in oodml.lisp)
+
+ This reduces line count and generally makes it easier to find and
+ read all the backend-specific types
+
+2013-06-10 Russ Tyndall <russ@acceleration.net>
+ * sql/oodml.lisp, sql/generic-postgresql.lisp, doc/ref-fddl.xml,
+ sql/packages.lisp
+
+ Updated get-database-type-specifier to handle text/longchar type
+ and refactored
+
+ * added a warning above defaulting to VARCHAR (since its probably
+ NOT what is expected on a bad type specifier).
+
+ * added a case where the specified type being a string, passes
+ that string directly (to better/more easily allow db-specific
+ data-types).
+
+ * added cases where longchar or text converts to text, and
+ exported those symbols (as this seemed type seemed to be missing
+ from fddl/oddl anyway).
+
+ * reorganized these default methods into a single method with a
+ case statement rather than many eql specified methods (about half
+ the code)
+
+ * updated the docs to use text instead of longchar since text is
+ a more standard db-type (pg,my,and ms all use text)
+
+2013-11-23 Kiss Kalman <kami@zalaszam.hu>
+ * utils/sql.lisp: Commit patch adding ccl getenv support
+
+2013-04-17 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.4.1
+ * sql/utils.lisp: Patch from Ben Hyde to add weak hash table
+ support for CCL.
+
+2013-03-07 Ryan Davis <ryan@acceleration.net>
+ * db-postgresql-socket/postgresql-socket-api.lisp - bugfix to
+ adapt to changes in md5:md5sum-sequence. CLSQL now requires a
+ version of MD5 released on or after 2012-11-25 (the latest version
+ currenty in quicklisp). Thanks to Nicolas Neuss for the bug
+ report.
+ * db-odbc/odbc-sql.lisp - keep a reference to the original
+ connection spec used to create `odbc-database` connections
+
+2013-01-09 Russ Tyndall <russ@acceleration.net>
+ sql/oodml.lisp - changed view-classes-and-storable-slots to a
+ method (as it was intended to be all along)
+
+2012-12-19 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.4
+
+2012-11-20 Russ Tyndall <russ@acceleration.net>
+ ## Large refactoring of sql/oodml.lisp and surrounding code
+ * cleaned up update-records-from-* to utilize a single codepath
+ previously there was much duplicate code
+ * tried to further unify direct/effective slot-defs
+ * cleaned up much of the normalized classes code to be more
+ consistent in how it operated, and the code it used (less
+ copy/paste more functions)
+ * tried to standardize iteration a bit, previously almost all
+ of the iteration constructs in CL were used. Tried to
+ standardize on loop for readability / cohesiveness
+ * made functions to more easily look up particular slots, since
+ this was being done differently in each function
+ * added more doc-strings and updated documentation about
+ normalized classes
+ * inner-joins that are referenced in where clauses are no longer
+ added to the select table list (since they are also referenced
+ in the join position and this led to sql errors)
+ * collect-table-references methods added for sql-ident-table and
+ list
+
+ ## Semantic changes
+ * disallow where-less updates from objects (ie cannot call
+ update-records-from* with a keyless object)
+ * ordered-class-direct-slots now returns direct-slot-definitions
+ instead of effective-slot-definitions (as per name)
+ * direct-slot-definitions now contain the db-info hash table (same
+ as effective slots)
+ * removed this-class arg from update-instance-from-records - used to
+ be used for normalized code, no longer needed for that.
+ * find-all - bug fixes in table references, previously where clauses
+ surrounded by a list would have none of their references added to
+ the select. This was being exploited by certain code paths. Now
+ all where clauses are searched
+ - No longer includes order-by and distinct as columns in the select
+ list. The values seemed to be ignored in every code path and distinct
+ seemed to be intended to be used as a boolean anyway
+
+
+2012-11-20 Nathan Bird <nathan@acceleration.net>
+
+ * update-objects-joins - changed the default of slot from t (which
+ used to mean :deferred) to :immediate (to match the default
+ behavior of other parts of the system). It also seemed like a bad
+ default to pull all the slots that were explicitly specified to be
+ not pulled by default. This function now accepts more special
+ values (:immediate, :deferred, :all, or a list of slots). To get
+ the old behavior call with :slots :deferred.
+
+
+2012-10-30 Russ Tyndall <russ@acceleration.net>
+ * sql/command-object.lisp - added dates/times to the parameter value
+ coersion and pulled this into a new generic prepare-sql-parameter
+
+2012-09-04 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.3 released
+
+2012-09-04 Russ Tyndall <russ@acceleration.net>
+ * sql/expressions.lisp - Try to respect the casing of symbols
+ where it seems intentional (ie: is not default). This should fix
+ a failing test case, and I think behaves more understandibly.
+
+ If you specify a casing '|Foo Bar| lets treat that a string "Foo Bar"
+ and output it escaped
+
+2012-08-28 Ryan Davis <ryan@acceleration.net>
+ * db-sqlite3/sqlite3-api.lisp - allow pathnames in the connection
+ settings, so '("/db/my.sqlite") and '(#P"/db/my.sqlite") are
+ equivalent. Updated the docs to match.
+
+2012-08-17 Russ Tyndall <russ@acceleration.net>
+ * db-postgresql-socket3/package.lisp - shadow
+ postgresql-notification for compatibility with new
+ cl-postgres (Thanks Zach)
+
+2012-07-09 Russ Tyndall <russ@acceleration.net>
+ * sql/oodml.lisp - fixed a bug where the order by was being
+ destructively modified, causing odd caching issues when the
+ selected object was not statically known (eg unreferenced tables
+ could show up in the query if they were cached by a previous call
+ through this function. I replaced this code with a
+ non-destructive variant which should solve this.
+
+ Thanks to Philipp Marek for the bug report
+
+2012-06-25 Russ Tyndall <russ@acceleration.net>
+ * sql/util.lisp, sql/metaclasses.lisp
+ Dequote database-identifiers if needed (passed a quoted symbol)
+ Metaclass args come through unquoted, so this eases interactions
+ with them
+
+2012-06-22 Russ Tyndall <russ@acceleration.net>
+ * sql/metaclasses.lisp: Changed compute-effective-slot-definition
+ to correctly copy the autoincrement-sequence slot to the ESD
+ previously it was being skipped (seemingly by accident). Thanks
+ to flip214 on #lisp for the bug report
+
+2012-04-26 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.2 released: thanks to all the contributors!
+
+2012-04-25 Nathan Bird <nathan@acceleration.net>
+
+ * doc/threading-warnings.txt: Adding some notes from J.T.Klein
+ about the current state of thread-safety in clsql. This should be
+ incorporated into the main docs at some point.
+
+2012-04-25 Russ Tyndall <russ@acceleration.net>
+ * sql/expressions.lisp (output-sql): on rendering update/insert
+ expression values, ensure that *in-subselect* is bound to T
+ so that the values will be correctly paren delimited
+
+2012-04-24 Nathan Bird <nathan@acceleration.net>
+
+ * sql/expressions.lisp (output-sql): on mysql CREATE TABLE
+ statements use 'ENGINE=innodb' instead of 'Type=InnoDB'. This has
+ apparently been preferred since mysql 4.1 and mysql 5.5 removed
+ type as a valid keyword.
+
+2012-03-28 Russ Tyndall <russ@acceleration.net>
+
+ * sql/sequences.lisp: [A Patch FROM 2011-07-28 changed sequences.
+ They were previously prefixed with _CLSQL_SEQ_ but are now
+ suffixed with _CLSQL_SEQ. This is likely to break existing
+ implementations using the default sequence names
+
+ setting *old-sequence-names* to T, should force using the older
+ naming scheme
+
+2012-03-27 Ryan Davis <ryan@acceleration.net>
+
+ * sql/expressions.lisp: Fixed bug with subqueries in the where
+ clause of update-records and delete-records generating invalid
+ SQL. Previously subselects in where clauses would not have enough
+ parentheses, for example: "WHERE Id IN SELECT foo_id FROM bar"
+ vs. "WHERE Id IN (SELECT foo_id FROM bar)"
+ * tests/test-syntax.lisp: Added tests for using subqueries in the
+ where clause in update-records and delete-records. Moved asserts
+ in the test-output-sql/sql-ident-table function into the standard
+ test framework.
+ * doc/appendix.xml: added :connection-string to the information on
+ ODBC connection specs, and added example code connecting to ODBC
+ databases.
+
+2012-01-05 Nathan Bird <nathan@acceleration.net>
+
+ * db-odbc/odbc-dbi.lisp: handle sql decimal type in the same way
+ as numeric type-- read into a double float.
+
+2011-01-04 Russ Tyndall <russ@acceleration.net>
+ * sql/operations.lisp
+
+ Fixed bug reported by JTK related to the not-null sql-expression
+ especially as used in conjunction with the is operator.
+
+ Made null called with more than one argument throw an exception
+ instead of silently discarding all arguments past the first
+
+2012-01-04 Nathan Bird <nathan@acceleration.net>
+
+ * db-odbc/odbc-api.lisp (%sql-driver-connect): in the call to
+ odbc's SQLDriverConnect default the WindowHandle argument to a null ptr so
+ that connecting with :connection-string will work in the default
+ case of SQL_DRIVER_NOPROMPT.
+
+ I.e. you can now do things like:
+ (clsql:connect '("DsnName" "UserName" "" :connection-string
+ "DRIVER={FreeTDS};SERVER=...;DATABASE=...;UID=...;PWD=...;PORT=1433;TDS_Version=8.0;APP=clsql")
+ :database-type :odbc)
+
+ I believe the DsnName and Username at that point are only used when
+ printing the connection information.
+
+2011-12-20 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.1.1
+ * db-oracle/oracle.lisp: Typo correction (Elias Martenson)
+
+2011-12-19 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.1.0
+ * db-oracle/oracle.lisp: Change length function to
+ uffi:foreign-string-length to handle foreign encodings.
+ Thanks to Elias Martenson.
+
+2011-11-28 Russ Tyndall <russ@acceleration.net>
+ * db-odbc/odbc-api.lisp, tests/test-time.lisp
+
+ In ODBC backend, avoid going through the common lisp
+ universal-time type (because it lacks support for historic dates)
+
+ *time-conversion-function* renamed to *time-format*
+
+ Patch from: Francisco Vides Fernandez
+
+2011-10-18 Russ Tyndall <russ@acceleration.net>
+ * db-odbc/odbc-api.lisp
+
+ Added type specifier so MSSQL nvarchar fields can make it through
+
+2011-09-12 Russ Tyndall <russ@acceleration.net>
+ * sql/fddl.lisp sql/generic-postgres.lisp db-mysql/mysql-sql.lisp
+ sql/generic-odbc.lisp sql/odbc-api.lisp sql/odbc-dbi.lisp
+
+ Fix bugs in list-attribute(s|-types) where passing an escaped,
+ instead of unescaped column name, caused these functions to return
+ less data than they should have.
+
+2011-08-03 Kevin Rosenberg <kevin@rosenberg.net>
+ * CLSQL 6.0.0 released
+
+2011-07-28 Russ Tyndall <russ@acceleration.net>
+
+ * db-postgresql-socket3/: Added a backend that utilized postgres
+ socket api version 3. Uses the cl-postgres project (from
+ postmodern) to handle this. Allows use of parameterized /
+ prepared queries using clsql:command-object
+
+ * sql/{expressions,fddl, generic-postgresql, ooddl}.lisp:
+ Change how database identifiers are emitted to hopefully make this
+ less brittle, and more easily intuitable.
+
+ Previously every code path that wanted to emit a
+ database identifier was responsible for coercing what was provided
+ into a correctly escaped string. Sometimes two or three functions
+ in a row were trying to correctly quote and output that string. I
+ have tried to centralize this type coercion and logic into a
+ single code path.
+
+ everything should now call (escaped-database-identifier thing)
+ immediately before splicing a database identifier into string being
+ sent to the database
+
+ * sql/oodml.lisp: added method choose-database-for-instance, which
+ allows overriding which database connections are used based on
+ object type. Can be used to prevent connection conflicts in
+ multi-threaded environments
+
+ * sql/syntax.lisp: [foo bar] and [foo.bar] read into the same
+ clsql expression now (they used to be output the same, but after
+ the above database-identifier change, they were output separately
+
+ * test/: Better, more tests, better type coercion in tests and
+ throughout (%get-int)
+
+ [edit 2012-03-28 - RT]
+ * sql/sequences.lisp: Sequences were previously prefixed with
+ _CLSQL_SEQ_ but are now suffixed with _CLSQL_SEQ. This is likely
+ to break existing implementations using the default sequence names
+
+ setting *old-sequence-names* to T, should force using the older
+ naming scheme
+
+
+2011-07-16 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.4.0 release
+
+2011-06-27 Nathan Bird <nathan@acceleration.net>
+ * db-odbc/: memory management improvements: leak slower
+ * MSSQL: TOP + DISTINCT work together
+
+2011-06-20 Nathan Bird <nathan@acceleration.net>
+
+ * sql/time.lisp: Handle parsing already parsed objects.
+ * sql/oodml.lisp: raise exception if we generate an update with no
+ where clause; incorporate Ryszard Szopa's patch for functional
+ expressions in :order-by
+ * sql/expressions.lisp: (listify nil) => nil instead of (nil).
+ * db-odbc/: bugfixes for working with older versions of FreeTDS;
+ support for bigints that works on mssql and postgres
+ * MSSQL improvements: use top instead of limit, IDENTITY can be a
+ column constraint, clsql:date becomes 'smalldatetime'
+
+2011-06-20 Nathan Bird <nathan@acceleration.net>
+
+ * Version 5.3.4
+ * db-postgresql-socket/postgresql-socket-api.lisp: Addendum
+ to Otto Diesenbacher's patch that had a spurious write a 0
+ byte (to terminate string) that should have been just CCL.
+
+2011-06-12 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.3.3
+ * db-postgresql-socket/postgresql-socket-api.lisp:
+ Patch from Otto Diesenbacher for UTF8 encoded strings
+ for CCL. FIXME: The best patch would be to use the
+ user-set encoding from the database object and use
+ UFFI's encoding strings to/from octet vectors rather
+ than SB-UNICODE and CCL specific code in this file.
+
+2011-04-21 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/generics.lisp: Add defgeneric for new
+ database-last-auto-increment-id
+
+2011-04-01 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.3.2
+ * db-mysql/mysql-client-info.lisp: Add recognition of
+ version 6 of MySQL client library.
+ * sql/metaclass.lisp: Fix the fix in the reader conditional
+
+2011-03-30 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.3.1
+ * sql/metaclasses.lisp: Fix previous patch to work
+ on non-SBCL systems
+
+2011-03-29 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.3.0
+ * sql/metaclasses.lisp: Apply one-line patch to fix
+ for newer SBCL (thanks to Nikodemus Siivola)
+ * many_files: Applied multiple patches from Holger Schauer
+ to improve autoincrement capability.
+
+2010-10-24 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.2.0
+ * db-odbc/odbc-api.lisp: Change from SBCL-specific
+ to UFFI version of octets-to-strings. Reported by
+ Daniel Brunner <daniel@dbrunner.de>
+ * sql/oodml.lisp: Apply patch from Rupert Swarbrick
+ <rswarbrick@gmail.com>: Fix behaviour with auto-inc
+ primary keys.
+ * sql/expressions.lisp, tests/test-syntax.lisp: Apply
+ patch from Russ Tyndall to quote identifiers with space
+ or special character.
+
+2010-09-20 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.4
+ * sql/{pool,database}.lisp: Pass encoding argument to
+ connections made from pool and with reconnect.
+
+2010-08-16 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.3
+ * db-odbc/odbc-{api,dbi}.lisp: Commit patch from
+ Memet Bilgin to fix issue with unicode and ODBC.
+
+2010-08-16 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.2
+ * uffi/clsql-uffi.lisp: Commit patch from JT Klein fixing
+ invocation of uffi:convert-from-foreign-string macro. When
+ time allows, I'll investigate changing UFFI's macro to
+ a function call and then revert this patch.
+
+2010-06-15 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.1
+ * clsql-{uffi,mysql}.asd: Modify operation-done-p functions
+ to guard against change introduced in new ASDF traversing.
+
+2010-04-20 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.1.0 [DEPENDENCY UPGRADE: UFFI 2.x needed]
+ * clsql-uffi.asd: Depend on UFFI version >= 2.0
+ to support foreign encoding of strings.
+
+2010-04-16 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.6
+ * db-postgresql.lisp, sql/fddl.lisp: Fix typos [Thanks to
+ Walter C. Pelissero]
+ * sql/metaclasses.lisp: Work around type-check-function being set
+ during defclass expansion in SBCL [Thanks to Walter C. Pelissero]
+ * uffi/clsql-uffi.lisp: In call to uffi:convert-from-foreign-string,
+ Set null-terminated-p to T when length not specified.
+ [Thanks to Walter C. Pelissero]
+
+2010-03-21 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.5
+ * sql/fdml.lisp: Fix DO-QUERY to actually return the last value of
+ the body.
+
+2010-03-02 Nathan Bird <nathan@acceleration.net>
+ * doc/: Added a README on how to build doc; now builds on Ubuntu.
+ * sql/oodml.lisp: READ-SQL-VALUE now has explicit method for
+ handling double-floats and the default method will no longer
+ attempt to convert values that have already been converted.
+ * sql/syntax.lisp: Introduce file-enable-sql-reader-syntax which
+ enables the syntax for the scope of the file without trying to
+ keep track of the current syntax state.
+ * sql/pool.lisp: Introduce
+ clsql-sys:*db-pool-max-free-connections* which is a heuristic
+ threshold for when to disconnect a connection rather than
+ returning it to the pool.
+ * sql/pool.lisp: Check connections for validity before returning
+ to the user.
+
+2010-03-01 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/mysql-api.lisp: Remove spurious enumeration
+
+2010-02-16 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.4
+ * db-mysql/mysql-api.lisp: Fix mysql_options UFFI parameter list
+ * doc/ref-connect.xml: Document the MySQL options parameter as
+ part of the connection-spec.
+
+2010-02-15 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/mysql-{api,sql}.lisp: Support sending options
+ to MySQL using mysql_options, which occurs between the API calls
+ of mysql_init and mysql_real_connect.
+
+2010-02-11 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.3
+ * multiple-files: Further internationalization. Change
+ UFFI:CONVERT-RAW-FIELD and UFFI:CONVERT-FROM-FOREIGN-STRINGS
+ invocations to use the foreign character set encoding of the
+ database object. Requires UFFI v.1.8.6
+ * Makefile.common: Fix OS_DARWIN64 setting
+
+2010-02-11 Nathan Bird <nathan@acceleration.net>
+ * MSSQL: better support for fddl 'date type.
+
+2010-02-11 Kevin Rosenberg <kevin@rosenberg.net>
+ * Makefile.common, uffi/Makefile, db-mysql/Makefile:
+ Better support OS X Snow Leopard by building universal
+ (x86_64,i386) dylib bundles
+
+2010-02-08 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.2
+ * sql/database.lisp: Fix missing slot-accessor
+ (Thanks to Stelian Ionescu)
+ * sql/generics.lisp: Add missing keyword to defgeneric
+ (Thanks to Stelian Ionescu)
+
+2010-02-07 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.1
+ * sql/{base-classes,database}.lisp: Add encoding slot for
+ non-ASCII strings.
+ * db-mysql/mysql-sql.lisp: Use UFFI:FOREIGN-ENCODED-OCTET-COUNT.
+ Requires UFFI version 1.8.2 or above.
+
+2010-02-06 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 5.0.0: First release of CLSQL to formally and
+ consistently support non-ASCII strings with encoding of external
+ formats for SQL strings. UFFI version 1.8.1 is higher is required.
+
+ This change may introduce some differences in string handling for
+ people who are using non-ASCII encoded characters. Thus, because
+ of the risk of BACKWARD INCOMPATIBILITY, the major version number
+ was incremented with this release.
+
+2010-02-06 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/test-i18n.lisp: Bind UFFI:*DEFAULT-EXTERNAL-FORMAT*
+ for testing multibyte encodings.
+ * uffi/clsql-uffi.lisp: Changes for UFFI 1.7.4's new support
+ for encoding foreign strings with a specified external format.
+
+2010-02-06 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/metaclasses.lisp: If no declared slot type in
+ compute-lisp-type-from-specified-type, then use t as lisp type.
+ Issue noted when testing Clozure CL 1.4.
+
+2010-02-06 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/test-init.lisp: Turn off the benign console notices for
+ testing on postgres.
+
+2010-02-05 Kevin Rosenberg <kevin@rosenberg.net>
+ * clsql-test.asd, tests/{test-i18n,test-init}.lisp:
+ Load test-i18n.lisp and use its tests as long as 'uffi:no-i18n is
+ not present in cl:*features*. This requires UFFI 1.7.2 or above.
+
+2010-02-05 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/utils.lisp: Reading #\no-break_space causes an
+ error for non-unicode SBCL. Conditionalize read of
+ #\no-break_space for non-unicode SBCL and 8-bit string
+ Allegro.
+
+2010-02-03 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/test-init.lisp: Add *test-report-width* variable
+ and word-wrap skipped test reason field.
+
+2010-01-29 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.3.3
+ * clsql-cffi.asd: New file that causes CLSQL to use
+ CFFI-UFFI-COMPAT library rather than UFFI. Perform 'asdf:load-op
+ on CLSQL-CFFI rather than CLSQL system to use CFFI-UFFI-COMPAT.
+
+2010-01-29 Nathan Bird <nathan@acceleration.net>
+ * tests/*.lisp: A lot more tests and test setup tweaks.
+ * sql/expressions.lisp: output-sql on sql-relational-exp does
+ better arity checking now. (apply #'sql-and some-list) gives
+ better results.
+
+29 Jan 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Fix for UPDATE-RECORD-FROM-SLOTS for normalized
+ view classes
+
+28 Jan 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.3.2
+ * Change "normalise" from British spelling for consistency with
+ other American spellings in CLSQL.
+
+28 Jan 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/Makefile: Add directory for Fedora 11/12 on 64-bit
+ platform (Thanks to Michael Pheasant) and remove a 32-bit directory
+
+28 Jan 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.3.1
+ * sql/utils.lisp: Ensure Lispworks 6 lock is created in sharing mode
+
+20 Jan 2009 Nathan Bird <nathan@acceleration.net>
+ * Version 4.3.0
+ * Rewrite tests to use datasets
+
+07 Jan 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/utils.lisp: Changes to support Lispworks 6
+
+10 Dec 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.2.0
+ * doc/ref-ooddl.lisp: Add needed CDATA escapes
+ * doc/clsql.pdf, doc/html.tar.gz: Build new manuals with
+ normalized view classes.
+
+10 Dec 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ Large patch from Thijs Oppermann <thijso+clsql@gmail.com> to add
+ support for normalized view classes. When having view class that
+ inherit from others, CLSQL by default builds tab all the columns
+ from the parent in the child. This patch is meant to normali so
+ that a join is done on the primary keys of the concerned tables to
+ get a set.
+
+10 Dec 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/time.lisp: Patch from Oleg Tihonov to SYNTAX-PARSE-ISO-8601
+ to properly parse fractions of seconds.
+
+10 Dec 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/time.lisp: Patch from Oleg Tihonov to roll function
+ to properly use USEC argument.
+
+21 Nov 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.1.2
+ * Makefiles: On 64-bit Linux systems, try to build both 32 and 64-bit
+ interface libraries. This requires the installation of multiarch build tools
+ as well as 32-bit support libraries (libc, libz and libmysqlclient).
+
+04 Sep 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.1.1
+ * sql/fdml.lisp: Rework do-query to use supplied database
+ parameter when passed a sql-object-query
+ (thanks to JTK <jetmonk@gmail.com>)
+ * sql/generic-postgresql.lisp: Allow optional connect
+ parameters for postgresql databases (thanks to Stephen Compall)
+ * doc/ref-{clsql,connect}.xml, sql/db-interfaces.lisp:
+ Fix transposed letters (thanks to Stephen Compall)
+ * db-mysql/Makefile: Add directory for MacPorts mysql5 port
+ (thanks to Stephen Compall)
+ * sql/database.lisp: Have database-type default be
+ *default-database-type* (thanks to Desmond O. Chang)
+ * sql/transactions.lisp: Improved handlining of nested
+ transactions (thanks to Eli Naeher)
+ * sql/time.lisp: Commit patch to fix parse-iso-8601-duration
+ (thanks to Stephen Compall)
+ * sql/database.lisp: Use :verbose nil for asdf:operate
+ invocation (Thanks to Mackram Raydan)
+ * sql/metaclasses.lisp: Rework initialize-instance for
+ view-class-direct-slot-definition (thanks to Stephen Compall)
+
+31 Aug 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/db-interface.lisp: Fix spelling error (thanks to
+ David Thompson)
+ * clsql-mysql.asd/db-mysql/mysql-loader.lisp: Commit
+ patch from Andreas Franke to honor windows drive letter
+ when loading clsql_mysql C library.
+
+31 Aug 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.1.0
+ * db-mysql/mysql-{sql,api}.lisp,db-mysql/clsql_mysql.c:
+ Latest version of mysqlclient once again changed the C
+ structures from which the mysql backend reads data.
+ Rather than adding yet another structure definition which
+ is enabled by the client version as read by mysql-client-info.lisp,
+ the mysql backend has been re-written to ignore in the internal
+ C structures. Instead, C wrapper functions for slot access have
+ been added to clsql_mysql.c and are used by mysql-sql.lisp to
+ access the internals of C structures. This adds a bit of overhead,
+ but completely separates the lisp code from trying to keep up
+ with the continually changing internal C structure of mysql.
+ All tests in the test suite executed correctly with this change.
+
+31 Aug 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.6
+ * sql/database.lisp: Fix syntax on process-lock (thanks to
+ Stian Sletner)
+ * db-mysql/mysql-sql.lisp: Allow use of database parameter
+ in database-list function (thanks to Michael Pheasant)
+ * sql/oodml.lisp: Allow NULL values for floating-point fields
+ (thanks to Jan Rychter)
+
+02 Jun 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.5
+ * sql/database.lisp: Add process-lock for deleting database from
+ a pool (thanks to Ralf Mattes).
+
+25 Feb 2008 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.4
+ * sql/expressions.lisp: Remove stray form (thanks to Samuel Ward)
+
+12 Dec 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/expressions.lisp: Bind *in-subselect* when outputting
+ selections (patch from unknown source).
+
+11 Dec 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.3
+ * sql/metaclasses.lisp: Unify base-table processing by extracting
+ the correct code from initialize-instance :around into the helper
+ function set-view-table-slot. Call that function also in
+ reinitialize-instance :around replacing erroneous code discovered
+ by Josh Feinstein.
+
+17 Nov 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * BUGS: Add note about benefit of using configure file to create
+ Makefiles (suggestion from Joe Corneli)
+
+22 Oct 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.2
+ * db-postgresql/postgresql-sql.lisp: Patch from Gabriele Favalessa based on
+ Andrew Golding suggestion for more informative :error-id slot.
+
+17 Sep 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.1
+ * db-mysql/mysql-sql.lisp: Convert query to uffi cstring (thanks to
+ Albert Krewinkel).
+ * doc/Makefile, doc/html.xsl: Change output encoding from ISO-8859-1 to UTF-8
+
+14 Sep 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 4.0.0: Major version increase to warn of potential
+ backwards incompatibility.
+ * NEWS: Document potentional backward incompatible changes
+ * db-mysql/mysql-sql.lisp: Changes session SQL mode to ANSI immediately
+ after connecting. This may break compatibility with some applications
+ who are using non-ANSI features with MySQL. This change is required to
+ properly support view-classes using a string as their :base-table
+ attribute. This allows users to specify the case of table names.
+ This is feature is even more essential for MySQL itself since MySQL
+ uses case-sensitive table names. Use connection-based database-create
+ and database-destroy rather than trying to invoke command-line mysql
+ utility. Remove automatic upcasing of strings from list-indices.
+ * db-postgresql/postgresql-sql.lisp: Use connection-based
+ database-create and database-destroy rather than trying to invoke
+ command-line utilities.
+ * db-postgresql-socket/postgresql-socket-sql.lisp: Use
+ database-execute-command rather than execute-command for
+ database-{create,destroy}. Connect to postgres database
+ rather than template1 for those database creation/deletion.
+ * sql/metaclasses.lisp: Store the string value of :base-table if a
+ string is provided. Perform sql-escape at time of view-table name
+ creation.
+ * tests/test-init.lisp: Use "ej_join" as a string, rather than a
+ symbol, since "ej_join" is specified as :base-table. Clear the
+ expression output-cache in case the code for generating sql output
+ has changed.
+ * test/test-oodml.lisp: whitespace fix
+ * sql/ooddl.lisp: Use quoted string for primary key constraint if
+ table name is specified as a string.
+ * sql/oodml.lisp: Don't convert a string view-table name to database's
+ default case.
+ * sql/expressions.lisp: Properly handle table and attribute identifiers
+ when they are a string. Do not change case of symbols to match database
+ default case.
+ * sql/operations.lisp: Change multiword symbols to upper case.
+ * sql/fddl.lisp: Quote base-table if a string to preserve case
+ for drop-table and create-table.
+ * tests/test-syntax.lisp: Add tests of low-level string attribute
+ identifiers.
+
+20 Jul 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.6
+ * db-oracle/oracle-loader.lisp: Rework use of ORACLE_HOME directory
+ (problem noted on clsql-devel by icardo Boccato Alves)
+ * sql/pool.lisp: Remove incorrect keyword
+ * sql/database.lisp: Rework WITH-DATABASE to not make the database the
+ default database (reported by Saurabh Nanda and Chaitanya Gupta)
+ * doc/ref-connect.lisp: Update the documentation to WITH-DATABASE to
+ emphasis that make-default has a default value of nil.
+ * sql/transaction.lisp: Adjust commit/rollback messages for Microsoft
+ SQL Server. (patch from Nathan Bird)
+ * sql/metaclasses.lisp: Use finalize-inheritance hack on SBCL because
+ of trouble with def-view-class compilations (patch from Nathan Bird)
+
+15 Jul 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.5
+ * db-mysql/mysql-loader.lisp: Revert previous change since libmysql is
+ not dynamically loaded on Windows
+
+22 Jun 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.4
+ * db-mysql/mysql-loader.lisp: Do not bother loading libmysqlclient since
+ that library is dymically linked to clsql-mysql library. Thus, the mysql
+ library will be automatically loaded. This has only been tested on Linux,
+ thus far.
+
+29 May 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/test-fddl.lisp: Add :order-by for :fddl/big/1 as
+ reported by Ricardo Boccato Alves
+
+02 May 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/database.lisp: Add ability of WITH-DATABASE to return
+ multiple values (patch from Liam Healy)
+
+25 Apr 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.3
+ * doc/connect.xml: variable description fix by Liam Healy
+ * db-sqlite3/sqlite3-api.lisp, uffi/clsql-uffi-loader.lisp:
+ Apply patches from Marcus Pierce to reduce load-time warnings
+ * sql/package.lisp: Export iso-timestring as requested by Kevin Blaisdell
+
+23 Mar 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.2
+ * sql/db-postgresql-socket-api.lisp: Change read-socket-sequence to
+ disable wide characters for crypt salt sequence on SBCL, based
+ on patch from Lars Nostdal.
+
+26 Jan 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.1
+ * sql/pool.lisp: Test pooled connection when popped from
+ the pool to ensure the connection still works. Currently, implemented
+ only for MySQL.
+
+17 Jan 2007 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/Makefile: Add potential mysql directories
+
+31 Dec 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/metaclasses.lisp: Remove usused saved-initargs
+ * clsql.asd: Also check ~/.clsql-init.lisp at load-time (usually used to
+ push search libraries)
+
+30 Dec 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.8.0: BACKWARD INCOMPATABLE CHANGE!
+ * db-postgresql/postgresql-{api,loader,sql,package}.lisp:
+ Apply patch from Edi Weitz to avoid conflict with new Lispworks 5
+ POSTGRESQL package name. CLSQL's new package will be PGSQL, however
+ on non-Lispworks platforms, the nickname POSTGRESQL will still be
+ available. Applications directly using low-level POSTGRESQL package
+ are recommended to use the new PGSQL name.
+ * db-oracle/oracle-{api,sql}.lisp, sql/{expressions,loop-extension}.lisp,
+ Apply patch from Edi Weitz to reduce compiler warnings.
+
+28 Dec 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.9
+ * sql/expressions.lisp: Commit patch from Edi Weitz to
+ use *default-database* for SQL-OUTPUT if no database is
+ explicitly passed to function.
+ * uffi/clsql-uffi-loader.lisp: Change load order to first try
+ plain name/type before attempting user-specified paths (patch
+ from Edi Weitz)
+ * uffi/ptrbits.c: New file to return number of bits in an pointer
+ * uffi/Makefile: use intbits to name .so file based on bit size.
+ Build both 32-bit and 64-bit libraries on 64-bit platform.
+
+30 Nov 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.8
+ * db-sqlite3/sqlite3-sql.lisp: Commit patch from Edi Weitz fixing
+ error display
+
+16 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.7
+ * db-postgresql/postgresql-sql.lisp: Remove
+ uffi:convert-foreign-to-native wrapper since using cstring for
+ PQresultErrorField
+
+16 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.6
+ * db-postgresql/postgresql-api.lisp: Fix UFFI return type for
+ PQresultErrorField foreign function.
+
+16 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.5
+ * doc/intro.xml: Update supported platforms.
+ * db-postgresql/postgresql-{package,api,sql}.lisp: Apply
+ changes from Andew Golding to use a more-specific error code
+ from PostgreSQL than the generic fatal error code of the result set.
+
+03 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/syntax.lisp: Commit patch from Marcus Pearce to improve
+ readtable modifications
+
+02 Oct 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/syntax.lisp: Check that original reader syntax functions
+ stored before trying to restore them.
+
+20 Sep 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/syntax.lisp: Apply patch from Marcus Pearce to correctly
+ display sql reader syntax.
+
+06 Sep 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * uffi/clsql-uffi-loader.lisp, db-mysql/mysql-loader.lisp: Change from using *features*
+ to decide on 64-bit platform and check size of most-positive-fixnum instead.
+ Needed to support clisp amd64.
+
+03 Sep 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.1
+ * sql/metaclasses.lisp: Rework slot type's to be more AMOP
+ compatibile. Add warning for a metaclass condition that should
+ not occur.
+ * sql/time.lisp: Fixed symbol case inconsistency causing problem
+ in AllegroCL's modern lisp. First sign of bug noted by
+ Joel Reymond on clsql-devel.
+ * clsql.asd: Make time.lisp depend on utils.lisp
+
+31 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/mysql-loader.lisp: Apply patch from Marcus Pearce to push
+ *library-file-dir* to CLSQL's library path.
+
+30 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.7.0: New platforms supported: SBCL/Win32, CLISP/Win32, CLISP/Cygwin,
+ CLISP/Linux x86, CLISP/Linux amd64, OpenMCL amd64. CLISP support requires the
+ latest development versions of CLISP, cffi, and cffi-uffi-compat packages.
+ * Makefile.common: Add OS detection
+ * uffi/make.sh, db-mysql/make.sh: Remove files
+ * uffi/Makefile, db-mysql/Makefile: Add support for cygwin compilation.
+ Refactor to remove need to make.sh shell scripts.
+ * clsql.asd: Add support for loop extensions for clisp. Support clisp via cffi.
+ * sql/loop-extension.lisp: Define loop-record-iteration-path in CLSQL-SYS
+ package rather than CL-USER. Add support for ansi-loop on clisp.
+ * sql/ansi-loop.lisp: New file to support iteration on clisp.
+ * db-mysql/mysql-api.lisp: Remove old mysql C API functions that no
+ longer exist in the mysql client library.
+ * doc/ref-fdml.lisp: Correct default field-type.
+ * sql/expressions.lisp: Use database-output-as-type if value exists for boolean output.
+ Fixed bug with noted with MySQL 5.0.24 and boolean values.
+
+28 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.7
+ * sql/oodml.lisp: Remove high debugging level declaration
+
+14 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.6
+ * sql/generic-postgresql.lisp: Fix assumption that postgres user id
+ is always 1. Fixes problem noted with PostgreSQL 8.1.
+
+12 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.5
+ * sql/generic-postgresql.lisp: Add slot for has-table-pg_roles to
+ lazily cache if pg_roles tables exist. Selectively use SQL from
+ Joel's previous patch if pg_roles table exists. Should now work
+ with both postgresql 7.4 and 8.x.
+
+12 Aug 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.4
+ * clsql.asd: Add support for c:\etc\clsql-init.lisp as possible
+ local initialization file
+ * db-mysql/mysql-loader.lisp: Remove former method of using pathnames
+ as name candidates.
+ * db-odbc/odbc-api.lisp: Work-around Allegro/Windows FFI bug
+ that generates incorrect integer return type
+ * sql/generic-postgresql.lisp: Revert patch from Joel Reymont since
+ it fails on versions of postgresql that lack the pg_role table
+
+07 Jul 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.3
+ * sql/transactions.lisp: Important typo fix from Alexey Antipov
+ for database-start-transaction
+
+04 Jul 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.6.2
+ * db-postgresql/postgresql-sql.lisp: Apply patch from Vladimir Sekissov
+ to close connection when failing to connect to database.
+ * sql/generic-postgresql.lisp: Apply patch from Joel Reymont
+ to avoid dropping system views.
+ * sql/oodml.lisp: Apply patch from Joel Reymont to avoid listify
+ a nil value [patch sponsored by Flektor]
+ * clsql-uffi.asd, uffi/make.sh: Patch from Richard Kreuter
+ for netbsd compilation
+
+15 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/ref-ooddl.xml: Add documentation for :db-reader and :db-writer
+ slots for def-view-class macro [as reported missing by Thomas Fischbacher].
+
+09 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-postgresql-socket/postgresql-socket-api.lisp:
+ Apply patch from Marko Kocic adding the socket creation
+ function needed for CLISP.
+
+08 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version: 3.6.0 (requires UFFI v1.5.11 or greater)
+ * db-oracle/metaclasses.lisp: Patch from James Bielman for
+ checking slot constraints.
+ * db-oracle/oracle-{api,sql}.lisp: Avoid dead pointers on loading
+ saved openmcl images (based on patch from James Bielman)
+
+06 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/ref-fdml.xml: Documentation patch from Marcus Pearce for limit keyword
+
+03 May 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.7
+ * sql/time.lisp: Apply patch from Aleksandar Bakic to extended
+ duration parsing and unparsing to include year and month.
+ * clsql-uffi.asd, uffi/clsql-uffi-loader.lisp: Apply patch from Nathan Bird
+ improving library search on Windows platform.
+ * doc/ref-fdml.xml, /doc/TODO, tests/test-fdml.lisp, tests/test-init.lisp:
+ Apply patch from Marcus Pearce documenting and testing :limit and :offset for SELECT
+
+20 Mar 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.6
+ * clsql-postgresql-socket.asd,
+ * db-postgresql-socket/postgresql-socket-package.lisp:
+ Use the cl-md5 package on all platforms. Based on report
+ from Alan Caulkins.
+
+09 Mar 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.5
+ * uffi/make.sh, db-mysql/make.sh: Add GNU uname
+
+28 Feb 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.4
+ * sql/metaclasses.lisp: Apply patch from Friedrich Dominicus to
+ fix accessor for new versions of SBCL
+ * db-oracle/oracle-sql.lisp: Apply patch from James Bielman
+ to improving parsing of time.
+ * db-db2/db2-constants.lisp: Change NULL_HANDLE has suggested
+ by Harold Lee.
+ * db-oracle/oracle-dbi.lisp: Add support for SQL BIT type
+ as noted by Russ Tyndall.
+
+16 Jan 2006 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.3
+ * sql/time.lisp: Commit patch from Aleksandar Bakic
+ to properly handle destructive flag
+ * db-postgresql-socket/postgresql-socket-api.lisp: Apply patch
+ from Steven Harris for socket files with SBCL.
+ * sql/pool.lisp: Apply patch from Vladimir Sekissov so that
+ new connections added to the pool do not become the *default-database*
+ * sql/connect.lisp: Optionally set *default-database* for pooled
+ connection when make-default is generalized true.
+
+23 Dec 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.1
+ * sql/expressions.lisp: Ensure table names are properly escaped
+ before comparing -- fixes bug reported by Asbjørn Bjørnstad
+ on CLSQL-Devel.
+
+02 Dec 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/generic-postgresql.lisp: improved decoding of table attribute
+ parameters [from Vladimir Sekissov]
+ * sql/metaclasses.lisp: check that metaclass is standard-db-class or
+ it's subclass to prevent adding standard-db-object to supers if
+ somebody in the path has it already when metaclass inherited from
+ standard-db-class. [from Vladimir Sekissov]
+
+26 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.5.0
+ * tests/test-init.lisp, tests/test-fddl.lisp, tests/test-fdml.lisp,
+ * db-odbc/odbc-api.lisp, db-odbc/odbc-ff-interface.lisp,
+ * db-odbc/odbc-package.lisp, db-odbc/odbc-constants.lisp
+ * db-odbc/odbc-dbi.lisp, db-odbc/odbc-sql.lisp
+ * sql/fddl.lisp, sql/generic-odbc.lisp, sql/db-interface.lisp
+ * sql/transaction.lisp, sql/package.lisp, sql/time.lisp
+ Commit patch from Dominic Robinson providing support for
+ Microsoft SQL Server
+ * doc/csql.lisp: Fix typo in slot name
+
+24 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.7
+ * sql/time.lisp: Commit patch from Aleksandar Bakic for
+ correct handling of decode-time usec value
+ * clsql-mysql.asd: Commit patch from Harald Hanche-Olsen to
+ correct the name of the shared library file.
+
+16 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * version 3.4.6
+ * sql/metaclasses.lisp: Avoid calling change-class on
+ effective-slot-definitions on sbcl to conform to sbcl 0.9.6.38
+ changes.
+
+15 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.5
+ * sql/expressions.lisp: Patch from James Biel to add subselects
+
+14 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.4 [ Requires UFFI 1.5.7+]
+ * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel
+ to fix lifetime of foreign strings for Oracle calls
+
+13 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.3
+ * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel
+ to improve performance
+
+12 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.2
+ * clsql-uffi.asd: Patch from James Biel improving loading
+ * db-oracle/oracle-{api,sql}.lisp: Patch from James Biel
+ to support 64-bit lisps
+
+12 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4.1
+ * sql/expressions.lisp: Escape numbers to SQL strings
+ at expression level.
+
+11 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.4: Add MySQL 5 support
+ * db-mysql/mysql-client-info.lisp: Recognize MySQL 5
+ * db-mysql/mysql-sql.lisp: Add support for views in MySQL 5
+ * doc/mysql-macosx-notes.txt: New document from Martin Brooks
+
+7 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * src/time.lisp: Apply patch from Aleksandar Bakic for ROLL
+ function.
+ * BUGS: Added report for update-object-joins by Aleksandar Bakic
+
+4 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.3.4 [UFFI >= 1.5.5 needed]
+ * db-odbc/odbc-api.lisp: Apply patch from Yaroslav Kavenchuk
+ to add missing #\' character.
+ * clsql.asd: Add support for CLSQLINIT environmental variable,
+ based on patch from Yaroslav Kavenchcuk. New version of UFFI
+ required.
+
+30 Oct 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.3.3
+ * sql/oodml.lisp: Apply patch from Drew Crampsie to fix
+ update-objects-joins when using the :target-slot attribute
+
+26 Oct 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.3.2
+ * sql/expressions.lisp: Avoid parenthesis on multiple group-by fields
+ as noted by Harald Hanche-Olsen.
+ * tests/test-syntax.lisp: Add test for multiple field group-by
+
+25 Oct 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.3.1
+ * sql/time.lisp: Commit patch from Alan Shields to
+ display escape string on wall-time display only when *print-escape*
+ is true.
+
+11 Oct 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/metaclasses.lisp: Commit patch from Will to
+ properly set db-reader slot in effective-slot-definition
+ * sql/expressions.lisp: Commit patch from Alan Shields
+ adding make-load-form for sql-relational-exp
+ * sql/generic-postgresql.lisp: Commit patch from Aleksandar Bakic
+ adding support for new NUMBER type
+
+17 Sep 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.3.0
+ * sql/time.lisp: Apply patch from Alan Shields adding DATE type.
+ * doc/ref-ooddl.xml: Documentation of new type
+ * notes/add-type-hints.txt: New file from Alan Shields
+ * sql/fddl.lisp: Add owner keyword to drop-table as suggested
+ by Francis Leboutte
+ * db-postgresql-socket/postgresql-socket-sql.lisp: Fix database-probe
+ as noted by Francis Leboutte. Similar fix applied to db-mysql and
+ db-postgresql.
+ * sql/expressions.lisp: Allow string table names for output as
+ contributed by Francis Leboutte.
+ * examples/clsql-tutorial.lisp: Support :postgresql-socket as noted
+ by Francis Leboutte
+
+08 Sep 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.2.4
+ * doc/into.xml: Change download from ftp to http protocol
+
+08 Sep 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.2.3
+ * db-oracle/oracle-sql.lisp: Correction for v3.2.2 changes by
+ Edi Weitz
+
+08 Sep 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.2.2
+ * db-oracle/oracle-sql.lisp: Add check for zero increment as
+ suggested by Edi Weitz. Add missing database-sequence-last function
+ as noted and tested by Edi Weitz. Ensure that UFFI buffer is freed
+ in handle-oci-error. Add unwind-protect to sql-stmt-exec. Free UFFI
+ stmthp object when query cursor is freed with OCI.
+
+22 Aug 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * uffi/clsql-uffi-loader.lisp: Commit patch from astor@pvv.ntnu.no to
+ display search path when error occurs loading foreign library.
+
+05 Jul 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.2.1
+ * doc/appendix.xml: Incorporate Edi Weitz's notes into documentation
+ with changes to support case-sensitive lisp implementations. Add
+ paragraph on using /etc/clsql-init.lisp site initialization file.
+ * clsql.asd: Load file /etc/clsql-init.lisp, if it
+ exists, after package is loaded to set site-specific configuration
+
+2005-06-24 Edi Weitz <edi@agharta.de>
+ * sql/db-interface.lisp: Added new special variable
+ *FOREIGN-LIBRARY-SEARCH-PATHS* and function PUSH-LIBRARY-PATH to
+ manipulate it.
+ * sql/package.lisp: Export these.
+ * uffi/clsql-uffi-loader.lisp: Used new variable; changed order of
+ libs.
+ * db-mysql/mysql-loader.lisp: Changed order of libs.
+
+09 Jun 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.2.0: REQUIRES UFFI VERSION 1.4.38 OR HIGHER
+ * clsql-mysql.asd: Renamed clsql/mysql interface library from
+ mysql to clsql_mysql
+ * clsql-uffi.asd: Renamed clsql/uffi interface library from
+ mysql to clsql_uffi
+ * uffi/clsql_uffi.c: Renamed from uffi.c
+ * db-mysql/clsql_mysql.c: Renamed from mysql.c
+ * db-mysql/Makefile, db-mysql/Makefile.msvc, db-mysql/mysql-loader.lisp: Rename shared library
+ * uffi/Makefile, uffi/Makefile.msvc, uffi/uffi-loader.lisp: Rename shared library
+ * db-*/*-loader.lisp: Commit big patch from Edi Weitz to remove
+ absolute pathnames when searching for foreign libraries.
+ foreign library loading.
+
+07 Jun 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.16
+ * db-mysql/mysql-api.lisp: Commit patch from Espen Wiborn
+ to support UTF-8 on sbcl unicode.
+
+18 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.15
+ * sql/time.lisp: Fix bug in roll that caused failure in test suite
+
+17 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.14
+ * sql/oodml.lisp: Properly handle when db-writer is NIL
+
+11 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/expressions.lisp: Avoid using simple-string declaration when
+ a non-simple string may be encountered. [issue noted by
+ will@cesmail.net] Add a simple-string declaration for a local
+ string generated.
+
+06 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Change db-writer and db-reader processing to accept
+ a symbol as well as function to serve as a function designator
+ [issue noted by will@cesmail.net]
+
+05 May 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.13
+ * sql/time.lisp: Fix error in submitted patch which caused error
+ in timestrings with 19 or less characters.
+
+27 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.12
+ * db-postgresql-socket/postgresql-api.lisp: Commit patch from Tim Howe
+ to fix read-socket-sequence on non-sb-unicode sbcl.
+
+26 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.12
+ * sql/time.lisp: Commit patch from Daniel Lowe which adds support
+ for fractional seconds which is required by PostgreSQL
+ * db-postgresql/postgresql-loader.lisp: Add library path for Windows
+
+25 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/csql.lisp: Update URL for "SQL for Web Dummies" [Sean Champ]
+
+24 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.11
+ * sql/syntax: Commit patch from Alan Shields to supress reader
+ macros when *read-supress* is T.
+
+13 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.10
+ * db-postgresql-socket/postgresql-socket-api.lisp: Commit patch
+ from Janis Dzerins to support unicode on SBCL
+ * sql/syntax: Commit patch from Alan Shields to improve reporting
+ of invalid syntax statements.
+
+06 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.9
+ * db-mysql/mysql-sql.lisp: Add port to connection specification
+ based on patch from Dave Watson
+ * doc/appendix.xml: Document MySQL port parameter to connection spec
+
+03 Apr 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.8
+ * sql/time.lisp: Patch from Keith James for parsing ISO-8601 timestamps
+
+18 Mar 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Add missing database argument [Patch from
+ Alan Caulkins]
+
+03 Mar 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Improve database priority in
+ update-records-from-instance [Patch from Walter C. Pelissero]
+
+17 Feb 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.7
+ * sql/package.lisp: Export database-reconnect from clsql-sys
+
+08 Feb 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Use explicit database in fault-join-target-slot
+ [Patch from Walter Pelissero]
+
+29 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-postgresql/postgresql-loader.lisp: Add additional
+ directories to Fink on darwin [patch from Cyrus Harmon].
+
+29 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.6
+ * sql/oodml.lisp: Clear view instance cache when delete-instance-records
+ is invoked [suggested by Alan Shutko].
+ * uffi/clsql-uffi-loader.lisp: Improvements for loading with SBCL X86-64
+ * sql/metaclasses.lisp: Don't change case of a :base-table string supplied
+ to def-view-class [fix suggested by Fred Gilham].
+
+25 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/*.lisp: Change Vladamir to Vladimir per Cyrus Harmon's
+ suggestion.
+ * sql/utils.lisp: Fix unnecessary consing noted by Fred Gilham.
+ * doc/*.xml: Fix spelling of Vladimir
+
+24 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/bookinfo.xml, doc/csql.xml, doc/intro.xml: Update links
+ now that LispWorks is an independant company [noted by
+ Martin Thornquist]
+
+22 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-sqlite/sqlite-sql.lisp, db-sqlite3/sqlite3-sql.lisp:
+ Better support for 64 bit environments
+
+05 Jan 2005 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.5
+ * sql/metaclass.lisp: Make t the default value of :set
+ [noted by Cyrus Harmon]
+
+28 Dec 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.4
+ * uffi/clsql-uffi.lisp: Add support for unsigned integers
+ * db-mysql/mysql-sql.lisp: Add support for detecting/marking
+ unsigned integers. Apply patch from Yannick Gingras to
+ implement database-sequence-last.
+
+26 Dec 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/ref-fdml.lisp: Fix variable tag name to varname
+ [noted by Eduardo Munoz]
+ * db-mysql/mysql-loader.lisp: Handle library paths for 64-bit systems
+
+06 Dec 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.2
+ * sql/ooddl.lisp: Accept patch from Klaus Harbo for
+ update-object-joins.
+ * sql/metaclass.lisp: Remove unnecssary (and runtime error
+ causing) change-class invocation when running on CLISP.
+ * db-mysql/mysql-api.lisp: Commit patch from Paul Werkowski
+ to fix structure name.
+ * sql/database.lisp: More specific error message with trying
+ to use a database value of NIL.
+ * sql/expressions.lisp: Accept a string for the table name
+ in (sql-output sql-delete database) [suggested by Ed Symanzik].
+
+11 Nov 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.1
+ * sql/generic-postgresql.lisp: Commit patch from Chris Capel to
+ ignore columns which have been dropped.
+ * clsql-postgresql-socket.asd, db-postgresql-socket/postgresql-socket-package.lisp:
+ Use sb-md5 package on SBCL, recommended by Chris Capel
+
+09 Nov 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.1.0 released: New SQLite3 backend by Aurelio Bignoli
+ * doc/appendix.xml: Document SQLITE3 backend, patch by Aurelio Bignoli
+ * sql/operations.lisp: Add lower and upper SQL functions [Daniel Lowe].
+
+08 Nov 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/expressions.lisp: Fix slot name [thanks to Daniel Lowe]
+
+31 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * clsql-sqlite3, db-sqlite3/*: NEW BACKEND
+ contributed by Aurelio Bignoli
+
+23 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Commit patch from Walter Pelis
+ to use an object's database for a select on its slot.
+
+20 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * uffi/uffi.c, uffi/clsql-uffi.lisp: Commit patch from
+ Aurelio Bignoli to fix negative 64-bit integers
+
+07 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/mysql.c: Fix parameters in bind_param call
+
+07 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * uffi/clsql-uffi.lisp: Add support for :blob result-type
+ * db-mysql/mysql-sql.lisp: Add support for :blob
+ result-type
+
+04 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/mysql-sql.lisp, db-db2/db2-sql.lisp: Add
+ missing quotes for types in code that is still in development
+ (thanks to Joerg Hoehle)
+
+03 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.8 released
+ * db-sqlite/sqlite-*.lisp: Apply patch from
+ Aurelio Bignoli with improvements
+
+01 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * multiple: Apply patch from Joerg Hoehle with multiple
+ improvements.
+
+01 Oct 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.7 released
+ * sql/oodml.lisp, sql/package.lisp, db-mysql/mysql-objects.lisp:
+ Add support for mediumint.
+ * sql/metaclass.lisp: Rework CLISP MOP handling
+ * sql/ooddl.lisp: Work-around to have CLISP finalize standard-db-class
+
+28 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/metaclass.lisp: Support CLISP's attribute name
+ for the type field in direct class slots
+
+27 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.6 released
+ * BUGS: New file. Document suspected SIGPIPE
+ interaction between SBCL and libpq used in
+ postgresql backend.
+ * doc/ref-fdml.lisp: Document the :caching and :refresh
+ keywords of the SELECT function.
+ * doc/ref-ooddml.lisp: Document the new *default-caching*
+ variable.
+ * sql/package.lisp: Export *default-caching*
+ * sql/oodml.lisp: Use *default-caching* to
+ control default caching behavior.
+
+21 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.5 release
+ * doc/appendix.xml: Add note about loading Oracle8 version
+ * db-oracle/oracle-loader.lisp: Support Oracle8 based on
+ data from David Young.
+
+10 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/Makefile, doc/catalog-darwin.xml: Apply
+ patch from Cyrus Harmon for building docs on Mac OS X
+ * sql/package.lisp: Add new (pre-release) clisp MOP package
+
+09 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.4 Release
+ * multiple: Remove superfluous quotes in UFFI def-type
+ and def-foreign-type forms.
+
+07 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.3 Release
+ * db-postgresql-socket/postgresql-socket-api.lisp: Commit patch
+ from Tagore Smith to call force-output after sending authentication
+ * db-odbc/odbc-api.lisp: Move ODBC v3 conversons
+ * db-odbc/odbc-sql.lisp: Load mysql or postgresql package when connecting
+ to a database of that type so that functions that indicate capabilities of
+ database are available.
+
+02 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-odbc/odbc-api.lisp: More conversions to ODBC v3
+
+02 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.2 Release
+ * TODO: Add note about ODBC on Windows
+ * db-odbc/odbc-loader.lisp: Add /winnt/system32/ to
+ search directories
+ * db-odbc/odbc-ff-interface.lisp: Change the return type
+ of SQLSetEnvAttr to :short
+
+02 Sep 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * examples/clsql-tutorial.lisp: added missing initarg for the COMPANYID
+ slot of the employee View Class definition [reported by Franz Deuzer].
+
+01 Sep 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.1 Release
+ * tests/test-init.lisp: Add second join class to employee-address
+ to test a class with two join slots.
+ * sql/oodml.lisp: Fix find-all function for a class with multiple
+ join slots
+ * TODO: Remove need to test/fix multiple join classes
+
+27 Aug 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-mysql/Makefile, db-mysql/mysql-loader.lisp: accept patch
+ from Jon Buffington for file locations on Darwin.
+
+17 Aug 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/db-interface.lisp: Improve messages when functions
+ are passed a database object, but the method is not specialized
+ for that database type.
+ * sql/metaclasses.lisp: Fix inline declaration (reported by
+ Cyrus Harmon)
+
+14 Aug 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * TODO: Add bug report about SQL generation with a table
+ containing two join slots.
+ * sql/oodml.lisp: Add optional size to VARCHAR type
+
+3 Aug 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 3.0.0 Release
+ * sql/expressions.lisp: Change declaration that
+ caused error on openmcl
+ * db-aodbc/aodbc-sql.lisp: Fix storage location
+ of odbc connection. Specialize database-query since
+ dbi's :types keyword is different than generic-odbc's
+ :result-types keyword
+ * sql/db-interface.lisp: Add warnings for methods
+ not specialized by a db backends
+ * tests/test-fddl.lisp: Fix case of symbols to support
+ case-sensitive Allegro
+ * db-oracle/oracle-sql.lisp: Rework errbuf in handle-oci-error
+ * tests/test-init.lisp: Note that odbc driver for postgresql
+ doesn't properly handle table ownership
+ * LATEST-TEST-RESULTS: update with version 3.0.0
+
+1 Aug 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/expressions.lisp: conditionalise escaping of backslash in
+ generated SQL strings on backend.
+ * tests/test-fdml.lisp: test for escaping of backslash.
+ * sql/oodml.lisp: minor tidying in FIND-ALL.
+
+26 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * NEWS: Initial 3.0 announcement draft
+ * README: Expand acknowledgements of incorporated projects
+ * CONTRIBUTORS: Further document Marcus Pearce contributions
+
+23 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/oodml.lisp: add DATABASE-OUTPUT-SQL-AS-TYPE method specialisation
+ to print floats with the exponent markers removed.
+ * tests/test-oodml.lisp: add tests for updating records with floats.
+
+22 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * db-oracle/oracle-sql.lisp: enable :OWNER :ALL in DATABASE-LIST-* for
+ CommonSQL compatibility.
+ * tests/test-init.lisp: skip test :FDDL/TABLE/6 on Oracle since
+ this column constraint syntax is not supported.
+ * tests/test-fddl.lisp: change column indexed in test :FDDL/INDEXES/2
+ from EMPLID to LAST_NAME since Oracle complains that EMPLID is already
+ indexed.
+
+17 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * doc/ref-fdml.xml: document CACHE-TABLE-QUERIES.
+ * tests/test-fdml.xml: add test for CACHE-TABLE-QUERIES.
+ * doc/ref-ooddl.xml: minor changes to syntax and examples entries
+ for uniformity.
+ * doc/ref-oodml.xml: add examples for OODML.
+ * sql/oodml.lisp: ensure SELECT passes on its REFRESH argument
+ to FIND-ALL.
+ * sql/metaclasses.lisp: update docstrings.
+ * tests/test-init.lisp: change :db-constraints for emplid to
+ (:not-null :unique) as a temporary test for multiple column constraints
+ in DEF-VIEW-CLASS.
+ * tests/test-oodml.lisp: add tests for *DB-AUTO-SYNC* and
+ return type of (SETF SLOT-VALUE-USING-CLASS).
+ * TODO, doc/TODO: remove items done.
+ * README: fix typo.
+
+16 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/oodml.lisp: on Lispworks, use weak valued hash tables for
+ object caching.
+ * sql/expressions.lisp: Fix SQL generation for the symbol NIL.
+
+16 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/expressions.lisp: reactivate caching of generated SQL strings.
+ Move methods for DATABASE-OUTPUT-SQL, OUTPUT-SQL and SQL-HASH-KEY
+ here from sql/fdml.lisp. Rationalise behaviour of SQL-OUTPUT,
+ OUTPUT-SQL and DATABASE-OUTPUT-SQL.
+ * sql/fdml.lisp: remove disabled method ADD-STORAGE-CLASS. Move
+ methods for DATABASE-OUTPUT-SQL, OUTPUT-SQL and SQL-HASH-KEY to
+ sql/expressions.lisp.
+ * sql/ooddl.lisp: replace call to DATABASE-OUTPUT-SQL in
+ DATABASE-PKEY-CONSTRAINT with call to SQL-OUTPUT.
+ * sql/generics.lisp: add docstrings.
+
+15 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.16
+ * db-oracle/oracle-sql.lisp: Remove OpenMCL specific
+ code in favor of fixing UFFI with James Bielman's patch
+
+14 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.15
+ * db-oracle/oracle-sql.lisp: Apply patch for OpenMCL/OSX
+ from James Bielman
+
+14 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * README, INSTALL: update URLs. Minor updates to descriptions.
+ * tests/README: remove stuff about editing contexts.
+
+12 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-oracle/oracle-objects.lisp: Change *default-varchar-length* to
+ *default-string-length*
+
+12 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * tests/test-syntax.lisp, tests/test-fdml.lisp: add tests for escaping
+ of single quotes.
+ * tests/test-fddl.lisp: add tests for column and table constraints
+ in CREATE-TABLE. Add test for OWNER keyword parameter to
+ LIST-TABLES (assuming same underlying machinery in other FDDL
+ functions).
+ * tests/test-init.lisp: restrict above test to postgresql and oracle.
+
+12 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-sqlite/sqlite-sql.lisp: Fix condition as reported by Aurelio
+ Bignoli.
+
+11 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp, sql/package.lisp, doc/ref-ooddl.lisp, db-mysql/mysql-objects.lisp: Add tinyint type
+
+10 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.14
+ * doc/*.xml: documentation additionals and fixes so
+ that docbook passes xmllint.
+
+9 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.13
+ * sql/fdml.lisp: Apply patch from Kim Minh Kaplan
+ to change escaping of single quotes. Mild optimizations
+ for escaped string output.
+ * doc/ref-ooddl.lisp: documentation additions
+ * doc/ref-oodml.lisp: Add purpose to functions
+ * TODO: Add need to test single quote escaping
+
+7 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/ref-ooddl.xml, doc-ref-oodml.xml: documentation additions
+ * sql/ooddl.lisp: Added SMALLINT type
+ * sql/generic-postgresql.lisp: Added INT2 as SMALLINT type
+ * db-mysql/mysql-objects.lisp: Added SMALLINT type
+ * sql/package.lisp: Export SMALLINT
+ * sql/expressions.lisp: Add MYSQL's UNSIGNED and ZEROFILL as
+ db-constraints
+
+6 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/expressions.lisp: add AUTO-INCREMENT and UNIQUE to the
+ recognised column constraints for CREATE-TABLE and the :DB-CONSTRAINTS
+ View Class slot option.
+ * sql/ooddl.lisp: fix bug preventing the :DB-CONSTRAINTS View Class
+ slot option accepting a list of constraints [reported by Travis Cross].
+ * doc/ref-fddl.xml: add some examples of specifying column and
+ table constraints to the documentation for CREATE-TABLE.
+ * TODO: add note about adding tests for table/column constraints. Add
+ optimisation note about using cached attribute types in insert/update
+ operations.
+
+3 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * doc/appendix.xml: add notes about idiosyncrasies/unsupported
+ features and so on the documentation for each backend.
+ * doc/TODO: remove items done.
+ * doc/ref-transaction.xml: add note in introduction about
+ autocommit mode as a difference from CommonSQL.
+ * doc/ref-syntax.xml: add notes about SQL syntax state functions
+ being macros in CLSQL. Add note about SQL operators which are
+ CLSQL extensions.
+
+2 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * Version 2.11.12 released
+ * doc/ref-recording.xml: document SQL I/O recording.
+ * doc/ref-prepared.xml: new file for documenting prepared statements.
+ * doc/clsql.xml: comment out include for large object and CLSQL-SYS
+ documentation.
+ * doc/ref-conditions.xml: complete documentation of condition system.
+ * doc/global-index.xml: add symbols from condition system and remove
+ those from LOB and prepared statement APIs.
+ * doc/ref-fdml.xml: complete documentation of FDML.
+ * doc/glossary.xml: add View Class.
+ * doc/TODO: remove items done.
+ * sql/conditions.lisp: make SQL-CONDITION a parent of SQL-ERROR.
+ * sql/package.lisp: remove FOR-EACH-ROW from exports list. Export
+ additional slot accessors for condition classes.
+
+1 Jul 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * doc/ref-ooddl.lisp: Add documentation
+ * doc/ooddl.lisp: Move *DEFAULT-VARCHAR-LENGTH* from oodml.lisp
+ and rename to *DEFAULT-STRING-LENGTH*. Add docstring.
+ * doc/oodml.lisp: Rename references to new name of
+ *DEFAULT-STRING-LENGTH*
+
+1 Jul 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * doc/ref-transaction.xml: document transaction handling.
+ * sql/transaction.lisp: ensure that COMMIT, ROLLBACK and
+ START-TRANSACTION return NIL as per the CommonSQL spec. Modify
+ ADD-TRANSACTION-{ROLLBACK|COMMIT}-HOOK such that a database is
+ passed as a keyword argument defaulting to *DEFAULT-DATABASE*.
+ Added docstrings.
+
+30 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * doc/ref-fdml.xml: document the FDML.
+ * doc/ref-fddl.xml: move documentation for TRUNCATE-DATABASE here.
+ * sql/ooddl.lisp: moved *default-varchar-length* to here from
+ oodml.lisp and renamed to *default-string-length*
+
+23 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Add keyword :transactions to def-view-from-class
+ to allow specifying transactionless table creation
+ * doc/ref-oodml.lisp: Add new keyword to signature of
+ DEF-VIEW-FROM-CLASS
+
+18 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * Version 2.11.11
+ * sql/expressions.lisp: when removing duplicate table identifiers
+ in the FROM clause of a query, check both table name and alias
+ are equivalent.
+ * sql/fdml.lisp: remove DESCRIBE-TABLE.
+ * sql/db-interface.lisp: remove generics DESCRIBE-TABLE and
+ DATABASE-DESCRIBE-TABLE.
+ * sql/package.lisp: remove DESCRIBE-TABLE, DATABASE-DESCRIBE-TABLE
+ and LIST-TABLE-INDEXES.
+ * sql/generic-postgresql.lisp: add reader conditional #+nil for
+ DATABASE-DESCRIBE-TABLE and comment about its uses for
+ re-implementing LIST-ATTRIBUTE-TYPES with a single SQL query
+ returning type info for all attributes.
+ Fix DATABASE-SEQUENCE-LAST.
+ * sql/fddl.lisp: remove LIST-TABLE-INDEXES and redefine
+ LIST-INDEXES with additional keyword parameter :ON.
+ * tests/test-fddl.lisp: replace LIST-TABLE-INDEXES in :fddl/index/3
+ with LIST-INDEXES (with :ON parameter).
+ * doc/global-index.xml: remove DESCRIBE-TABLE and LIST-TABLE-INDEXES.
+ * doc/ref-connect.xml: minor tidying.
+ * doc/ref-fddl.xml: document the FDDL.
+ * doc/TODO: removed items done. Moved note about transaction handling
+ from TODO to here.
+ * TODO: move note about transaction handling to doc/TODO. Added
+ optimization note about LIST-ATTRIBUTE-TYPES and LIST-INDEXES.
+
+13 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * Version 2.11.10
+ * sql/syntax.lisp: updated docstrings.
+ * sql/package.lisp: exported DATABASE-NAME-FROM-SPEC from CLSQL
+ package.
+ * sql/database.lisp: add docstrings for CREATE-DATABASE,
+ DESTROY-DATABASE, TRUNCATE-DATABASE and LIST-DATABASES. Replace
+ CLSQL-GENERIC-ERROR signalled in RECONNECT with SQL-CONNECTION-ERROR.
+ * doc/ref-syntax.xml, doc/global-index.xml: minor tidying.
+ * doc/ref-connect.xml: document connection/initialisation.
+ * doc/ref-fdml.xml: move TRUNCATE-DATABASE reference entry here.
+ * doc/TODO: remove items done.
+ * Makefile: add db-oracle to to SUBDIRS.
+
+13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Add new serialization functions:
+ WRITE-INSTANCE-TO-STREAM and READ-INSTANCE-FROM-STREAM
+ * sql/expressions.lisp: Avoid duplicate FROM names when selecting
+ from a table that has more than one primary index.
+ * sql/conditions.lisp: Fix printing of closed-database error
+
+13 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.9
+ * sql/conditions.lisp: Set initial slot value for message in SQL-WARNING
+ * sql/transactions.lisp: Correctly set slots of SQL-WARNING
+
+12 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/package.lisp: export DATABASE-TYPE from CLSQL and subclasses
+ of SQL-EXPRESSION from CLSQL-SYS.
+ * sql/syntax.lisp: make error signalled in SQL-OPERATION an
+ SQL-USER-ERROR. Make SQL-OPERATOR return just one value.
+ * doc/Makefile: added Mandrake linux.
+ * doc/catalog-redhat.xml, doc/catalog-mandrake.xml: new files.
+ * doc/appendix.xml: fixed little typo (adsf).
+ * doc/glossary.xml: removed closed-database and note about
+ sql-expression, added some entries.
+ * doc/ref-syntax.xml: documented the symbolic SQL syntax.
+
+10 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.8
+ * db-mysql/mysql-loader.lisp: Remove load of unnecessary zlib library
+ * multiple: Add generalized-boolean type as requested by
+ Edi Weitz
+ * TODO: Added need for test of generalized-boolean
+
+9 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.7 released
+ * uffi/clsql-uffi-loader.lisp: Apply patch from Edi Weitz
+ for loading with clc-register-user-package. Remove personal
+ directory from path lisp.
+ * db-mysql/mysql-loader.lisp: Similar changes
+
+8 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.6 released
+ * sql/oodml.lisp: Commit patch from Edi Weitz
+ to fix symbol writing/reading
+ * TODO: Add need for symbol slot test
+
+7 Jun 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * sql/package.lisp: remove duplicate export of
+ *CACHE-TABLE-QUERIES-DEFAULT*.
+ * doc/ref-*.xml, doc/global-index.xml: new files documenting
+ the CommonSQL compatible api.
+ * tests/test-fdml.lisp: modified the test :fdml/transaction/3 to
+ reflect changes in return values of WITH-TRANSACTION.
+
+04 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * tests/README: Fix filename [reported by Bill Clementson]
+ * sql/transactions.lisp: Apply return value patch from
+ Edi Weitz for WITH-TRANSACTION
+ * tests/README: Remove ptester package requirement (as noted
+ by Bill Clementson)
+
+03 Jun 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.5 released
+ * examples/clsql-tutorial.lisp: Remove obsolete :nulls-ok attribute,
+ Select connection-spec based on connection type. Bugs reported by
+ Bill Clementson.
+ * uffi/uffi.dll, uffi/uffi.lib: Recompile with Visual Studio 2003
+ * db-mysql/mysql-loader.lisp: Update check for zlibwapi library
+ name on Windows, add \bin\ directory to search path
+
+31 May 2004 Marcus Pearce <m.t.pearce@city.ac.uk>
+ * db-odbc/odbc-sql.lisp: DB-TYPE replaced with DATABASE-TYPE in
+ DATABASE-CONNECT.
+ * sql/operations.lisp: substr now generates SUBSTR for use on
+ Oracle; added a new operator SUBSTRING for use elsewhere. minus
+ now generates MINUS for use on Oracle. Nvl signals an error if
+ not called with exactly 2 arguments. Add concat function for use
+ instead of the || operator on MySQL and Oracle.
+ * sql/syntax.lisp: changed internal symbol for the || operator to
+ CONCAT-OP.
+ * sql/expressions.lisp: removed redundant and unused functions
+ GENERATE-SQL (cf. SQL-OUTPUT) and DATABASE-CONSTRAINT-DESCRIPTION
+ (cf. MAKE-CONSTRAINTS-DESCRIPTION).
+ * sql/generics.lisp: removed generic function for
+ DATABASE-CONSTRAINT-DESCRIPTION (see above).
+ * tests/test-syntax.lisp: modified/added tests according to changes
+ in sql/operations.lisp.
+ * tests/test-fdml.lisp: changed SUBSTR to SUBSTRING in test
+ :fdml/select/21.
+ * sql/package.lisp: added the operators SQL-SUBSTRING, SQL-CONCAT-OP
+ and SQL-USERENV to the shared exports list. Removed
+ ROLLBACK-TRANSACTION, COMMIT-TRANSACTION, DATABASE-START-TRANSACTION,
+ DATABASE-ABORT-TRANSACTION, DATABASE-COMMIT-TRANSACTION,
+ TRANSACTION-LEVEL, TRANSACTION, RECORD-SQL-COMMAND and
+ RECORD-SQL-RESULT from shared exports list.
+
+30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * db-postgresql/postgresl-sql.lisp: Avoid computing
+ result-types lisp when nil result-types. Return only
+ one value when field-types nil.
+ * db-mysql/mysql-sql.lisp: Simple queries now
+ working with prepared statements.
+
+30 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.4: MySQL 4.1 now passes all tests
+ * sql/package.lisp: Add API for prepared statments.
+ * sql/fdml.lisp: Change implicit flatp processing
+ for string map-query for greater CommonSQL conformance.
+ Add high-high API for prepared statements.
+ * tests/test-basic.lisp: Add test for map-query and
+ single argument.
+ * sql/transactions.lisp: Change name/semantics of
+ autocommit to set-autocommit.
+ * sql/generic-postgresql.lisp: Add support for
+ prepared statements.
+ * tests/test-internal.lisp: New file
+ * sql/odbc-api.lisp: Update to using ODBC V3 protocol
+ * clsql-mysql.asd, clsql-uffi.asd: Remove check and Common Lisp
+ Controller invocation.
+ * db-mysql/mysql-api.lisp: Add support for MySQL 4.1 field structure
+ * sql/expressions.lisp: Avoid emitting double parenthesis when a
+ function contains a subselect.
+
+27 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.3
+ * sql/ooddl.lisp: Commit patch from Edi Weitz fixing return
+ type (setf slot-value-using-class)
+ * TODO: add not that need a test case for the above fix
+ * db-sqlite: Remove clisp support since clisp can not run CLSQL
+ with its MOP usage
+ * db-oracle/oracle-sql.lisp: By default, use OCIEnvCreate as
+ introduced in Oracle8. Leave older code selectable by a reader macro
+ for Oracle7 and prior. Avoid use of OCIServerAttach since CLSQL
+ uses OCILogon and does not the more complex session management.
+
+26 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: Commit universal-time typo patch from Edi Weitz
+ * test/test-init.lisp: Add universal-time slot to person.
+ * test/test-fddl.lisp: Add tests of universal-time slot
+ * test/test-ooddl.lisp: Test universal-time slot in an object
+ * TODO: Remove need for universal-time test
+ * debian/rules, debian/control: Add cl-sql-oracle binary package
+ * doc/appendix.xml: Add Oracle backend information
+ * db-oracle/oracle-objects.lisp: Add database-get-type-specifier for
+ universal-time. Convert BIGINT CLSQL type to CHAR SQL type
+ * db-mysql/mysql-sql.lisp: Fix condition name to sql-connection-error
+ * doc/ref-clsql.xml: Renamed from ref_clsql.xml. Change the documentation
+ for map-query to reflect changed in arguments to be CommonSQL compatible.
+ Updated old clsql conditions to new CommonSQL compatible conditions.
+
+25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/oodml.lisp: (string n) now produces a CHAR field. Add new VARCHAR
+ type. Added *default-varchar-length* rather than previous hard-coded
+ varchar length. Remove 'simple-string and 'simple-base-string since they
+ are subtypes of 'string.
+ * db-oracle/oracle-sql.lisp: Use *default-varchar-length* rather than
+ local hard-coded value.
+ * sql/metaclasses.lisp: Convert specified type VARCHAR and (VARCHAR n) to Lisp
+ type string. Convert specified-type (CHAR n) to string. Convert specified-type
+ CHAR to lisp type character.
+ * sql/generic-postgresql.lisp: (string n) => (CHAR n)
+ * sql/operations.lisp: Add userenv
+ * doc/TODO: Add AUTOCOMMIT. Remove need for large table and bigint
+ slot tests
+ * sql/oracle-sql.lisp: Add 64-bit bigint direct conversion
+ * uffi/clsql-uffi.lisp: Handle signed 64-bit integers
+ * test/test-init.lisp: Add large table with bigint slot
+
+25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.1 released: Much simpler Oracle client library loading.
+ Now uses ORACLE_HOME environmental variable as well as tests default
+ path for Oracle Instant Client.
+
+25 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.11.0 released: Full Oracle support. All tests pass
+ * db-oracle/oracle-sql.lisp: Add declaration so that SBCL runs efficiently.
+ * tests/test-init.lisp: capitalize odbc backend name in banner
+ * CONTRIBUTORS: Add note about Marcus' excellent work
+ * sql/oodml.lisp: Removed old stub function
+ * clsql.asd: Use module names in current package rather than keyword package
+ * db-oracle/oracle-sql.lisp: Don't trim trailing spaces. Prevent interrupts
+ in setting sequence position. Make autocommits more efficient.
+ * tests/test-init.lisp: Skip 2 tests on Oracle which have unsupported syntax
+ * sql/oodml.lisp: Get rid of undocumented raw-string type. CommonSQL
+ strings are raw (non-trimmed trailing whitespace). Add database-get-type-specifier
+ and read-sql-value for NUMBER and CHAR.
+ * sql/base-classes.lisp: Add autocommit slot
+ * sql/transaction.lisp: Added autocommit processing, mild cleaning.
+ * doc/intro.xml: Add Oracle
+
+24 May 2004: Marcus Pearce (m.t.pearce@city.ac.uk)
+ * db-postgresql-socket/postgresql-socket-sql.lisp: replace
+ CLSQL-SIMPLE-WARNING with SQL-WARNING.
+ * db-sqlite/sqlite-sql.lisp: replace CLSQL-SIMPLE-WARNING with
+ SQL-WARNING.
+ * db-aodbc/aodbc-sql.lisp: replace CLSQL-ERROR with SQL-ERROR.
+ * clsql.asd: reworked module structure in package definition and
+ file names to better reflect component functionality.
+ * sql/package.lisp: added SQL-FATAL-ERROR and SQL-TIMEOUT-ERROR to
+ exports list. Removed duplicate and obsolete exports. Exported
+ remaining SQL operations: SQL-SOME, SQL-<>, SQL-BETWEEN, SQL-DISTINCT,
+ SQL-NVL and SQL-FUNCTION. Organised exports by functionality/file and
+ according to whether they are specified by CommonSQL or CLSQL
+ extensions.
+ * sql/transaction.lisp: replace CLSQL-SIMPLE-WARNING with
+ SQL-WARNING.
+ * sql/generics.lisp: moved generics for QUERY and EXECUTE-COMMAND
+ here from basic-sql.lisp.
+ * sql/expressions.lisp: NEW FILE: renamed from classes.lisp (deleted).
+ * sql/fddl.lisp: NEW FILE: renamed from table.lisp (deleted).
+ * sql/fdml.lisp: NEW FILE: merger of basic-sql.lisp and sql.lisp
+ (both deleted).
+ * sql/ooddl.lisp: NEW FILE: ooddl from objects.lisp (deleted).
+ * sql/oodml.lisp: NEW FILE: oodml from objects.lisp (deleted).
+
+23 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.10.22 released
+ * sql/kmr-mop.lisp, sql/objects.lisp: Since SBCL is the only implementation that
+ has reversed class slots, change the default for ordered-class-slots so that slots
+ are now in the same order an in the def-view-class.
+ * sql/sql.lisp: Honor case of string table identifier to INSERT-RECORDS
+ * test/test-fddl.lisp: Add two tests for mixed case names
+ * db-oracle/oracle-sql.lisp: Add missing database qualifier. Return NUMBER (double)
+ for computed fields, this will require some adjustment to the test suite which
+ in many cases expects integers.
+ * test/test-fdml.lisp: Accomodate that Oracle returns doubles for computed columns
+
+22 May 2004 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 2.10.21 released
+ * sql/sequences.lisp: Move generic sequence functions here from db-sqlite,
+ db-odbc, and db-aodbc.
+ * sql/*.lisp: Add db-type parameter to generic functions READ-SQL-VALUE,
+ DATABASE-GET-TYPE-SPECIFIER, and OUTPUT-SQL-VALUE-AS-TYPE. Update methods to use these.
+ * sql/generic-postgresql.lisp, sql/generic-odbc.lisp: New files
+ * db-odbc/odbc-sql.lisp, db-aodbc/aodbc-sql.lisp: Move common code to
+ sql/generic-odbc.lisp
+ * db-postgresql/postgresql-sql.lisp, db-postgresql-socket/postgresql-socket-sql.lisp:
+ Move common code to sql/generic-postgresql.lisp
+ * sql/classes.lisp: honor case of string tables when outputting queries
+ * sql/objects.lisp: Add database type to default database-get-type-specifier method
+ * sql/sql.lisp: Add database type to default database-abort-transaction method
+ * db-mysql/mysql-objects.lisp: New file
+ * sql/objects.lisp: Move MySQL specific code to mysql-objects.lisp
+ * sql/utils.lisp: Add GETENV function which will be used to get ORACLE_HOME
+ from environment
+ * test/test-fdml.lisp: String table names are now case sensitive, so convert to
+ default db case for FDML/SELECT/25
+
+22 May 2004 Kevin Rosenberg
+ * Version 2.10.20 released: Oracle backend now fails 6 out of 200 tests
+ * TODO: Added 2 variances from CommonSQL. Add tests for owner phrases
+ and string identifiers with non-default case
+ * sql/table.lisp: Don't convert string table name to a symbol.
+ * sql/classes.lisp: Honor case of string identifiers
+ * sql/sql.lisp: Ensure recyclebin is purged for Oracle in
+ TRUNCATE-DATABASE
+ * db-oracle/oracle-sql.lisp: Add sequence functions, fix use of
+ of owner phrases. Obtain server and client versions.
+ * db-oracle/oracle-objects.lisp: Fix type specifiers
+ * tests/test-fddl.lisp: Allow :varchar2 and :number as data types
+ * tests/test-init.lisp: Properly get username from Oracle connection-spec
+
+22 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/generics.lisp: reworked docstrings. Remove generics for
+ ADD-TO-RELATION and REMOVE-FROM-RELATION.
+ * sql/objects.lisp: reworked docstrings. Changed UPDATE-OBJECT-JOINS
+ to UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
+ * sql/package.lisp: Changed UPDATE-OBJECT-JOINS to UPDATE-OBJECTS-JOINS
+ for CommonSQL compatibility. Remove ADD-TO-RELATION and
+ REMOVE-FROM-RELATION.
+ * tests/test-oodml.lisp: Changed UPDATE-OBJECT-JOINS to
+ UPDATE-OBJECTS-JOINS for CommonSQL compatibility.
+ * doc/TODO: added notes about extra slot options to DEF-VIEW-CLASS.
+ * sql/conditions.lisp: add documentation for conditions. Add
+ SQL-TIMEOUT-ERROR and SQL-FATAL-ERROR for CommonSQL compatibility.
+
+21 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/basic-sql.lisp: reworked docstrings.
+ * sql/transactions.lisp: reworked docstrings.
+ * sql/sql.lisp: reworked docstrings.
+ * sql/initialize.lisp: reworked docstrings. INITIALIZE-DATABASE-TYPE
+ sets *DEFAULT-DATABASE-TYPE* for CommonSQL compatibility.
+ * sql/database.lisp: reworked docstrings.
+ * doc/TODO: added notes about START-TRANSACTION and IN-TRANSACTION-P
+ and FDML extensions and database extensions.
+
+20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * db-oracle/oracle-sql: Use clsql-specific error conditions. Use owner keyword.
+ * db-oracle/make9.sh: add makefile for building with Oracle 9 client
+ libraries
+ * sql/table.lisp: Add logic for dealing with Oracle 10g vs. previous
+ Oracle versions with the PURGE option required for drop table. This needs
+ to be converted to a generic function and moved to db-oracle/oracle-sql.lisp
+
+20 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/classes.lisp: remove unused PARAMS slot in SQL-IDENT-ATTRIBUTE.
+ * sql/syntax.lisp: remove unused PARAMS keyword arg to SQL-EXPRESSION.
+ * sql/table.lisp: reworked docstrings.
+ * sql/objects.lisp: moved *default-update-objects-max-len* here from
+ table.lisp.
+ * doc/TODO: notes about :if-does-not-exist arg to DROP-TABLE,
+ DROP-VIEW and DROP-INDEX and the use of the :transactions and
+ :constraints keyword args to CREATE-TABLE.
+ * sql/classes.lisp: the DESCRIPTION argument to CREATE-TABLE is now
+ CommonSQL compatible with respect to column constraints.
+
+20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * sql/oracle-sql.lisp: Now compiles and runs on SBCL.
+ Requires UFFI 1.5.0 or higher
+
+20 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 2.10.19
+ * sql/conditions.lisp: Fix cerror
+
+19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 2.10.18 released: New condition hierarchy to be compatible
+ with CommonSQL -- not backward compatible with previous CLSQL.
+ * sql/db-interface.lisp: Add more default methods
+ * sql/objects.lisp: Add explicit table name to order-by parameters
+ in find-all when only one table to avoid selecting a duplicate row.
+ Fix error in FIND-ALL when using :order-by such as (([foo] :asc))
+ as previous logic was adding two fields (foo asc) to SELECT query.
+ Make :result-types :auto be the default for object selections.
+ Properly handle caching key when using multiple order-by with asc/desc
+ directions.
+ * db-oracle/*.lisp: Much improvements, now passes 90% of test suite
+
+19 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/recording.lisp: reworked docstrings.
+ * sql/syntax.lisp: reworked docstrings.
+ * doc/TODO: added notes about extensions to SQL-RECORDING-P and the
+ SQL syntax state functions being macros.
+
+19 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * sql/package.lisp: Export initialize-database-type and
+ *initialize-database-types* from CLSQL package.
+ * sql/conditions.lisp: Add new CommonSQL compatible conditions,
+ remove old CLSQL conditions.
+ * sql/loop-extensions.lisp: Make errors of type sql-user-error
+ * */*.lisp: Convert to from old to new conditions
+
+18 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * sql/table.lisp: Add PURGE to drop command for oracle 10g backend.
+ To handle this difference, will need to add a new database-drop-table
+ generic function.
+ * db-oracle/oracle-sql.lisp: Move server-version and
+ major-version-number to database object to allow multiple connections
+ to Oracle servers of different versions.
+
+18 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * TODO: moved notes about backends to doc/TODO.
+ * doc/TODO: added notes about backends and select extensions.
+ * sql/base-classes.lisp: remove obsolete schema slot in database
+ class.
+
+16 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * db-oracle/oracle-api: Add OCIServerVersion
+ * db-oracle/oracle-sql: Query and store server version on connect
+ * sql/db-interface.lisp: Add new db-type-has-bigint? generic
+ function to handle OCI's lack of bigint support
+ * test/test-basic.lisp: Separate bigint testing
+ * test/test-utils.lisp: Add oracle to specs and list of backends
+ * doc/TODO: New file
+ * test/test-fdml.lisp: Added FDML/SELECT/34 to test
+ run-time instantiation of variables in reader macros.
+ * TODO: Remove item already complete. Add note about
+ condition variances
+
+16 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/syntax.lisp: added condition to the reader macro to treat [*]
+ as a column identifier (rather than an operation) for CommonSQL
+ compatibility.
+ * tests/test-fdml.lisp: add tests for ORDER-BY and SET-OPERATION
+ keword args to SELECT, [*] as column identifier, new MAP-QUERY
+ behaviour and the ANY and ALL operators in subqueries.
+ * tests/test-init.lisp: add set-operation and subquery tests to
+ appropriate skip lists.
+ * sql/objects.lisp: remove redundant and non CommonSQL compatible
+ ORDER-BY-DESCENDING keyword argument for SELECT.
+ * sql/classes.lisp: remove redundant and non CommonSQL compatible
+ ORDER-BY-DESCENDING keyword argument for SELECT.
+ * tests/test-oodml.lisp: add test for ORDER-BY keyword to SELECT
+ with object queries.
+
+15 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * sql/db-interface.lisp: Add new db-type-has-union?
+ since Mysql 3.23 does not support unions.
+ * sql/test-init.lisp: Don't try union tests on database
+ backends which do not support it.
+ * db-oracle/*.lisp: initial port to UFFI
+ * sql/objects.lisp: implement UPDATE-OBJECT-JOINS,
+ implement REFRESH for SELECT.
+ * tests/test-oodml.lisp: Add tests for deferred retrieval,
+ caching, refresh, and update-object-joins
+ * tests/test-init.lisp: Add deferred-employee-address class
+
+15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/operations.lisp: make MINUS operator a synonym for EXCEPT. Add
+ COALESCE operator and make NVL a synonym for this. Make ANY, SOME,
+ ALL and EXISTS generate function expressions so they output the
+ correct SQL.
+ * sql/classes.lisp: SELECT now generates appropriate SQL when
+ passed the SET-OPERATION and ALL keyword arguments.
+ * sql/classes.lisp: the ORDER-BY keyword argument to SELECT now
+ accepts ordering constraints as pairs of the form (column direction)
+ where direction may be :ASC or :DESC.
+ * tests/test-syntax.lisp: added tests for MINUS and COALESCE/NVL.
+ Correct tests for ANY, SOME, ALL and EXISTS.
+ * tests/test-fdml.lisp: added test for COALESCE.
+ * sql/sql.lisp: MAP-QUERY now applies FUNCTION to QUERY-EXPRESSION
+ using funcall unless QUERY-EXPRESSION returns one column and its
+ FLATP slot is not nil in which case apply is used.
+ * tests/test-basic.lisp: modified calls to MAP-QUERY to reflect the
+ changes.
+ * TODO: remove items done.
+ * db-postgresql/postgresql-sql.lisp: no need to reverse results in
+ DATABASE-LIST-ATTRIBUTES.
+ * db-postgresql-socket/postgresql-socket-sql.lisp: no need to reverse
+ results in DATABASE-LIST-ATTRIBUTES.
+
+15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/classes.lisp: SELECT now accepts table identifiers as strings
+ for CommonSQL compliance. Add support for qualified sql identifiers
+ with aliased table names.
+ * tests/test-fdml.lisp: added tests for table identifiers as strings
+ in SELECT and for aliased definitions.
+ * tests/test-syntax.lisp: added tests for alias definitions.
+
+15 May 2004 Marcus Pearce (m.t.pearce@city.ac.uk)
+ * sql/sql.lisp: PRINT-QUERY now calls QUERY with result-types and
+ field-names set to nil.
+ * sql/sql.lisp: PRINT-QUERY now computes column sizes correctly
+ with null attribute values.
+ * sql/operations.lisp: modify SQL concatenation operator to accept
+ unescaped || symbol.
+ * sql/syntax.lisp: modify sql reader macro function to accept
+ unescaped sql concatenation operator.
+ * tests/test-fdml.lisp: unescape sql concatenation operator.
+ * tests/test-syntax.lisp: unescape sql concatenation operator.
+ * TODO: remove items done. Add notes about SQLITE/MYSQL backends.
+ Note to add test for universal-time. Note about difference from
+ CommonSQL in transaction handling.
+