Skip to content

Commit f3ca2a6

Browse files
authored
Merge pull request #60630 from nextcloud/backport/60225/stable32
[stable32] perf: remove unneeded sort in getFolderContentsById
2 parents 97e27df + 8ed7aeb commit f3ca2a6

3 files changed

Lines changed: 17 additions & 7 deletions

File tree

build/integration/features/bootstrap/Sharing.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,13 @@ public function shareXIsReturnedWith(int $number, TableNode $body) {
555555

556556
$returnedShare = $this->getXmlResponse()->data[0];
557557
if ($returnedShare->element) {
558-
$returnedShare = $returnedShare->element[$number];
558+
$returnedShare = (array)$returnedShare;
559+
$returnedShare = $returnedShare['element'];
560+
if (is_array($returnedShare)) {
561+
usort($returnedShare, fn ($share1, $share2) => (int)$share1->id <=> (int)$share2->id);
562+
}
563+
564+
$returnedShare = $returnedShare[$number];
559565
}
560566

561567
$defaultExpectedFields = [

lib/private/Files/Cache/Cache.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,7 @@ public function getFolderContentsById($fileId) {
208208
$query = $this->getQueryBuilder();
209209
$query->selectFileCache()
210210
->whereParent($fileId)
211-
->whereStorageId($this->getNumericStorageId())
212-
->orderBy('name', 'ASC');
211+
->whereStorageId($this->getNumericStorageId());
213212

214213
$metadataQuery = $query->selectMetadata();
215214

tests/lib/Files/ViewTest.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ public function testCacheAPI(): void {
211211
$this->assertEquals('httpd/unix-directory', $cachedData['mimetype']);
212212

213213
$folderData = $rootView->getDirectoryContent('/');
214+
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
214215
/**
215216
* expected entries:
216217
* folder
@@ -230,6 +231,7 @@ public function testCacheAPI(): void {
230231
$this->assertEquals($storageSize, $folderData[3]['size']);
231232

232233
$folderData = $rootView->getDirectoryContent('/substorage');
234+
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
233235
/**
234236
* expected entries:
235237
* folder
@@ -2875,11 +2877,13 @@ public function testMountpointParentsCreated(): void {
28752877
$rootView = new View('');
28762878

28772879
$folderData = $rootView->getDirectoryContent('/');
2880+
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
28782881
$this->assertCount(4, $folderData);
2879-
$this->assertEquals('folder', $folderData[0]['name']);
2880-
$this->assertEquals('foo.png', $folderData[1]['name']);
2881-
$this->assertEquals('foo.txt', $folderData[2]['name']);
2882-
$this->assertEquals('A', $folderData[3]['name']);
2882+
2883+
$this->assertEquals('A', $folderData[0]['name']);
2884+
$this->assertEquals('folder', $folderData[1]['name']);
2885+
$this->assertEquals('foo.png', $folderData[2]['name']);
2886+
$this->assertEquals('foo.txt', $folderData[3]['name']);
28832887

28842888
$folderData = $rootView->getDirectoryContent('/A');
28852889
$this->assertCount(1, $folderData);
@@ -2890,6 +2894,7 @@ public function testMountpointParentsCreated(): void {
28902894
$this->assertEquals('C', $folderData[0]['name']);
28912895

28922896
$folderData = $rootView->getDirectoryContent('/A/B/C');
2897+
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
28932898
$this->assertCount(3, $folderData);
28942899
$this->assertEquals('folder', $folderData[0]['name']);
28952900
$this->assertEquals('foo.png', $folderData[1]['name']);

0 commit comments

Comments
 (0)