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)
+ - 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
+ display properly in DBIC_TRACE
+ - Incomplete exception thrown on relationship auto-fk-inference
+ failures
+ - Fixed distinct with order_by to not double-specify the same
+ column in the GROUP BY clause
+ - Properly support column names with symbols (e.g. single quote)
+ via custom accessors
+ - Fixed ::Schema::Versioned to work properly with quoting on
+ (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
+ - 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 (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
+ - Make sure Oracle identifier shortener applies to auto-generated
+ column names, so we stay within the 30-char limit (RT#58271)
+ - Oracle sequence detection now works across schemas
+ - Fix a Storage/$dbh leak introduced by the migration to
+ Try::Tiny (this is *not* a Try::Tiny bug)
+ - Fix corner case of count with group-by over a 1:1 join column
+ where the selector ends up with column name clashes
+ - POD fixes (RT#58247)
+
+ * Misc
+ - Test suite default on-disk database now checks for Win32
+ fail-conditions even when running on other OSes
+
+0.08122 2010-06-03 17:41 (UTC)
+ * New Features
+ - Add DBIx::Class::FilterColumn for non-ref filtering
+ - ::Storage::DBI now correctly preserves a parent $dbh from
+ terminating children, even during interpreter-global
+ out-of-order destruction
+ - dbicadmin supports an -I option with the same semantics as
+ perl itself
+ - InflateColumn::DateTime support for MSSQL via DBD::Sybase
+ - Millisecond precision support for MSSQL datetimes for
+ InflateColumn::DateTime
+ - Oracle-specific hierarchical query syntax support:
+ CONNECT BY (NOCYCLE) / START WITH / ORDER SIBLINGS BY
+ - Support connecting using $ENV{DBI_DSN} and $ENV{DBI_DRIVER}
+ - current_source_alias method on ResultSet objects to
+ determine the alias to use in programatically assembled
+ search()es (originally added in 0.08100 but unmentioned)
+ - Rewrite/unification of all subselecting limit emulations
+ (RNO, Top, RowNum) to be much more robust wrt complex joined
+ resultsets
+ - MSSQL limits now don't require nearly as many applications of
+ the unsafe_subselect_ok attribute, due to optimized queries
+ - Support for Generic Subquery limit "emulation" - awfully slow
+ and inefficient but works on almost any db, and is preferred
+ to software limit emulation
+ - Sybase ASE driver now uses SET ROWCOUNT where possible, and
+ Generic Subquery otherwise for limit support instead of always
+ using software limit emulation
+ - create_ddl_dir (and derivatives) now attempt to create the given
+ $ddl_dir if it does not already exist
+ - deployment_statements now automatically supplies the current RDBMS
+ version to SQLT producer_args for MySQL, Pg, SQLite and Oracle
+
+ * Fixes
+ - Fix nasty potentially data-eating bug when deleting/updating
+ a limited resultset
+ - Fix find() to use result_class set on object
+ - Fix result_class setter behaviour to not mistakenly stuff attrs.
+ - Don't try and ensure_class_loaded an object. This doesn't work.
+ - Fix as_subselect_rs to not inject resultset class-wide where
+ conditions outside of the resulting subquery
+ - Fix count() failing with {for} resultset attribute (RT#56257)
+ - Fixed incorrect detection of Limit dialect on unconnected $schema
+ - update() on row not in_storage no longer throws an exception
+ if there are no dirty columns to update (fixes cascaded update
+ annoyances)
+ - update()/delete() on prefetching resultsets no longer results
+ in malformed SQL (some $rs attributes were erroneously left in)
+ - Fix dbicadmin to allow deploy() on non-versioned schema
+ - Fix dbicadmin to respect sql_dir on upgrade() (RT#57732)
+ - Update Schema::Versioned to respect hashref style of
+ connection_info
+ - Do not recreate the same related object twice during MultiCreate
+ (solves the problem of orphaned IC::FS files)
+ - Fully qualify xp_msver selector when using DBD::Sybase with
+ MSSQL (RT#57467)
+ - Fix ::DBI::Storage to always be able to present a full set of
+ connect() attributes to e.g. Schema::Versioned
+ - Fix Oracle auto-inc trigger detection of "INSERT OR UPDATE"-type
+ triggers
+
+ * Misc
+ - Reformatted Changelog \o/
+ - DBIC goes git://git.shadowcat.co.uk/dbsrgits/DBIx-Class.git
+ - Allow developers to skip optional dependency forcing when working
+ from a checkout
+ - Add a warning to load_namespaces if a class in ResultSet/ is not
+ a subclass of DBIx::Class::ResultSet
+ - All DBIC exception-handling switched to Try::Tiny
+ - All DBIC modules are now free of imports via namespace::clean
+ - Depend on optimized SQL::Abstract (faster SQL generation)
+ - Depend on new Class::Accessor::Grouped reintroducing optional use
+ of Class::XSAccessor (just install C::XSA and get lightning fast
+ column accessors)
+
+0.08121 2010-04-11 18:43:00 (UTC)
- Support for Firebird RDBMS with DBD::InterBase and ODBC
- Add core support for INSERT RETURNING (for storages that
supports this syntax, currently PostgreSQL and Firebird)
+ - Fix spurious warnings on multiple UTF8Columns component loads
+ - DBIx::Class::UTF8Columns entered deprecated state
- DBIx::Class::InflateColumn::File entered deprecated state
- DBIx::Class::Optional::Dependencies left experimental state
- Add req_group_list to Opt::Deps (RT#55211)
- Add support for mysql-specific STRAIGHT_JOIN (RT#55579)
- Cascading delete/update are now wrapped in a transaction
for atomicity
+ - Fix accidental autovivification of ENV vars
+ - Fix update_all and delete_all to be wrapped in a transaction
- Fix multiple deficiencies when using MultiCreate with
data-encoder components (e.g. ::EncodedColumn)
- Fix regression where SQL files with comments were not
is unresolvable
- Fix the join-optimiser to consider unqualified column names
whenever possible
+ - Fix an issue with multiple same-table joins confusing the join
+ optimizier
- Add has_relationship method to row objects
- Fix regression in set_column on PK-less objects
- Better error text on malformed/missing relationships
attribute
- Fix ambiguity in default directory handling of create_ddl_dir
(RT#54063)
- - Fix update_all and delete_all to be wrapped in a transaction
- Support add_columns('+colname' => { ... }) to augment column
definitions.
- - Fix spurious warnings on multiple UTF8Columns component loads
- - Unicode support documentation in Cookbook and UTF8Columns
0.08120 2010-02-24 08:58:00 (UTC)
- Make sure possibly overwritten deployment_statements methods in