From e1652e99b61577ac42d6d6618420c872c0e42435 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 22 Feb 2009 16:31:24 +0000 Subject: - Patch #374940 by Dave Reid et al: fixed MergeQuery problem. --- includes/database/mysql/query.inc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'includes/database/mysql') diff --git a/includes/database/mysql/query.inc b/includes/database/mysql/query.inc index 751137602..d5cb36505 100644 --- a/includes/database/mysql/query.inc +++ b/includes/database/mysql/query.inc @@ -143,6 +143,12 @@ class MergeQuery_mysql extends MergeQuery { } } + // If the merge query has no fields to update, add the first key as an + // update field so the query will not fail if a duplicate key is found. + if (!$update_fields && !$this->expressionFields) { + $update_fields = array_slice($this->keyFields, 0, 1, TRUE); + } + $insert_fields = $this->insertFields + $this->keyFields; $query = "INSERT INTO {" . $this->table . '} (' . implode(', ', array_keys($insert_fields)) . ') VALUES '; -- cgit v1.2.3