Merge pull request #60357 from nextcloud/backport/60225/stable33
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 (stable33, 8.4, stable33, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, 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

[stable33] perf: remove unneeded sort in getFolderContentsById
This commit is contained in:
Ferdinand Thiessen 2026-05-13 17:41:25 +02:00 committed by GitHub
commit fcb564312a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 7 deletions

View file

@ -556,7 +556,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

@ -221,8 +221,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

@ -209,6 +209,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
@ -228,6 +229,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
@ -2812,11 +2814,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);
@ -2827,6 +2831,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']);