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.