- Patch #22911 by Cvgbe: fixed table locking in PostgreSQL. You'll have to

use db_lock_table() and db_unlock_tables() for your code to be compatible.
4.7.x
Dries Buytaert 2005-08-29 19:17:17 +00:00
parent 307eefd1ce
commit 8ae8865abc
1 changed files with 4 additions and 4 deletions

View File

@ -232,10 +232,10 @@ function variable_get($name, $default) {
function variable_set($name, $value) {
global $conf;
db_query('LOCK TABLE {variable} WRITE');
db_lock_table('variable');
db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value));
db_query('UNLOCK TABLE');
db_unlock_tables();
cache_clear_all('variables');
@ -321,12 +321,12 @@ function cache_get($key) {
function cache_set($cid, $data, $expire = CACHE_PERMANENT, $headers = NULL) {
$data = db_encode_blob($data);
db_query('LOCK TABLE {cache} WRITE');
db_lock_table('cache');
db_query("UPDATE {cache} SET data = '%s', created = %d, expire = %d, headers = '%s' WHERE cid = '%s'", $data, time(), $expire, $headers, $cid);
if (!db_affected_rows()) {
@db_query("INSERT INTO {cache} (cid, data, created, expire, headers) VALUES ('%s', '%s', %d, %d, '%s')", $cid, $data, time(), $expire, $headers);
}
db_query('UNLOCK TABLE');
db_unlock_tables();
}
/**