Announcing DBIx::Class 0.08124

Hello all,

I’m proud to announce DBIx::Class 0.08124! It’s been a VERY long time since 0.08123 and a this release brings lots of goodies.

My favorite is color-coded, correctly indented SQL, with placeholders filled in. Try it! Just do:

DBIC_TRACE_PROFILE=console DBIC_TRACE=1 ./foo.pl

There is also the exciting new “-ident” pseudofunction for SQL:

$rs->search({ foo => { -ident => ‘bar’ } })

which is the same as

$rs->search({ foo => \‘bar’ })

but more introspectible!

Also, I’m a big fan of the new doc-map, which is at DBIx::Class::Manual::Features. Check it out!


The entire changelog is as follows:

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
Posted Thu, Oct 28, 2010