- 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
parent
307eefd1ce
commit
8ae8865abc
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue