use insertifnotexists
This commit is contained in:
parent
483c6b68e2
commit
8a4c0829fb
|
@ -119,30 +119,12 @@ class UserMountCache implements IUserMountCache {
|
|||
}
|
||||
|
||||
private function addToCache(ICachedMountInfo $mount) {
|
||||
$builder = $this->connection->getQueryBuilder();
|
||||
|
||||
$query = $builder->insert('mounts')
|
||||
->values([
|
||||
'storage_id' => ':storage',
|
||||
'root_id' => ':root',
|
||||
'user_id' => ':user',
|
||||
'mount_point' => ':mount'
|
||||
]);
|
||||
$query->setParameters([
|
||||
':storage' => $mount->getStorageId(),
|
||||
':root' => $mount->getRootId(),
|
||||
':user' => $mount->getUser()->getUID(),
|
||||
':mount' => $mount->getMountPoint()
|
||||
$this->connection->insertIfNotExist('*PREFIX*mounts', [
|
||||
'storage_id' => $mount->getStorageId(),
|
||||
'root_id' => $mount->getRootId(),
|
||||
'user_id' => $mount->getUser()->getUID(),
|
||||
'mount_point' => $mount->getMountPoint()
|
||||
]);
|
||||
try {
|
||||
$query->execute();
|
||||
} catch (UniqueConstraintViolationException $e) {
|
||||
// seems to mainly happen in tests
|
||||
// can also happen during concurrent access but we can safely ignore it
|
||||
// since inserting the same data twice will still result in the correct data being inserted
|
||||
$this->logger->error('Duplicate entry while inserting mount');
|
||||
$this->logger->logException($e);
|
||||
}
|
||||
}
|
||||
|
||||
private function setMountPoint(ICachedMountInfo $mount) {
|
||||
|
|
Loading…
Reference in New Issue