Author: timbo
Date: Wed Apr 25 01:55:43 2012
New Revision: 15298

Modified:
   dbi/trunk/DBI.pm

Log:
rework fetchall_arrayref slice logic to use a column loop

Modified: dbi/trunk/DBI.pm
==============================================================================
--- dbi/trunk/DBI.pm    (original)
+++ dbi/trunk/DBI.pm    Wed Apr 25 01:55:43 2012
@@ -2041,7 +2041,12 @@
                my %map = $rename
                    ? map { lc($_) => $slice->{$_} } keys %$slice
                    : map { lc($_) => $_ } keys %$slice;
-               $sth->bind_columns( map { exists $map{$_} ? \$row{$map{$_}} : 
\do { my $dummy } } @{$sth->FETCH('NAME_lc')} );
+                my $idx = 0;
+               for my $col_name ( @{$sth->FETCH('NAME_lc')} ) {
+                    ++$idx;
+                    next unless exists $map{$col_name};
+                    $sth->bind_col($idx, \$row{$map{$col_name}});
+                }
            }
            else {
                $sth->bind_columns( \( @row{ 
@{$sth->FETCH($sth->FETCH('FetchHashKeyName')) } } ) );

Reply via email to