Browse Source
Use cache to determine if value need to be updated
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
pull/1734/head
Roeland Jago Douma
10 years ago
No known key found for this signature in database
GPG Key ID: 1E152838F164D13B
1 changed files with
19 additions and
0 deletions
-
lib/private/AllConfig.php
|
|
|
@ -215,6 +215,25 @@ class AllConfig implements \OCP\IConfig { |
|
|
|
// TODO - FIXME
|
|
|
|
$this->fixDIInit(); |
|
|
|
|
|
|
|
if (isset($this->userCache[$userId][$appName][$key])) { |
|
|
|
if ($this->userCache[$userId][$appName][$key] === (string)$value) { |
|
|
|
return; |
|
|
|
} else if ($preCondition !== null && $this->userCache[$userId][$appName][$key] !== (string)$preCondition) { |
|
|
|
return; |
|
|
|
} else { |
|
|
|
$qb = $this->connection->getQueryBuilder(); |
|
|
|
$qb->update('preferences') |
|
|
|
->set('configvalue', $qb->createNamedParameter($value)) |
|
|
|
->where($qb->expr()->eq('userid', $qb->createNamedParameter($userId))) |
|
|
|
->andWhere($qb->expr()->eq('appid', $qb->createNamedParameter($appName))) |
|
|
|
->andWhere($qb->expr()->eq('configkey', $qb->createNamedParameter($key))); |
|
|
|
$qb->execute(); |
|
|
|
|
|
|
|
$this->userCache[$userId][$appName][$key] = $value; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$preconditionArray = []; |
|
|
|
if (isset($preCondition)) { |
|
|
|
$preconditionArray = [ |
|
|
|
|