The finish() docs say:
Calling C<finish> resets the L</Active> attribute for the statement. It
may also make some statement handle attributes (such as C<NAME> and C<TYPE>)
unavailable if they have not already been accessed (and thus cached).
Tim.
On Thu, Aug 07, 2008 at 04:29:25PM -0000, Greg Sabino Mullane wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: RIPEMD160
>
>
> I noticed something odd with NAME and NAME_lc / NAME_uc: if
> they are called, and then called *again* after $sth->finish()
> is called, both NAME_lc and NAME_uc return the previous values
> instead of an undef. I'm not sure if this is a DBI or
> DBD::Pg issue, but I thought I'd see if people can perhaps
> duplicate this on other DBDs:
>
> $sth = $dbh->prepare(q{SELECT 123 AS "Goldfish"});
> $sth->execute();
> print Dumper $sth->{NAME};
> print Dumper $sth->{NAME_lc};
> $sth->finish();
> print Dumper $sth->{NAME};
> print Dumper $sth->{NAME_lc};
> print Dumper $sth->{NAME_uc};
>
> For DBD::Pg, it prints:
>
> $VAR1 = [
> 'Goldfish'
> ];
> $VAR1 = [
> 'goldfish'
> ];
> $VAR1 = undef;
> $VAR1 = [
> 'goldfish'
> ];
> $VAR1 = undef;
>
> I also got a CPAN tester report today that is almost certainly related. It can
> be seen here:
>
> http://www.nntp.perl.org/group/perl.cpan.testers/2008/08/msg1997411.html
>
> The relevant info is:
>
> Assertion i == (((((SV *) (name_av))->sv_flags & 0x00800000)) ?
> Perl_mg_size(my_perl, (SV *) name_av) : ((XPVAV*)
> (name_av)->sv_any)->xav_fill)+1
> failed: file "DBI.xs", line 2001 at /usr/lib/perl5/5.10.0/Test/More.pm line
> 821.
> # Looks like you planned 250 tests but only ran 95.
>
> Test 96 is this on line 623 of 02attribs.t:
>
> $t='Statement handle attribute "NAME_uc" returns empty arrayref for updates';
> is_deeply ($sth->{'NAME_uc'}, [], $t);
>
> The file is here to see it in context:
>
> http://search.cpan.org/src/TURNSTEP/DBD-Pg-2.9.0/t/02attribs.t
>
>
> - --
> Greg Sabino Mullane [EMAIL PROTECTED]
> End Point Corporation
> PGP Key: 0x14964AC8 200808071224
> http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8
> -----BEGIN PGP SIGNATURE-----
>
> iEYEAREDAAYFAkibIqkACgkQvJuQZxSWSsgNsACg3VoEuo0AffJo8hHOC5xizqA1
> H10AoIAi7UzE++v+7/8peJfzfgdTdJ82
> =CoBV
> -----END PGP SIGNATURE-----
>