ANNOUNCE: DBI 1.55

ANNOUNCE: DBI 1.55

am 04.05.2007 23:07:28 von Tim.Bunce

file: $CPAN/authors/id/T/TI/TIMB/DBI-1.55.tar.gz
size: 477884 bytes
md5: 0a6eda0cb7dbd8e7bc49b03dbac7c3b2

=head2 Changes in DBI 1.55 (svn rev 9504), 4th May 2007

Fixed set_err() so HandleSetErr hook is executed reliably, if set.
Fixed accuracy of profiling when perl configured to use long doubles.
Fixed 42prof_data.t on fast systems with poor timers thanks to Malcolm Nooning.
Fixed potential corruption in selectall_arrayref and selectrow_arrayref
for compiled drivers, thanks to Rob Davies.
Rebuild your compiled drivers after installing DBI.

Changed some handle creation code from perl to C code,
to reduce handle creation cost by ~20%.
Changed internal implementation of the CachedKids attribute
so it's a normal handle attribute (and initially undef).
Changed connect_cached and prepare_cached to avoid a FETCH method call,
and thereby reduced cost by ~5% and ~30% respectively.
Changed _set_fbav to not croak when given a wrongly sized array,
it now warns and adjusts the row buffer to match.
Changed some internals to improve performance with threaded perls.
Changed DBD::NullP to be slightly more useful for testing.
Changed File::Spec prerequisite to not require a minimum version.
Changed tests to work with other DBMs thanks to ZMAN.
Changed ex/perl_dbi_nulls_test.pl to be more descriptive.

Added more functionality to the (undocumented) Callback mechanism.
Callbacks can now elect to provide a value to be returned, in which case
the method won't be called. A callback for "*" is applied to all methods
that don't have their own callback.
Added $h->{ReadOnly} attribute.
Added support for DBI Profile Path to contain refs to scalars
which will be de-ref'd for each profile sample.
Added dbilogstrip utility to edit DBI logs for diff'ing (gets installed)
Added details for SQLite 3.3 to NULL handling docs thanks to Alex Teslik.
Added take_imp_data() to DBI::PurePerl.

Gofer related changes:
Fixed gofer pipeone & stream transports to avoid risk of hanging.
Improved error handling and tracing significantly.
Added way to generate random 1-in-N failures for methods.
Added automatic retry-on-error mechanism to gofer transport base class.
Added tests to show automatic retry mechanism works a treat!
Added go_retry_hook callback hook so apps can fine-tune retry behaviour.
Added header to request and response packets for sanity checking
and to enable version skew between client and server.
Added forced_single_resultset, max_cached_sth_per_dbh and max_cached_dbh_per_drh
to gofer executor config.
Driver-private methods installed with install_method are now proxied.
No longer does a round-trip to the server for methods it knows
have not been overridden by the remote driver.
Most significant aspects of gofer behaviour are controlled by policy mechanism.
Added policy-controlled caching of results for some methods, such as schema metadata.
The connect_cached and prepare_cached methods cache on client and server.
The bind_param_array and execute_array methods are now supported.
Worked around a DBD::Sybase bind_param bug (which is fixed in DBD::Sybase 1.07)
Added goferperf.pl utility (doesn't get installed).
Many other assorted Gofer related bug fixes, enhancements and docs.
The http and mod_perl transports have been removed to their own distribution.
Client and server will need upgrading together for this release.

=cut

Enjoy!

Tim.