Merge pull request #1944 from owncloud/query-caching-upgrade
Disable prepared query caching while doing an upgrade
This commit is contained in:
commit
9508a58c79
|
@ -4,6 +4,7 @@ $RUNTIME_NOAPPS = true;
|
||||||
require_once '../../lib/base.php';
|
require_once '../../lib/base.php';
|
||||||
|
|
||||||
if (OC::checkUpgrade(false)) {
|
if (OC::checkUpgrade(false)) {
|
||||||
|
\OC_DB::enableCaching(false);
|
||||||
$updateEventSource = new OC_EventSource();
|
$updateEventSource = new OC_EventSource();
|
||||||
$watcher = new UpdateWatcher($updateEventSource);
|
$watcher = new UpdateWatcher($updateEventSource);
|
||||||
OC_Hook::connect('update', 'success', $watcher, 'success');
|
OC_Hook::connect('update', 'success', $watcher, 'success');
|
||||||
|
@ -64,4 +65,4 @@ class UpdateWatcher {
|
||||||
$this->eventSource->close();
|
$this->eventSource->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
15
lib/db.php
15
lib/db.php
|
@ -42,6 +42,7 @@ class OC_DB {
|
||||||
const BACKEND_MDB2=1;
|
const BACKEND_MDB2=1;
|
||||||
|
|
||||||
static private $preparedQueries = array();
|
static private $preparedQueries = array();
|
||||||
|
static private $cachingEnabled = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var MDB2_Driver_Common
|
* @var MDB2_Driver_Common
|
||||||
|
@ -356,7 +357,7 @@ class OC_DB {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (isset(self::$preparedQueries[$query])) {
|
if (isset(self::$preparedQueries[$query]) and self::$cachingEnabled) {
|
||||||
return self::$preparedQueries[$query];
|
return self::$preparedQueries[$query];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -382,7 +383,7 @@ class OC_DB {
|
||||||
}
|
}
|
||||||
$result=new PDOStatementWrapper($result);
|
$result=new PDOStatementWrapper($result);
|
||||||
}
|
}
|
||||||
if (is_null($limit) || $limit == -1) {
|
if ((is_null($limit) || $limit == -1) and self::$cachingEnabled ) {
|
||||||
self::$preparedQueries[$rawQuery] = $result;
|
self::$preparedQueries[$rawQuery] = $result;
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
|
@ -915,6 +916,16 @@ class OC_DB {
|
||||||
}
|
}
|
||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param bool $enabled
|
||||||
|
*/
|
||||||
|
static public function enableCaching($enabled) {
|
||||||
|
if (!$enabled) {
|
||||||
|
self::$preparedQueries = array();
|
||||||
|
}
|
||||||
|
self::$cachingEnabled = $enabled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue