diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index f32e32b3148a4..57a4300b46141 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -425,8 +425,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->fetch()) { @@ -558,8 +557,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->fetch()) { @@ -614,7 +611,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 = []; @@ -691,8 +690,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 55b69e2ec42df..40e8d8d70c103 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -644,8 +644,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->fetch()) { @@ -839,7 +838,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 = []; @@ -914,8 +915,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) { @@ -1147,8 +1150,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->fetch()) {