Thanks Steffen, applied. Tim.
On Thu, Feb 10, 2005 at 11:59:38AM +0100, Steffen Goeldner wrote: > A DBI driver should pass the following tests: > > my @ti = $dbh->type_info; > ok( @ti,'type_info'); > > my $tia = $dbh->type_info_all; > is( ref $tia,'ARRAY','type_info_all'); > > my $idx = shift @$tia; > is( ref $idx,'HASH','index hash'); > > However, the last test fails with an implementation of > type_info_all() generated by DBI::DBD::Metadata. > That's because type_info() shifts the first element from > the array ref which type_info_all() returns, i.e. from > the original data structure. > The attached patch modifies type_info_all() such that it > returns a shallow copy. > Or should type_info_all() return a deep copy? > > > Steffen > Index: lib/DBI/DBD/Metadata.pm > =================================================================== > --- lib/DBI/DBD/Metadata.pm (revision 863) > +++ lib/DBI/DBD/Metadata.pm (working copy) > @@ -243,7 +243,7 @@ > sub type_info_all { > my ($dbh) = @_; > require DBD::Driver::TypeInfo; > - return $DBD::Driver::TypeInfo::type_info_all; > + return [ @$DBD::Driver::TypeInfo::type_info_all ]; > } > > Please replace Driver (or "<foo>") with the name of your driver. > @@ -326,7 +326,7 @@ > { > my (\$dbh) = [EMAIL PROTECTED]; > require DBD::${driver}::TypeInfo; > - return \$DBD::${driver}::TypeInfo::type_info_all; > + return [ [EMAIL PROTECTED]::${driver}::TypeInfo::type_info_all ]; > } > > # Transfer this to lib/DBD/${driver}/TypeInfo.pm.