Resolve $rsrc instance duality on metadata traversal
[dbsrgits/DBIx-Class.git] / Changes
diff --git a/Changes b/Changes
index 5396723..c2bb298 100644 (file)
--- a/Changes
+++ b/Changes
+Current Known Issues / Regressions
+  - Breaks DBIx::Class::ResultSet::WithMetaData (fix pending in RT#104602)
+  - Breaks DBIx::Class::Tree::NestedSet (fix pending in RT#114440)
+
 Revision history for DBIx::Class
 
     * Notable Changes and Deprecations
+        - The entire class hierarchy now explicitly sets the 'c3' mro, even
+          in cases where load_components was not used. Extensive testing led
+          the maintainer believe this is safe, but this is a very complex
+          area and reality may turn out to be different. If **ANYHTING** at
+          all seems out of place, please file a report at once
+        - The unique constraint info (including the primary key columns) is no
+          longer shared between related (class and schema-level) ResultSource
+          instances
         - Neither exception_action() nor $SIG{__DIE__} handlers are invoked
           on recoverable errors. This ensures that the retry logic is fully
           insulated from changes in control flow, as the handlers are only
           invoked when an error is leaving the DBIC internals to be handled by
           the caller (n.b. https://github.com/PerlDancer/Dancer2/issues/1125)
+          (also fixes the previously rejected RT#63874)
         - $result->related_resultset() no longer passes extra arguments to
           an underlying search_rs(), as by design these arguments would be
           used only on the first call to ->related_resultset(), and ignored
           afterwards. Instead an exception (detailing the fix) is thrown.
+        - Increased checking for the correctness of the is_nullable attribute
+          within the prefetch result parser may highlight previously unknown
+          mismatches between your codebase and data source
         - Calling the set_* many-to-many helper with a list (instead of an
           arrayref) now emits a deprecation warning
+        - Calling the getter $rsrc->from("argument") now throws an exception
+          instead of silently discarding the argument
 
     * New Features
-        - When using non-scalars (e.g. arrays) as literal bind values it is no
-          longer necessary to explicitly specify a bindtype (this turned out
-          to be a mostly useless overprotection)
+        - InflateColumn::DateTime now accepts the ecosystem-standard option
+          'time_zone', in addition to the DBIC-only 'timezone' (GH#28)
+        - Massively optimised literal SQL snippet scanner - fixes all known
+          slowdowns ( in some cases 50x ) of very complex prefetch/selects
         - DBIx::Class::Optional::Dependencies now properly understands
           combinations of requirements and does the right thing with e.g.
           ->req_list_for([qw( rdbms_oracle ic_dt )]) bringing in the Oracle
           specific DateTime::Format dependencies
 
     * Fixes
-        - Ensure failing on_connect* / on_disconnect* are dealt with properly,
-          notably on_connect* failures now properly abort the entire connect
+        - Fix regresion (0.082800) of certain calls being presented stale
+          result source metadata (RT#107462)
         - Fix incorrect SQL generated with invalid {rows} on complex resultset
           operations, generally more robust handling of rows/offset attrs
         - Fix incorrect $storage state on unexpected RDBMS disconnects and
           other failure events, preventing clean reconnection (RT#110429)
-        - Ensure leaving an exception stack via Return::MultiLevel or something
-          similar produces a large warning
         - Make sure exception objects stringifying to '' are properly handled
           and warned about (GH#15)
+        - Fix incorrect data returned in a corner case of partial-select HRI
+          invocation (no known manifestations of this bug in the field, see
+          commit message for description of exact failure scenario)
         - Fix corner case of stringify-only overloaded objects being used in
           create()/populate()
-        - Fix spurious ROLLBACK statements when a TxnScopeGuard fails a commit
-          of a transaction with deferred FK checks: a guard is now inactivated
-          immediately before the commit is attempted (RT#107159)
-        - Work around unreliable $sth->finish() on INSERT ... RETURNING within
-          DBD::Firebird on some compiler/driver combinations (RT#110979)
+        - Fix spurious warning on MSSQL cursor invalidation retries (RT#102166)
         - Fix several corner cases with Many2Many over custom relationships
-        - Fix t/52leaks.t failures on compilerless systems (RT#104429)
-        - Fix t/105view_deps.t failing with libsqlite >= 3.009, where view
-          definitions are lazily-checked for correctness only at DML-time as
-          opposed to DDL-time (RT#1546088)
-        - Fix t/storage/quote_names.t failures on systems with specified Oracle
-          test credentials while missing the optional Math::Base36
-        - Fix the Sybase ASE storage incorrectly attempting to retrieve an
-          autoinc value when inserting rows containing blobs (GH#82)
-        - Fix test failures when DBICTEST_SYBASE_DSN is set (unnoticed change
-          in error message wording during 0.082800 and a bogus test)
 
     * Misc
+        - Add explicit test for pathological example of asymmetric IC::DT setup
+          working with copy() in t/icdt/engine_specific/sybase.t (GH#84)
+        - Fix t/54taint.t failing on local::lib's with upgraded Carp on 5.8.*
         - Fix invalid variable names in ResultSource::View examples
         - Skip tests in a way more intelligent and speedy manner when optional
           dependencies are missing
         - Make the Optional::Dependencies error messages cpanm-friendly
         - Incompatibly change values (not keys) of the hash returned by
           Optional::Dependencies::req_group_list (no known users in the wild)
-        - Protect tests and codebase from incomplete caller() overrides, like
-          e.g. RT#32640
-        - Work around rare test deadlock under heavy parallelism (RT#108390)
         - Stop using bare $] throughout - protects the codebase from issues
           similar (but likely not limited to) P5#72210
         - Config::Any is no longer a core dep, but instead is migrated to a new
           optdep group 'config_file_reader'
 
+0.082840 2016-06-20 07:02 (UTC)
+    * New Features
+        - When using non-scalars (e.g. arrays) as literal bind values it is no
+          longer necessary to explicitly specify a bindtype (this turned out
+          to be a mostly useless overprotection)
+
+    * Fixes
+        - Ensure leaving an exception stack via Return::MultiLevel or something
+          similar produces a large warning
+        - Another relatively invasive set of ::FilterColumn changes, covering
+          potential data loss (RT#111567). Please run your regression tests!
+        - Ensure failing on_connect* / on_disconnect* are dealt with properly,
+          notably on_connect* failures now properly abort the entire connect
+        - Fix use of ::Schema::Versioned combined with a user-supplied
+          $dbh->{HandleError} (GH#101)
+        - Fix parsing of DSNs containing driver arguments (GH#99)
+        - Fix silencing of exceptions thrown by custom inflate_result() methods
+        - Fix complex prefetch when ordering over foreign boolean columns
+          ( Pg can't MAX(boolcol) despite being able to ORDER BY boolcol )
+        - Fix infinite loop on ->svp_release("nonexistent_savepoint") (GH#97)
+        - Fix spurious ROLLBACK statements when a TxnScopeGuard fails a commit
+          of a transaction with deferred FK checks: a guard is now inactivated
+          immediately before the commit is attempted (RT#107159)
+        - Fix the Sybase ASE storage incorrectly attempting to retrieve an
+          autoinc value when inserting rows containing blobs (GH#82)
+        - Remove spurious exception warping in ::Replicated::execute_reliably
+          (RT#113339)
+        - Work around unreliable $sth->finish() on INSERT ... RETURNING within
+          DBD::Firebird on some compiler/driver combinations (RT#110979)
+        - Fix leaktest failures with upcoming version of Sub::Quote
+        - Really fix savepoint rollbacks on older DBD::SQLite (fix in 0.082800
+          was not sufficient to cover up RT#67843)
+
+    * Misc
+        - Test suite is now officially certified to work under very high random
+          parallelism: META x_parallel_test_certified set to true accordingly
+        - Typo fixes from downstream debian packagers (RT#112007)
+
+0.082821 2016-02-11 17:58 (UTC)
+    * Fixes
+        - Fix t/52leaks.t failures on compilerless systems (RT#104429)
+        - Fix t/storage/quote_names.t failures on systems with specified Oracle
+          test credentials while missing the optional Math::Base36
+        - Fix test failures when DBICTEST_SYBASE_DSN is set (unnoticed change
+          in error message wording during 0.082800 and a bogus test)
+        - Remove largely obsolete test of SQLite view deployment (RT#111916)
+
+    * Misc
+        - Work around rare test deadlock under heavy parallelism (RT#108390)
+
 0.082820 2015-03-20 20:35 (UTC)
     * Fixes
         - Protect destructors from rare but possible double execution, and