Merge pull request #60630 from nextcloud/backport/60225/stable32
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Has been cancelled
Psalm static code analysis / static-code-analysis-security (push) Has been cancelled
Psalm static code analysis / static-code-analysis-ocp (push) Has been cancelled
Psalm static code analysis / static-code-analysis-ncu (push) Has been cancelled

[stable32] perf: remove unneeded sort in getFolderContentsById
This commit is contained in:
Carl Schwan 2026-05-22 12:11:16 +02:00 committed by GitHub
commit f3ca2a688f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 7 deletions

View file

@ -555,7 +555,13 @@ trait Sharing {
$returnedShare = $this->getXmlResponse()->data[0];
if ($returnedShare->element) {
$returnedShare = $returnedShare->element[$number];
$returnedShare = (array)$returnedShare;
$returnedShare = $returnedShare['element'];
if (is_array($returnedShare)) {
usort($returnedShare, fn ($share1, $share2) => (int)$share1->id <=> (int)$share2->id);
}
$returnedShare = $returnedShare[$number];
}
$defaultExpectedFields = [

View file

@ -208,8 +208,7 @@ class Cache implements ICache {
$query = $this->getQueryBuilder();
$query->selectFileCache()
->whereParent($fileId)
->whereStorageId($this->getNumericStorageId())
->orderBy('name', 'ASC');
->whereStorageId($this->getNumericStorageId());
$metadataQuery = $query->selectMetadata();

View file

@ -211,6 +211,7 @@ class ViewTest extends \Test\TestCase {
$this->assertEquals('httpd/unix-directory', $cachedData['mimetype']);
$folderData = $rootView->getDirectoryContent('/');
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
/**
* expected entries:
* folder
@ -230,6 +231,7 @@ class ViewTest extends \Test\TestCase {
$this->assertEquals($storageSize, $folderData[3]['size']);
$folderData = $rootView->getDirectoryContent('/substorage');
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
/**
* expected entries:
* folder
@ -2875,11 +2877,13 @@ class ViewTest extends \Test\TestCase {
$rootView = new View('');
$folderData = $rootView->getDirectoryContent('/');
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
$this->assertCount(4, $folderData);
$this->assertEquals('folder', $folderData[0]['name']);
$this->assertEquals('foo.png', $folderData[1]['name']);
$this->assertEquals('foo.txt', $folderData[2]['name']);
$this->assertEquals('A', $folderData[3]['name']);
$this->assertEquals('A', $folderData[0]['name']);
$this->assertEquals('folder', $folderData[1]['name']);
$this->assertEquals('foo.png', $folderData[2]['name']);
$this->assertEquals('foo.txt', $folderData[3]['name']);
$folderData = $rootView->getDirectoryContent('/A');
$this->assertCount(1, $folderData);
@ -2890,6 +2894,7 @@ class ViewTest extends \Test\TestCase {
$this->assertEquals('C', $folderData[0]['name']);
$folderData = $rootView->getDirectoryContent('/A/B/C');
usort($folderData, fn (FileInfo $a, FileInfo $b) => $a->getName() <=> $b->getName());
$this->assertCount(3, $folderData);
$this->assertEquals('folder', $folderData[0]['name']);
$this->assertEquals('foo.png', $folderData[1]['name']);