summaryrefslogtreecommitdiff
path: root/includes/database/query.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database/query.inc')
-rw-r--r--includes/database/query.inc17
1 files changed, 10 insertions, 7 deletions
diff --git a/includes/database/query.inc b/includes/database/query.inc
index 9f8c1b991..7186c5a6a 100644
--- a/includes/database/query.inc
+++ b/includes/database/query.inc
@@ -676,14 +676,17 @@ class MergeQuery extends Query {
unset($update_fields[$exclude_field]);
}
}
- $update = $this->connection->update($this->table, $this->queryOptions)->fields($update_fields);
- foreach ($this->keyFields as $field => $value) {
- $update->condition($field, $value);
- }
- foreach ($this->expressionFields as $field => $expression) {
- $update->expression($field, $expression['expression'], $expression['arguments']);
+ if ($update_fields || $this->expressionFields) {
+ // Only run the update if there are no fields or expressions to update.
+ $update = $this->connection->update($this->table, $this->queryOptions)->fields($update_fields);
+ foreach ($this->keyFields as $field => $value) {
+ $update->condition($field, $value);
+ }
+ foreach ($this->expressionFields as $field => $expression) {
+ $update->expression($field, $expression['expression'], $expression['arguments']);
+ }
+ $update->execute();
}
- $update->execute();
}
else {
// If there is no existing record, run an insert query.