summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-07-17 07:46:47 +0200
committerGitHub <noreply@github.com>2019-07-17 07:46:47 +0200
commit4a52d933b6b032fed1f950b483c6b50cc6178ebd (patch)
treec38b39870100e8df540a20c31e09ab2ec7bcf136
parent63276cd0ea9bbc763da9ed3da22a27697cd8bc87 (diff)
parent8ca2b3180448293d42cdbfe4ad024ccc0f7b5206 (diff)
downloadnextcloud-server-4a52d933b6b032fed1f950b483c6b50cc6178ebd.tar.gz
nextcloud-server-4a52d933b6b032fed1f950b483c6b50cc6178ebd.zip
Merge pull request #16424 from nextcloud/fix/do_not_keep_searching
Do not keep searching for recent
-rw-r--r--lib/private/Files/Node/Folder.php7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php
index 1e9088a7c19..b0569a24aa1 100644
--- a/lib/private/Files/Node/Folder.php
+++ b/lib/private/Files/Node/Folder.php
@@ -383,6 +383,8 @@ class Folder extends Node implements \OCP\Files\Folder {
// Search in batches of 500 entries
$searchLimit = 500;
$results = [];
+ $searchResultCount = 0;
+ $count = 0;
do {
$searchResult = $this->recentSearch($searchLimit, $offset, $storageIds, $folderMimetype);
@@ -391,6 +393,8 @@ class Folder extends Node implements \OCP\Files\Folder {
break;
}
+ $searchResultCount += count($searchResult);
+
$parseResult = $this->recentParse($searchResult, $mountMap, $mimetypeLoader);
foreach ($parseResult as $result) {
@@ -398,7 +402,8 @@ class Folder extends Node implements \OCP\Files\Folder {
}
$offset += $searchLimit;
- } while (count($results) < $limit);
+ $count++;
+ } while (count($results) < $limit && ($searchResultCount < (3 * $limit) || $count < 5));
return array_slice($results, 0, $limit);
}