Author: spadkins
Date: Tue Jan 23 14:41:42 2007
New Revision: 8685

Modified:
   p5ee/trunk/App-Repository/lib/App/Repository/MySQL.pm

Log:
updated MySQL.pm insert_rows to batches of options->maxrows

Modified: p5ee/trunk/App-Repository/lib/App/Repository/MySQL.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/MySQL.pm       (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/MySQL.pm       Tue Jan 23 
14:41:42 2007
@@ -219,22 +219,32 @@
     }
     my $rows_ref = ref($rows);
     if ($rows_ref eq "ARRAY") {
-        $sql = $self->_mk_insert_rows_sql($table, $cols, $rows);
-        if ($debug_sql) {
-            print "DEBUG_SQL: _insert_rows()\n";
-            print $sql;
-        }
-        $retval = $dbh->do($sql);
-        if ($debug_sql) {
-            print "DEBUG_SQL: retval [$retval] $DBI::errstr\n";
-            print "\n";
-        }
+        my $maxrows = $options->{maxrows} || 100;
+        my $rownum = 0;
+        my (@current_rows, $rownum2);
+        while ($rownum <= $#$rows) {
+            $rownum2 = $rownum + $maxrows - 1;
+            $rownum2 = $#$rows if ($rownum2 > $#$rows);
+            @current_rows = @{$rows}[($rownum .. $rownum2)];
 
-        $nrows = $retval;
-        $self->{numrows} = $nrows;
-        if ($retval != $#$rows + 1) {
+            $sql = $self->_mk_insert_rows_sql($table, $cols, [EMAIL 
PROTECTED]);
+            if ($debug_sql) {
+                print "DEBUG_SQL: _insert_rows()\n";
+                print $sql;
+            }
+            $retval = $dbh->do($sql);
+            if ($debug_sql) {
+                print "DEBUG_SQL: retval [$retval] $DBI::errstr\n";
+                print "\n";
+            }
+
+            $nrows += $retval;
+            $rownum += $maxrows;
+        }
+        if ($nrows != $#$rows + 1) {
             $ok = 0;
         }
+        $self->{numrows} = $nrows;
     }
     else {
         my ($fh);

Reply via email to