From d8d41218591b4191fcd55f4af8ddf088ead448c3 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Tue, 28 Jan 2025 11:25:29 -0100 Subject: [PATCH] lighter link to memberships Signed-off-by: Maxence Lange --- lib/CirclesQueryHelper.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/CirclesQueryHelper.php b/lib/CirclesQueryHelper.php index 5b70d83e7..b18ffcb4c 100644 --- a/lib/CirclesQueryHelper.php +++ b/lib/CirclesQueryHelper.php @@ -134,6 +134,29 @@ public function limitToInheritedMembers( ); } + /** + * lighter version with small inner join + */ + public function limitToMemberships( + string $alias, + string $field, + IFederatedUser $federatedUser, + ): void { + $this->queryBuilder->setDefaultSelectAlias($alias); + $expr = $this->queryBuilder->expr(); + $aliasMembership = $this->queryBuilder->generateAlias(CoreQueryBuilder::HELPER, CoreQueryBuilder::MEMBERSHIPS, $options); + + $this->queryBuilder->innerJoin( + $alias, + CoreRequestBuilder::TABLE_MEMBERSHIP, + $aliasMembership, + $expr->andX( + $this->queryBuilder->exprLimit('single_id', $federatedUser->getSingleId(), $aliasMembership), + $expr->eq($aliasMembership . '.circle_id', $alias . '.' . $field) + ) + ); + } + /** * @param string $field