refactored database-output-sql-as-type in a similar fashion to
[clsql.git] / ChangeLog
index 6df4c81960242c6a8c040be3dc0ea75e4c0a84c4..e4aae097c8a3acf7f397696ce0b295808b7892ea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,172 @@
+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-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