summaryrefslogtreecommitdiff
path: root/includes/database/database.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database/database.inc')
-rw-r--r--includes/database/database.inc21
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);
}
/**