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";
}