Commit 9085e3ab authored by webchick's avatar webchick
Browse files

#840182 by chx, Berdir: Fixed Testing is broken due to wrong prefix being used.

parent 9e0af44f
...@@ -96,7 +96,9 @@ public function nextId($existing_id = 0) { ...@@ -96,7 +96,9 @@ public function nextId($existing_id = 0) {
$new_id = $this->query('INSERT INTO {sequences} () VALUES ()', array(), array('return' => Database::RETURN_INSERT_ID)); $new_id = $this->query('INSERT INTO {sequences} () VALUES ()', array(), array('return' => Database::RETURN_INSERT_ID));
} }
if (!$this->shutdownRegistered) { if (!$this->shutdownRegistered) {
drupal_register_shutdown_function(array($this, 'nextIdDelete')); // Use register_shutdown_function() here to keep the database system
// independent of Drupal.
register_shutdown_function(array($this, 'nextIdDelete'));
$shutdownRegistered = TRUE; $shutdownRegistered = TRUE;
} }
return $new_id; return $new_id;
...@@ -111,9 +113,19 @@ public function nextIdDelete() { ...@@ -111,9 +113,19 @@ public function nextIdDelete() {
// table based solely on values from the table so deleting all values would // table based solely on values from the table so deleting all values would
// be a problem in this case. Also, TRUNCATE resets the auto increment // be a problem in this case. Also, TRUNCATE resets the auto increment
// counter. // counter.
$max_id = $this->query('SELECT MAX(value) FROM {sequences}')->fetchField(); try {
// We know we are using MySQL here, so need for the slower db_delete(). $max_id = $this->query('SELECT MAX(value) FROM {sequences}')->fetchField();
$this->query('DELETE FROM {sequences} WHERE value < :value', array(':value' => $max_id)); // We know we are using MySQL here, no need for the slower db_delete().
$this->query('DELETE FROM {sequences} WHERE value < :value', array(':value' => $max_id));
}
// During testing, this function is called from shutdown with the
// simpletest prefix stored in $this->connection, and those tables are gone
// by the time shutdown is called so we need to ignore the database
// errors. There is no problem with completely ignoring errors here: if
// these queries fail, the sequence will work just fine, just use a bit
// more database storage and memory.
catch (PDOException $e) {
}
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment