X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=ChangeLog;h=86362c5e6fd31d0439861650abf7d424664634fd;hp=a61f47d15fe32ee896b40b0c4d900fb36df09d38;hb=f67c4e2a4e5b8371a1b7c1629828999ff909f538;hpb=d10a3ac8045f8ed50756850d3d75f62dbc6f93cd diff --git a/ChangeLog b/ChangeLog index a61f47d..86362c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,390 @@ +2015-08-12 Kevin Rosenberg + * Version 6.6.3 release + * db-oracle/oracle-sql.lisp: Patch for PostgreSQL socket interface + for unicode characters. Thanks to Jason Melbye. + +2015-03-30 Kevin Rosenberg + * Version 6.6.2 release + * db-oracle/oracle-sql.lisp: Remove extra hyphen, thanks to + Thomas Vossen + +2015-03-18 Kevin Rosenberg + * Version 6.6.1 release + * {uffi,db-mysql}/Makefile: Remove pie from build + hardening options for Debian/Ubuntu systems. Thanks to + DJ and Russ Tyndall + +2015-02-26 Kevin Rosenberg + * Version 6.6.0 release + * {uffi,db-mysql}/Makefile: Add build hardening for Debian + +2014-02-24 Russ Tyndall + * 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) + +2014-02-23 Russ Tyndall + * 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 + * 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 + * 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 + * 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 + + * 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 + * 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 + * 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 + * oodml.lisp bind *print-length* to nil before printing + lists/arrays to the database. + +2014-01-30 Russ Tyndall + * 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 + * sqlite3-sql.lisp, fddl.lisp Dont compare database-identifiers + with invalid comparison operators + +2014-01-30 Russ Tyndall + * 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 + * 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 + * oodml.lisp, generics.lisp - added filter-select-list generic + to allow fine grained control of generated query/object mappings + +2014-01-07 Russ Tyndall + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * 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 + * utils/sql.lisp: Commit patch adding ccl getenv support + +2013-04-17 Kevin Rosenberg + * Version 6.4.1 + * sql/utils.lisp: Patch from Ben Hyde to add weak hash table + support for CCL. + +2013-03-07 Ryan Davis + * 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 + 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 + * Version 6.4 + +2012-11-20 Russ Tyndall + ## 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 + + * 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 + * 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 + * Version 6.3 released + +2012-09-04 Russ Tyndall + * 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 + * 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 + * db-postgresql-socket3/package.lisp - shadow + postgresql-notification for compatibility with new + cl-postgres (Thanks Zach) + +2012-07-09 Russ Tyndall + * 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 + * 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 + * 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 + * Version 6.2 released: thanks to all the contributors! + +2012-04-25 Nathan Bird + + * 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 + * 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 + + * 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 + + * 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 * sql/expressions.lisp: Fixed bug with subqueries in the where clause of update-records and delete-records generating invalid - SQL. + 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 @@ -11,13 +393,6 @@ ODBC connection specs, and added example code connecting to ODBC databases. -2012-02-22 Nathan Bird - - * db-mysql/mysql-loader.lisp (*mysql-library-candidate-names*): If - running on a threaded lisp try loading libmysqlclient_r (the - threaded build) first. from - http://dev.mysql.com/doc/refman/5.1/en/threaded-clients.html - 2012-01-05 Nathan Bird * db-odbc/odbc-dbi.lisp: handle sql decimal type in the same way @@ -117,6 +492,14 @@ * 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 * Version 5.4.0 release