file: $CPAN/authors/id/T/TI/TIMB/DBI-1.26.tar.gz
size: 251030 bytes
md5: be6bf76b2ff110e610fd75b40f5f2bb6
=head2 Changes in DBI 1.26, 13th June 2002
Fixed t/40profile.t to work on Windows thanks to Smejkal Petr.
Fixed $h->{Profile} to return undef, not error, if not set.
Fixed DBI->available_drivers in scalar context thanks to Michael Schwern.
Added C implementations of selectrow_arrayref() and fetchall_arrayref()
in Driver.xst. All compiled drivers using Driver.xst will now be
faster making those calls. Most noticable with fetchall_arrayref for
many rows or selectrow_arrayref with a fast query. For example, using
DBD::mysql a selectrow_arrayref for a single row using a primary key
is ~20% faster, and fetchall_arrayref for 20000 rows is twice as fast!
Drivers just need to be recompiled and reinstalled to enable it.
The fetchall_arrayref speed up only applies if $slice parameter is not used.
Added $max_rows parameter to fetchall_arrayref() to optionally limit
the number of rows returned. Can now fetch batches of rows.
Added MaxRows attribute to selectall_arrayref()
which then passes it to fetchall_arrayref().
Changed selectrow_array to make use of selectrow_arrayref.
Trace level 1 now shows first two parameters of all methods
(used to only for that for some, like prepare,execute,do etc)
Trace indicator for recursive calls (first char on trace lines)
now starts at 1 not 2.
Documented that $h->func() does not trigger RaiseError etc
so applications must explicitly check for errors.
DBI::Profile with DBI_PROFILE now shows percentage time inside DBI.
HandleError docs updated to show that handler can edit error message.
HandleError subroutine interface is now regarded as stable.
=cut
The C implementations of selectrow_arrayref() and fetchall_arrayref() are
obviously the big news in this release.
Given the low-level and critical nature of these changes extra care
in testing is recommended. I've tested it with perl 5.5.3, 5.7.3, and
5.8.0 RC1 using DBD::mysql and all seems well.
Enjoy!
Tim.