From e43557ce8d2ef1e82ff436b81256aee6e0a802bc Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 8 May 2026 18:11:08 +0200 Subject: [PATCH 1/2] perf: remove unneeded sort when listing mail shares Signed-off-by: Robin Appelman --- apps/sharebymail/lib/ShareByMailProvider.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index 8906db0084fe8..1d903f8f872ae 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -649,8 +649,7 @@ public function getChildren(IShare $parent): array { $qb->select('*') ->from('share') ->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId()))) - ->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL))) - ->orderBy('id'); + ->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL))); $cursor = $qb->executeQuery(); while ($data = $cursor->fetchAssociative()) { @@ -844,7 +843,9 @@ public function getSharesBy($userId, $shareType, $node, $reshares, $limit, $offs } $qb->setFirstResult($offset); - $qb->orderBy('id'); + if ($offset !== 0 || $limit !== -1) { + $qb->orderBy('id'); + } $cursor = $qb->executeQuery(); $shares = []; @@ -919,8 +920,10 @@ public function getSharedWith($userId, $shareType, $node, $limit, $offset): arra $qb->select('*') ->from('share'); - // Order by id - $qb->orderBy('id'); + // Order by id only if we need it for limit/offset + if ($offset !== 0 || $limit !== -1) { + $qb->orderBy('id'); + } // Set limit and offset if ($limit !== -1) { @@ -1152,8 +1155,6 @@ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool $qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId()))); - $qb->orderBy('id'); - $cursor = $qb->executeQuery(); $shares = []; while ($data = $cursor->fetchAssociative()) { From 5c7ac3ac4eb1893f3b2c0301f60e770529201127 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 8 May 2026 18:12:13 +0200 Subject: [PATCH 2/2] perf: remove unneeded sort when listing federated shares Signed-off-by: Robin Appelman --- .../lib/FederatedShareProvider.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index 1302f2ca980af..e035326bfb0fb 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -406,8 +406,7 @@ public function getChildren(IShare $parent): array { $qb->select('*') ->from('share') ->where($qb->expr()->eq('parent', $qb->createNamedParameter($parent->getId()))) - ->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter($this->supportedShareType, IQueryBuilder::PARAM_INT_ARRAY))) - ->orderBy('id'); + ->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter($this->supportedShareType, IQueryBuilder::PARAM_INT_ARRAY))); $cursor = $qb->executeQuery(); while ($data = $cursor->fetchAssociative()) { @@ -539,8 +538,6 @@ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool $qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId()))); - $qb->orderBy('id'); - $cursor = $qb->executeQuery(); $shares = []; while ($data = $cursor->fetchAssociative()) { @@ -595,7 +592,9 @@ public function getSharesBy($userId, $shareType, $node, $reshares, $limit, $offs } $qb->setFirstResult($offset); - $qb->orderBy('id'); + if ($offset !== 0 || $limit !== -1) { + $qb->orderBy('id'); + } $cursor = $qb->executeQuery(); $shares = []; @@ -672,8 +671,9 @@ public function getSharedWith($userId, $shareType, $node, $limit, $offset) { $qb->select('*') ->from('share'); - // Order by id - $qb->orderBy('id'); + if ($offset !== 0 || $limit !== -1) { + $qb->orderBy('id'); + } // Set limit and offset if ($limit !== -1) {