X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=Changes;h=64216331418caf5fb8bff5b6e3bbd2774da8797f;hp=5a71df3e7586ec209f16d92242717bae71400c5c;hb=4549ba4966c026a49409c7dde70f32b2512250b0;hpb=09cedb88933d7210c4af1b6bed5639bad24ea4c9 diff --git a/Changes b/Changes index 5a71df3..6421633 100644 --- a/Changes +++ b/Changes @@ -1,9 +1,334 @@ Revision history for DBIx::Class + * New Features / Changes + - Schema/resultsource instances are now crossreferenced via a new + system guaranteeing leak-free mutually assuered destruction + - 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 + - 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) + + * 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 + handled properly by ::Schema::Versioned. - Fix regression on not properly throwing when $obj->relationship 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 for SQLite to ignore the { for => ... } attribute + - Fix regression in set_column on PK-less objects + - Better error text on malformed/missing relationships + - Add POD about the significance of PK columns + - Fix for SQLite to ignore the (unsupported) { for => ... } + attribute + - Fix ambiguity in default directory handling of create_ddl_dir + (RT#54063) + - Support add_columns('+colname' => { ... }) to augment column + definitions. 0.08120 2010-02-24 08:58:00 (UTC) - Make sure possibly overwritten deployment_statements methods in