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) { 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()) {