aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Files/Cache/Cache.php18
1 files changed, 6 insertions, 12 deletions
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index 9a6f7d41faa..56069c88d14 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -359,18 +359,12 @@ class Cache implements ICache {
}
if (count($extensionValues)) {
- try {
- $query = $this->getQueryBuilder();
- $query->insert('filecache_extended');
- $query->hintShardKey('storage', $this->getNumericStorageId());
-
- $query->setValue('fileid', $query->createNamedParameter($id, IQueryBuilder::PARAM_INT));
- foreach ($extensionValues as $column => $value) {
- $query->setValue($column, $query->createNamedParameter($value));
- }
+ $insertCount = $this->connection->insertIgnoreConflict(
+ 'filecache_extended',
+ array_merge(['fileid' => $id], $extensionValues)
+ );
- $query->execute();
- } catch (UniqueConstraintViolationException $e) {
+ if ($insertCount === 0) {
$query = $this->getQueryBuilder();
$query->update('filecache_extended')
->whereFileId($id)
@@ -386,7 +380,7 @@ class Cache implements ICache {
$query->set($key, $query->createNamedParameter($value));
}
- $query->execute();
+ $query->executeStatement();
}
}