diff options
Diffstat (limited to 'includes/database/database.inc')
-rw-r--r-- | includes/database/database.inc | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/includes/database/database.inc b/includes/database/database.inc index 7ab0078df..916ca4cc6 100644 --- a/includes/database/database.inc +++ b/includes/database/database.inc @@ -1178,26 +1178,7 @@ abstract class DatabaseConnection extends PDO { * An integer number larger than any number returned by earlier calls and * also larger than the $existing_id if one was passed in. */ - public function nextId($existing_id = 0) { - $transaction = $this->startTransaction(); - // We can safely use literal queries here instead of the slower query - // builder because if a given database breaks here then it can simply - // override nextId. However, this is unlikely as we deal with short strings - // and integers and no known databases require special handling for those - // simple cases. If another transaction wants to write the same row, it will - // wait until this transaction commits. - $stmt = $this->query('UPDATE {sequences} SET value = GREATEST(value, :existing_id) + 1', array( - ':existing_id' => $existing_id, - )); - if (!$stmt->rowCount()) { - $this->query('INSERT INTO {sequences} (value) VALUES (:existing_id + 1)', array( - ':existing_id' => $existing_id, - )); - } - // The transaction gets committed when the transaction object gets destroyed - // because it gets out of scope. - return $new_value; - } + abstract public function nextId($existing_id = 0); } /** |