Skip to content

Commit e7741f8

Browse files
CarlSchwanbackportbot[bot]
authored andcommitted
perf(share): Remove useless order by id
This should improve a bit the performance in some particular cases Signed-off-by: Carl Schwan <carlschwan@kde.org>
1 parent 181cff5 commit e7741f8

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

lib/private/Share20/DefaultShareProvider.php

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,7 @@ public function getChildren(IShare $parent): array {
381381
], IQueryBuilder::PARAM_INT_ARRAY)
382382
)
383383
)
384-
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
385-
->orderBy('id');
384+
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
386385

387386
$cursor = $qb->executeQuery();
388387
while ($data = $cursor->fetch()) {
@@ -666,8 +665,6 @@ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool
666665
)
667666
);
668667

669-
$qb->orderBy('id');
670-
671668
$shares = [];
672669

673670
$chunks = array_chunk($childMountRootIds, 1000);
@@ -725,7 +722,9 @@ public function getSharesBy($userId, $shareType, $node, $reshares, $limit, $offs
725722
}
726723

727724
$qb->setFirstResult($offset);
728-
$qb->orderBy('id');
725+
if ($offset !== 0 || $limit !== -1) {
726+
$qb->orderBy('id');
727+
}
729728

730729
$cursor = $qb->executeQuery();
731730
$shares = [];
@@ -794,7 +793,6 @@ public function getSharesByPath(Node $path) {
794793
->andWhere($qb->expr()->eq('file_source', $qb->createNamedParameter($path->getId())))
795794
->andWhere($qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_USER, IShare::TYPE_GROUP, IShare::TYPE_LINK], IQueryBuilder::PARAM_INT_ARRAY)))
796795
->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
797-
->orderBy('id', 'ASC')
798796
->executeQuery();
799797

800798
$shares = [];
@@ -887,8 +885,10 @@ private function _getSharedWith(
887885
->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'))
888886
->leftJoin('f', 'storages', 'st', $qb->expr()->eq('f.storage', 'st.numeric_id'));
889887

890-
// Order by id
891-
$qb->orderBy('s.id');
888+
if ($offset !== 0 || $limit !== -1) {
889+
// Order by id
890+
$qb->orderBy('id');
891+
}
892892

893893
// Set limit and offset
894894
if ($limit !== -1) {
@@ -957,9 +957,12 @@ private function _getSharedWith(
957957
->from('share', 's')
958958
->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'))
959959
->leftJoin('f', 'storages', 'st', $qb->expr()->eq('f.storage', 'st.numeric_id'))
960-
->orderBy('s.id')
961960
->setFirstResult(0);
962961

962+
if ($offset !== 0 || $limit !== -1) {
963+
$qb->orderBy('id');
964+
}
965+
963966
if ($limit !== -1) {
964967
$qb->setMaxResults($limit - count($shares));
965968
}

0 commit comments

Comments
 (0)