From e631f87ca950c7203390e4364fcc07f8fed35586 Mon Sep 17 00:00:00 2001 From: Giuliano Mele Date: Thu, 28 Apr 2022 10:02:20 +0200 Subject: [PATCH] Improve performance of share provider Reduces the number of database table joins in a single call to share providers getShareWith function from 10 to 6 Signed-off-by: Giuliano Mele --- lib/Db/ShareWrapperRequest.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/Db/ShareWrapperRequest.php b/lib/Db/ShareWrapperRequest.php index 3ea791db4..7c591c1b3 100644 --- a/lib/Db/ShareWrapperRequest.php +++ b/lib/Db/ShareWrapperRequest.php @@ -297,7 +297,15 @@ public function getSharedWith( $qb->leftJoinCircle(CoreQueryBuilder::SHARE, null, 'share_with'); } - $qb->limitToInitiator(CoreQueryBuilder::SHARE, $federatedUser, 'share_with'); + $qb->leftJoin( + 'sh_cc', + 'circles_membership', + 'sh_ms', + $qb->expr()->eq('sh_cc.unique_id', 'sh_ms.circle_id') + ); + $qb->andWhere( + $qb->expr()->eq('sh_ms.single_id', $qb->createNamedParameter($federatedUser->getSingleId())) + ); $qb->leftJoinFileCache(CoreQueryBuilder::SHARE); $qb->limitNull('parent', false);