X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=b187054e9772911984a55d9f0e37e5112be21fc7;hb=67341081b1a57cc8549e51a8fb1b8cd4661543c5;hp=09663a68d4e5911a2c9cc9955e095e82f2532475;hpb=a9e8284f478f029f6f50c9423c3fa20aa3256d4a;p=dbsrgits%2FDBIx-Class.git diff --git a/Changes b/Changes index 09663a6..b187054 100644 --- a/Changes +++ b/Changes @@ -1,10 +1,327 @@ Revision history for DBIx::Class * New Features / Changes + - The emulate_limit() arbitrary limit dialect emulation mechanism is + now deprecated, and will be removed when DBIx::Class migrates to + Data::Query + * Fixes + - When performing resultset update/delete only strip condition + qualifiers - leave the source name alone (RT#80015, RT#78844) + - More robust behavior under heavily threaded environments - make + sure we do not have refaddr reuse in the global storage registry + - Fix failing test on 5.8 under Win32 (RT#81114) + - Fix hash-randomization test issues (RT#81638) + - Disallow erroneous calling of connect_info on a replicated storage + (RT#78436) + * Misc + - Improve the populate docs in ::Schema and ::ResultSet + +0.08204 2012-11-08 + * New Features / Changes + - SQLMaker now accepts \'literal' with the 'for' rs attribute as an + override to the builtin FOR options + * Fixes + - Fix unique constraint violations in Ordered.pm blanket movement + (RT#79773, rolls back short-sighted 5e6fde33e) + - Fix API mismatch between new_result() and new_related() (originally + broken by fea3d045) + - Fix test failure on perl 5.8 + * Misc + - Much more extensive diagnostics when a new RDBMS/DSN combination is + encountered (RT#80431) + +0.08203 2012-10-18 + * Fixes + - Really fix inadequate $dbh->ping SQLite implementation (what shipped + in 0.08201 tickled other deficiencies in DBD::SQLite itself) + +0.08202 2012-10-06 + * Fixes + - Replace inadequate $dbh->ping SQLite implementation with our own, + fixes RT#78420 + +0.08200 2012-08-24 (UTC) + * Fixes + - Change one of the new tests for the previous release to not require + SQL::Translator + +0.08199 2012-08-22 (UTC) + * Fixes + - Roll back incomplete (and broken) internal changes - restore prefetch functionality + +0.08198 2012-07-11 03:43 (UTC) + * Fixes + - Fix a number of Win32 Test issues + - Fix silent Oracle connection failures + +0.08197 2012-07-10 10:32 (UTC) + * New Features / Changes + - Issue a warning when DateTime objects are passed to ->search + - Fast populate() in void context is now even more efficient by + going directly through execute_for_fetch bypassing execute_array + - Fix update()/delete() on complex resultsets to no longer fall back + to silly row-by-row deletion, construct a massive OR statement + instead + - Allow complex update/delete operations on sources without a + primary key, as long as they have at least one non-nullable + unique constraint + - dbicadmin now better supports catalyst-style config files, by + unrolling 'config_info' hashkeys + - Multiple Improvements MSSQL over DBD::ADO + - Transaction support + - Support for VARCHAR(MAX)/VARBINARY(MAX)/NVARCHAR(MAX) datatypes + - Nomalization of retrieved GUID values + + * Fixes + - Fix complex has_many prefetch with resultsets not selecting identity + columns from the root result source + - Fix SkipFirst and FirstSkip limit dialects (Informix and Firebird) + - Fix "Skimming limit" dialects (Top, FetchFirst) to properly check + the order_by criteria for stability + - Fix "Skimming limit" dialects (Top, FetchFirst) to propagate + non-selected order criteria when part of a larger subquery + - Fix RowNumberOver and all "skimming limits" to correctly assemble + bind values when supplied for both select and order_by + - Fix all subquery-based dialects to not lose a subquery fragment + when we both select and order by the result of the same subquery + - Fix the Sybase hubrid limit dialect (RowCountOrGenericSubQ) losing + Group/Having/Order clauses when called without an offset (RT#73244) + - No longer generate incorrect SQL on ->as_query called on resultsets + with software_limit enabled + - A number of corner case fixes of void context populate() with \[] + - Fix corner case of forked children disconnecting the parents DBI + handle + - Improve identity/autoinc retrieval code in MSSQL and Sybase - + should reduce weird side-effects especially with populate() + - Explicitly disable DBD::ODBC batch operations (as of DBD::ODBC 1.35) + for the following drivers too buggy to handle the optimized path: + - FreeTDS ODBC driver (when used with MSSQL) + - The Firebird ODBC driver + - The MSAccess ODBC driver + - Explicitly disable DBD::ODBC dynamic_cursors when using freetds 0.83 + or later - they made enough ODBC incompatible changes making it + impossible to support sanely + - Explicitly disable SCOPE_IDENTITY queries and statement caching for + MSSQL on DBD::Sybase compiled against freetds 0.83 or later - way too + buggy + - Disable statement caching when using Sybase ASE and DBD::Sybase + compiled against freetds 0.83 or later + - Fix leakage of $schema on in-memory new_related() calls + - Fix more cases of $schema leakage in SQLT::Parser::DBIC + - Fix leakage of $storage in ::Storage::DBI::Oracle + - Fix pessimization of Oracle RowNum limit dialect query when no + offset has been specified + - Remove useless vestigial pessimization in Ordered.pm for cases + when the position column is part of a unique constraint + - Fix dbicadmin to no longer ignore the documented 'config' option + - The schema-resultsource entanglement is now much more robust + under threads + - Fix ::Schema::ddl_filename() failing miserably on paths containing + certain numeric sequences + - t/53lean_startup.t adjusted for new 5.15.x base.pm behavior + + * Misc + - Centralized leak-checks for all instances of DBICTest::Schema + from within any test + - Now passes all tests with Test::Builder 1.005 + - Codebase is now trailing-whitespace-free + - Cleanup of complex resultset update/delete oprations - storage + specific code moved back to ResultSet and replaced by checks + of storage capabilities + - Fixed carp_once only emitting one single warning per package + regardless of warning content + - Test suite now can be safely executed in parallel (prove -jN + or HARNESS_OPTIONS=jN) + +0.08196 2011-11-29 05:35 (UTC) + * Fixes + - Fix tests for DBD::SQLite >= 1.34. + - Fix test failures with DBICTEST_SQLITE_USE_FILE set + - Fix the find() condition heuristics being invoked even when the + call defaults to 'primary' (i.e. when invoked with bare values) + - Throw much clearer error on incorrect inflation spec + - Fix incorrect storage behavior when first call on a fresh schema + is with_deferred_fk_checks + - Fix incorrect dependency on Test::Simple/Builder (RT#72282) + - Fix uninitialized warning in ::Storage::Sybase::ASE + - Improve/cache DBD-specific datatype bind checks (also solves a + nasty memleak with version.pm on multiple ->VERSION invocations) + - The internal carp module now correctly skips CAG frames when + reporting a callsite + - Fix test failures on perl < 5.8.7 and new Package::Stash::XS + - Fix TxnScopeGuard not behaving correctly when $@ is set at the + time of $guard instantiation + - Fix the join/prefetch resolver when dealing with ''/undef/() + relation specifications + + * Misc + - No longer depend on Variable::Magic now that a pure-perl + namespace::clean is available + - Drop Oracle's Math::BigInt req down to 1.80 - no fixes concerning + us were made since + +0.08195 2011-07-27 16:20 (UTC) + * Fixes + - Fix horrible oversight in the Oracle sqlmaker when dealing with + queries updating blobs (RT#69829) + +0.08194 2011-07-20 16:10 (UTC) + * Fixes + - Fix $rs->populate([]) to be a no-op rather than an exception + - Overhaul t/53lean_startup.t to better dodge false positives + - Stop Data::Compare from loading random plugins + - Oracle: Recalculate LOB bind indices for UPDATE with LOBs in WHERE + (RT#69548) + +0.08193 2011-07-14 17:00 (UTC) + * New Features / Changes + - Allow schema cloning to mutate attributes + - DBIC now attempts more aggressive de-duplication of where + conditions on resultset chaining + - The Ordered component is now smarter wrt reordering of dirty + objects, and does its job with less storage queries + - Logging via DBIC_TRACE=1= no longer overwrites the + logfile on every program startup, appending loglines instead + + * Fixes + - Fix issue where the query was becoming overly mangled when trying + to use pagination with a query that has a sub-select in the WHERE + clause + - Fix possible incorrect pagination on Oracle, when a resultset + is not ordered by a unique column + - Revert "Fix incorrect signature of the default sqlt_deploy_hook" + from 0.08191 - documentation was in fact incorrect, not the code + - Fix Sybase ASE IC::DateTime support (::Storage going out of sync + with new default format expected by DateTime::Format::Sybase) + - Fix a bug in update_all() resulting in the first row receiving a + different dataset than the subsequent ones + - Accomodate MSAccess supporting only 'INNER JOIN' (not plain 'JOIN') + - InflateColumn::DateTime option datetime_undef_if_invalid no longer + masks missing dependency exceptions (RT#66823) + - Fix bug in Schema::Versioned failing to insert a schema version row + during upgrades at the turn of the second + - Fix incorrect bind of integers >= 2^^32 (bigint columns) to + SQL_INTEGER, resulting in silent conversion to '-1' + - Fix pre 5.10 failures of t/55namespaces_cleaned.t due to buggy + require() (RT#68814) + - Oracle autoinc inserts no longer leave open cursors behind + +0.08192 2011-05-10 04:20 (UTC) + * Fixes + - Fix serious regression on SQLite, corrupting data when an alphanum + value does not correspond to a stale numeric datatype in colinfo + +0.08191 2011-05-02 00:45 (UTC) (deleted from CPAN) + * New Features / Changes + - Add quote_names connection option. When set to true automatically + sets quote_char and name_sep appropriate for your RDBMS + - Add retrieve_on_insert column info flag, allowing to retrieve any + column value instead of just autoinc primary keys + - Bring back strict ordering of selectors in complex search chains + (an ill-fated attempt was made in 0.08127 to order intelligently) + - All limit dialects (except for the older Top and FetchFirst) are + now using bind parameters for the limits/offsets, making DBI's + prepare_cached useful across paged resutsets + - Support for savepoints for SQLite + - Support for MS Access databases via DBD::ODBC and DBD::ADO (only + Win32 support currently tested) + - Support for the Firebird RDBMS over the new DBD::Firebird driver + - 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 + - ::Storage::DBI::sth was mistakenly marked/documented as public, + privatize and warn on deprecated use + - Massive overhaul of bind values/attributes handling - slightly + changes the output of as_query (should not cause compat issues) + - Support ancient DB2 versions (5.4 and older), with proper limit + dialect + - Support sub-second precision for TIMESTAMPs for Firebird over ODBC + - Support BLOBs and CLOBs in WHERE clauses for Oracle, including LIKE + queries for CLOBs. + + * Fixes + - Fix ::Storage::DBI::* MRO problems on 5.8.x perls + - 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 remaining errors with Oracle and identifiers longer than the + Oracle-imposed maximum of 30 characters (RT#66390) + - Fix older oracle-specific "WhereJoins" to work properly with + name quoting + - Fix problems with M.A.D. under CGI::SpeedyCGI (RT#65131) + - Reenable paging of cached resultsets - breakage erroneously added + in 0.08127 + - 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 + - Fix reverse_relationship_info on prototypical result sources + (sources not yet registered with a schema) + - Warn and skip relationships missing from a partial schema during + dbic cascade_delete + - Automatically require the requested cursor class before use + (RT#64795) + - Work around a Firebird ODBC driver bug exposed by DBD::ODBC 1.29 + - Fix (to the extent allowed by the driver) transaction support in + DBD::Sybase compiled against FreeTDS + - Fix exiting via next warnings in ResultSource::sequence() + - Fix stripping of table qualifiers in update/delete in arrayref + condition elements + - Change SQLMaker carp-monkeypatch to be compatible with versions + of SQL::Abstract >= 1.73 + - Fix using \[] literals in the from resultset attribute + - Fix populate() with \[], arrays (datatype) and other exotic values + - Fix handling of rollbacks in nested transactions + - Fix complex limits (RNO/RowNum/FetchFirst/Top/GenSubq) with + sub-selects in the selectors list (correlated subqueries) + - Fix inconsistency between $rs->next with and without HRI when all + the "root" columns are in fact injected from the right rs side + - Fix the join optimizer to correctly preserve the non-multi path to + a multi relationship ( x -> might_have y -> has_many z ) + - Fix object-derived custom-relationship resultsets to resultsources + with multilevel monikers (e.g. $schema->source('Foo::Bar') ) + - Fix incorrect signature of the default sqlt_deploy_hook - it now + matches the documentation of passing in the result source object + - Fix inadequate handling of internal storage methods within + ::Storage::Replicated (RT#66295) + + * Misc + - Rewire all warnings to a new Carp-like implementation internal + to DBIx::Class, and remove the Carp::Clan dependency + - Only load Class::C3 and friends if necessary ($] < 5.010) + - Greatly reduced loading of non-essential modules to aid startup + time (mainly benefiting CGI users) + - Make sure all namespaces are clean of rogue imports + - Dropped DBI req 2 years back - everything works with 1.57, no + point requiring something newer + +0.08190-TRIAL 2011-01-24 15:35 (UTC) + + * New Features / Changes + - Support for completely arbitrary SQL::Abstract-based conditions + in all types of relationships + +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 assuered destruction + 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 @@ -16,10 +333,22 @@ Revision history for DBIx::Class 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