fixup! fix(UserMountCache): Add back unique index for oc_mounts and use normal insert

pull/56933/head
provokateurin 2025-12-10 16:27:28 +07:00
parent 91b06a8be0
commit 2c4e5b4187
No known key found for this signature in database
1 changed files with 3 additions and 11 deletions

@ -467,16 +467,8 @@ class UserMountCache implements IUserMountCache {
public function getUsedSpaceForUsers(array $users) {
$builder = $this->connection->getQueryBuilder();
$slash = $builder->createNamedParameter('/');
$mountPoint = $builder->func()->concat(
$builder->func()->concat($slash, 'user_id'),
$slash
);
$userIds = array_map(function (IUser $user) {
return $user->getUID();
}, $users);
$mountPointHashes = array_map(static fn (IUser $user) => hash('xxh128', '/' . $user->getUID() . '/'), $users);
$userIds = array_map(static fn (IUser $user) => $user->getUID(), $users);
$query = $builder->select('m.user_id', 'f.size')
->from('mounts', 'm')
@ -485,7 +477,7 @@ class UserMountCache implements IUserMountCache {
$builder->expr()->eq('m.storage_id', 'f.storage'),
$builder->expr()->eq('f.path_hash', $builder->createNamedParameter(md5('files')))
))
->where($builder->expr()->eq('m.mount_point', $mountPoint))
->where($builder->expr()->in('m.mount_point_hash', $builder->createNamedParameter($mountPointHashes, IQueryBuilder::PARAM_STR_ARRAY)))
->andWhere($builder->expr()->in('m.user_id', $builder->createNamedParameter($userIds, IQueryBuilder::PARAM_STR_ARRAY)));
$result = $query->executeQuery();