Author: spadkins
Date: Fri Jul 23 10:09:30 2010
New Revision: 14280

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

Log:
enhanced store_rows() for MySQL to allow for expressions in the 
on-duplicate-key-update clause

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       Fri Jul 23 
10:09:30 2010
@@ -278,11 +278,21 @@
         my $first_update_column = 1;
         for ($colnum = 0; $colnum <= $#$cols; $colnum++) {
             $col = $cols->[$colnum];
-            if (!ref($update) || $update->{$col}) {
+            if (!ref($update)) {
                 $sql .= "," if (!$first_update_column);
                 $first_update_column = 0;
                 $sql .= "\n   $col = values($col)";
             }
+            elsif ($update->{$col}) {
+                $sql .= "," if (!$first_update_column);
+                $first_update_column = 0;
+                if ($update->{$col} eq "1") {
+                    $sql .= "\n   $col = values($col)";
+                }
+                else {
+                    $sql .= "\n   $col = $update->{$col}";
+                }
+            }
         }
         $sql .= "\n";
     }

Reply via email to