Revision history for DBIx::Class
+ * New Features / Changes
+ - Add quote_names connection option. When set to true automatically
+ sets quote_char and name_sep appropriate for your RDBMS
+ - IC::DateTime support for MSSQL over DBD::ADO
+ - Both the ::ODBC and ::ADO dispatchers now warn if a rdbms-specific
+ driver is not found for this connection before falling back to
+ plain ::Storage::DBI
+
+ * Fixes
+ - Disable mysql_auto_reconnect for MySQL - depending on the ENV
+ it sometimes defaults to on and causes major borkage on older
+ DBD::mysql versions
+ - Fix dropped bind values in select/group_by on Oracle (omission
+ from 0542ec57 and 4c2b30d6)
+ - Fix problems with M.A.D. under CGI::SpeedyCGI (RT#65131)
+ - Better error handling when prepare() fails silently
+ - Fixes skipped lines when a comment is followed by a statement
+ when deploying a schema via sql file
+
+0.08127 2011-01-19 16:40 (UTC)
+ * New Features / Changes
+ - Schema/resultsource instances are now crossreferenced via a new
+ system guaranteeing leak-free mutually assured destruction
+ - DBIx::Class now warns when the user erroneously supplies
+ AutoCommit => 0 to connect()
+ - A warning is also issued before forcing the RaiseError
+ setting of externally supplied DBI handles
+ - Switch to a warning when find() is invoked with both a 'key'
+ argument and a NULL-containing condition to satisfy the named
+ constraint. Previously (starting with 0.08124) an exception was
+ thrown
+ - Switch to a warning when a commit is attempted with an out-of-sync
+ transaction_depth (someone issued a begin externally to DBIC).
+ Previously (starting with 0.08124) an exception was thrown
+
* Fixes
+ - A number of improvements/diagnostics of multiple active resultset
+ handling on MSSQL over DBD::ODBC
+ - Revert default selection to being lazy again (eagerness introduced
+ in 0.08125) - fixes DBIx::Class::Helper::ResultSet::RemoveColumns
+ - Fix losing order of columns provided in select/as (regression from
+ 0.08125)
+ - Unaliased "dark" selectors no longer throw off prefetch
+ - Fix proper composition of bind values across all possible
+ SQL areas ( group_by => \[ ... ] now works properly )
+ - Allow populate to skip empty has_many relationships which makes
+ it easier to pass HashRefInflator data directly to ->populate
+ - Improve freeze/thaw semantics and error messages (RT#62546)
+ - Fix inconsistency in Manual::Features (RT#64500)
+ - Fix incorrect SQL when using for => 'shared' with MySQL (RT#64590)
+ - Throw comprehensible exception on erroneous $schema->source()
+ invocation
+ - Fix sloppy refactor of ResultSource::sequence back from 89170201
+ (RT#64839)
+ - Fix incorrect error detection during populate() on Oracle
+ - Better handling of result_source-less row objects by
+ auto-calling result_source_instance when necessary
+ - Fix reverse_relationship_info and sqlt deploy on partially
+ loaded schemas (relationships point to non-existent sources)
+
+ * Misc
+ - Fix test warning on win32 - at this point the test suite is
+ warning-free on all known OSes
+ - Require newest namespace::clean which in turn depends on new
+ installable Package::Stash
+
+0.08126 2010-12-28 18:10 (UTC)
+ * Fixes
+ - Bump forgotten Class::Accessor::Grouped core dependency
+ - Promote forgotten Hash::Merge optdep to a hard requirement
+ - Skip t/storage/error.t on smokers with leaking perls
+ - Fix t/storage/txn.t deadlocks on slower machines
+ - Do not run on smokers if a trial Package::Stash is found
+
+0.08125 2010-12-27 04:30 (UTC)
+ * New Features / Changes
+ - New method ResultSource columns_info method, returning multiple
+ pairs of column name/info at once
+ - $rs->search now throws when called in void context, as it makes
+ no sense (and is nearly always a sign of a bug/misdesign)
+ - Restore long-lost ability to supply unbalanced select/as pairs
+ e.g. +select => \'DISTINCT(foo, bar)', +as => ['foo', 'bar']
+ - +columns now behaves just like columns by not stripping a
+ fully-qualified 'as' spec (i.e. foo.bar results in $obj->foo->bar)
+ - Deprecate legacy $rs->search( %condition ) syntax (warn once per
+ callsite)
+ - NULL is now supplied unquoted to all debug-objects, in order to
+ differentiate between a real NULL and the string 'NULL'
+ - New search() condition operator -value used to pass complex bind
+ values to DBI: search({ array_col => { -value => [1,2,3] }})
+ - Add full INSERT...RETURNING support for Oracle
+ - Deprecate use of -nest in search conditions (warn once per
+ callsite)
+ - Deprecate the completely useless DBIx::Class::Serialize::Storable
+ result component
+
+ * Fixes
+ - Fixed read-only attribute set attempt in ::Storage::Replicated
+ (RT#62642)
+ - Fix incomplete logic while detecting correct Oracle sequence
+ on insert
+ - Fix detection of Oracle sequences for tables without an explicitly
+ specified schema (RT#63493)
+ - Major overhaul of Storage::Oracle to handle enabled quoting
+ - Fixed incorrect composition of select/as/columns attributes during
+ chaining (RT#61235)
+ - Proper serialization of resultsets with open cursors
+ - Refactor handling of RDBMS-side values during insert() - fix
+ regression of inserts into a Postgres / ::Replicated combination
+ - Missing dependency check in t/60core.t (RT#62635)
+ - Fix regressions in IC::DT registration logic
+ - Fix regression in select-associated bind value handling (RT#61025)
+ - Simplify SQL generated by some LIMITed prefetching queries
+ - Throw an exception when a required group_by on a complex prefetch
+ can not be auto-constructed, instead of continuing to eventually
+ produce invalid SQL
+ - Fix infinite loops on old perls with a recent Try::Tiny
+ - Improve "fork()" on Win32 by reimplementing a more robust DBIC
+ thread support (still problematic, pending a DBI fix)
+ - Properly quote table name on INSERT with no values
+ - Work around possible Storage destruction warnings
+ - Fix count of grouped resultsets using HAVING with aliases
+ - Setting belongs_to columns/relationships no longer leaves the
+ FK value and related object out of sync
+ - Stop stripping newlines from SQL statements in the limit emulators
+ as it is possible that custom sql with comments was provided
+ - Add forgotten attributes to Admin.pm
+ - Fix incorrect 'having' attribute documentation (RT#64129)
+ - Improve fallback-to-master/return-to-slave reporting in
+ ::Replicated::Balancer
+ - Adjust txn_scope_guard code/tests to changes in $@ handling on
+ recent blead (RT#64251)
+
+ * Misc
+ - Add extra option groups to DBIC::Optional::Depencencies, to aid
+ users in requesting the prerequisites for a particular RDBMS
+ - Switch all serialization to use Storable::nfreeze for portable
+ architecture independent ice
+ - Fix the bogus META.yml dependency injection issue for good
+ - Refactor DBIx::Class::Storage::Statistics::debugfh() to be lazy
+
+0.08124 2010-10-28 14:23 (UTC)
+ * New Features / Changes
+ - Add new -ident "function" indicating rhs is a column name
+ { col => { -ident => 'othercol' } } vs { col => \'othercol' }
+ - Extend 'proxy' relationship attribute
+ - Use DBIx::Class::Storage::Debug::PrettyPrint when the
+ environment variable DBIC_TRACE_PROFILE is set, see
+ DBIx::Class::Storage for more information
+ - Implemented add_unique_constraints() which delegates to
+ add_unique_constraint() as appropriate
+ - add_unique_constraint() now poparly throws if called with
+ multiple constraint definitions
+ - No longer depend on SQL::Abstract::Limit - DBIC has been doing
+ most of the heavy lifting for a while anyway
+ - FilterColumn now passes data through when transformations
+ are not specified rather than throwing an exception.
+ - Optimized RowNum based Oracle limit-dialect (RT#61277)
+ - Requesting a pager on a resultset with cached entries now
+ throws an exception, instead of returning a 1-page object
+ since the amount of rows is always equal to the "pagesize"
+ - $rs->pager now uses a lazy count to determine the amount of
+ total entries only when really needed, instead of doing it
+ at instantiation time
+ - New documentation map organized by features
+ (DBIx::Class::Manual::Features)
+ - find( { ... }, { key => $constraint } ) now throws an exception
+ when the supplied data does not fully specify $constraint
+ - find( col1 => $val1, col2 => $val2, ... ) is no longer supported
+ (it has been in deprecated state for more than 4 years)
+ - Make sure exception_action does not allow exception-hiding
+ due to badly-written handlers (the mechanism was never meant
+ to be able to suppress exceptions)
+
+ * Fixes
+ - Fix memory leak during populate() on 5.8.x perls
+ - Temporarily fixed 5.13.x failures (RT#58225)
+ (perl-core fix still pending)
+ - Fix result_soutrce_instance leaks on compose_namespace
+ - Fix $_ volatility on load_namespaces (a class changing $_
+ at compile time no longer causes a massive fail)
+ - Fix find() without a key attr. choosing constraints even if
+ some of the supplied values are NULL (RT#59219)
- Fixed rels ending with me breaking subqueried limit realiasing
+ - Fixed $rs->update/delete on resutsets constrained by an
+ -or condition
+ - Remove rogue GROUP BY on non-multiplying prefetch-induced
+ subqueries
+ - Fix incorrect order_by handling with prefetch on
+ $ordered_rs->search_related ('has_many_rel') resultsets
- Oracle sequence detection now *really* works across schemas
(fixed some ommissions from 0.08123)
- - add_unique_constraint() now throws if called with multiple
- constraint definitions
- - Implemented add_unique_constraints() which delegates to
- add_unique_constraint() as appropriate
- dbicadmin now uses a /usr/bin/env shebang to work better with
perlbrew and other local perl builds
- bulk-inserts via $dbh->bind_array (void $rs->populate) now
(RT#59619)
- Fixed t/54taint fails under local-lib
- Fixed SELECT ... FOR UPDATE with LIMIT regression (RT#58554)
+ - Fixed CDBICompat to preserve order of column-group additions,
+ so that test relying on the order of %{} will no longer fail
+ - Fixed mysterious ::Storage::DBI goto-shim failures on older
+ perl versions
+ - Non-blessed reference exceptions are now correctly preserved
+ when thrown from udner DBIC (e.g. from txn_do)
+ - No longer disconnecting database handles supplied to connect
+ via a coderef
+ - Fixed t/inflate/datetime_pg.t failures due to a low dependency
+ on DateTime::Format::Pg (RT#61503)
+ - Fix dirtyness detection on source-less objects
+ - Fix incorrect limit_dialect assignment on Replicated pool members
+ - Fix invalid sql on relationship attr order_by with prefetch
+ - Fix primary key sequence detection for Oracle
+ (first trigger instead of trigger for column)
+ - Add various missing things to Optional::Dependencies
+ - Skip a test that breaks due to serious bugs in current DBD::SQLite
+ - Fix tests related to leaks and leaky perls (5.13.5, 5.13.6)
* Misc
- - Refactored capability handling in Storage::DBI, allows for
- standardized capability handling wrt query/enable/disable
+ - Entire test suite now passes under DBIC_TRACE=1
- Makefile.PL no longer imports GetOptions() to interoperate
better with Catalyst installers
- Bumped minimum Module::Install for developers
- Bumped DBD::SQLite dependency and removed some TODO markers
- from tests
- - No longer depend on SQL::Abstract::Limit - DBIC has been doing
- most of the heavy lifting for a while anyway
+ from tests (RT#59565)
+ - Do not execute t/zzzzzzz_sqlite_deadlock.t for regular module
+ installs - test is prone to spontaneous blow up
+ - DT-related tests now require a DateTime >= 0.55 (RT#60324)
+ - Makefile.PL now provides a pre-parsed DBIC version to the
+ Opt::Dep pod generator
+ - t/52leaks.t now performs very aggressive leak detection in
+ author/smoker mode
0.08123 2010-06-12 14:46 (UTC)
* Fixes