On Fri, May 26, 2006 at 01:33:31PM +0100, Martin J. Evans wrote:
> I think a "ParamArrays" comparison is missing from around line 1962 of DBI.xs.

That would only be needed if the ParamArrays value didn't live in the
attibute cache - but it does, so the value is fetched by the 'finally
check the actual hash' block near the end.

But ParamArrays should be listed alongside ParamValues as a known
attribute that might be missing:

--- DBI.xs      (revision 6349)
+++ DBI.xs      (working copy)
@@ -1981,6 +1981,7 @@
        if ( !(         (*key=='H' && strEQ(key, "HandleError"))
                ||      (*key=='H' && strEQ(key, "HandleSetErr"))
                ||      (*key=='S' && strEQ(key, "Statement"))
+               ||      (*key=='P' && strEQ(key, "ParamArrays"))
                ||      (*key=='P' && strEQ(key, "ParamValues"))
                ||      (*key=='P' && strEQ(key, "Profile"))
                ||      (*key=='C' && strEQ(key, "CursorName"))

Perhaps that's what was causing problems for you.

> and the pod change for ParamArrays attached (but was a patch against
> subversion a few weeks ago).

Ah, thanks. Applied. I must have misplaced he one you sent me before.

> It tests fine for me on Linux and perl 5.8.8 with one compilation warning:
> 
> Perl.xs: In function `dbd_st_rows':
> Perl.xs:40: warning: unused parameter `h'

Fixed. Thanks.

> but does not work fully for my use of DBI because of the missing
> ParamArrays.

Try the above patch.

Tim.

> Martin
> --
> Martin J. Evans
> Easysoft Ltd, UK
> http://www.easysoft.com
> 
> 
> On 26-May-2006 Tim Bunce wrote:
> > http://www.data-plan.com/public/DBI-1.51-RC1.tar.gz
> > 
> > =head2 Changes in DBI 1.51 (svn rev 6349),   26 May 2006
> > 
> >   Fixed $dbh->clone method 'signature' thanks to Jeffrey Klein.
> >   Fixed default ping() method to return false if !$dbh->{Active}.
> >   Fixed t/40profile.t to be insensitive to long double precision.
> >   Fixed for perl 5.8.0's more limited weaken() function.
> >   Fixed DBD::Proxy to not alter $@ in disconnect or AUTOLOADd methods.
> >   Fixed bind_columns() to use return set_err(...) instead of die()
> >     to report incorrect number of parameters, thanks to Ben Thul.
> >   Fixed bind_col() to ignore undef as bind location, thanks to David 
> > Wheeler.
> >   Fixed for perl 5.9.x for non-threaded builds thanks to Nicholas Clark.
> >     Users of Perl >= 5.9.x will require DBI >= 1.51.
> >   Fixed fetching of rows as hash refs to preserve utf8 on field names
> >     from $sth->{NAME} thanks to Alexey Gaidukov.
> >   Fixed build on Win32 (dbd_postamble) thanks to David Golden.
> > 
> >   Improved performance for thread-enabled perls thanks to Gisle Aas.
> >   Drivers can now use PERL_NO_GET_CONTEXT thanks to Gisle Aas.
> >     Driver authors please read the notes in the DBI::DBD docs.
> >   Changed DBI::Profile format to always include a percentage,
> >     if not exiting then uses time between the first and last DBI call.
> >   Changed DBI::ProfileData to be more forgiving of systems with
> >     unstable clocks (where time may go backwards occasionally).
> >   Clarified the 'Subclassing the DBI' docs.
> >   Assorted minor changes to docs from comments on annocpan.org.
> >   Changed Makefile.PL to avoid incompatible options for old gcc.
> > 
> >   Added 'fetch array of hash refs' example to selectall_arrayref
> >     docs thanks to Tom Schindl.
> >   Added reference to $DBI::neat_maxlen in TRACING section of docs.
> >   Added ability for DBI::Profile Path to include attributes
> >     and a summary of where the code was called from.
> > 
> > =cut
> > 
> > Enjoy!
> > 
> > Tim.


Reply via email to