From da59fd4389bedd6b643f277b5e411872137569b3 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 9 Sep 2024 16:59:59 +0200 Subject: [PATCH] fix: misc code fixes around db sharding Signed-off-by: Robin Appelman --- .../DB/QueryBuilder/ExtendedQueryBuilder.php | 4 ++-- lib/private/DB/QueryBuilder/QueryBuilder.php | 6 +++--- .../QueryBuilder/Sharded/ShardedQueryBuilder.php | 4 ++-- lib/private/Files/Cache/Cache.php | 2 +- lib/private/Memcache/Factory.php | 5 +++-- lib/private/Preview/BackgroundCleanupJob.php | 1 - lib/public/DB/QueryBuilder/IQueryBuilder.php | 4 ++-- .../Partitioned/PartitionedQueryBuilderTest.php | 14 +++++++------- .../Sharded/SharedQueryBuilderTest.php | 14 +++++++------- 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php b/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php index c40cadfbdb5f6..f928132a123a8 100644 --- a/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php +++ b/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php @@ -289,12 +289,12 @@ public function executeStatement(?IDBConnection $connection = null): int { return $this->builder->executeStatement($connection); } - public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { + public function hintShardKey(string $column, mixed $value, bool $overwrite = false): self { $this->builder->hintShardKey($column, $value, $overwrite); return $this; } - public function runAcrossAllShards() { + public function runAcrossAllShards(): self { $this->builder->runAcrossAllShards(); return $this; } diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index 5c7e273c9ec73..e975d4907ef42 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -560,7 +560,7 @@ public function addSelect(...$selects) { return $this; } - private function addOutputColumns(array $columns) { + private function addOutputColumns(array $columns): void { foreach ($columns as $column) { if (is_array($column)) { $this->addOutputColumns($column); @@ -1370,11 +1370,11 @@ public function escapeLikeParameter(string $parameter): string { return $this->connection->escapeLikeParameter($parameter); } - public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { + public function hintShardKey(string $column, mixed $value, bool $overwrite = false): self { return $this; } - public function runAcrossAllShards() { + public function runAcrossAllShards(): self { // noop return $this; } diff --git a/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php b/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php index e7bc70ce440c3..e5b66470de08a 100644 --- a/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php +++ b/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php @@ -296,7 +296,7 @@ private function registerOrder(string $column, string $order): void { ]; } - public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { + public function hintShardKey(string $column, mixed $value, bool $overwrite = false): self { if ($overwrite) { $this->primaryKeys = []; $this->shardKeys = []; @@ -310,7 +310,7 @@ public function hintShardKey(string $column, mixed $value, bool $overwrite = fal return $this; } - public function runAcrossAllShards() { + public function runAcrossAllShards(): self { $this->allShards = true; return $this; } diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index a8d9067050dc0..ab6ba2d64d6a6 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -1207,7 +1207,7 @@ public function getCacheEntryFromSearchResult(ICacheEntry $rawEntry): ?ICacheEnt } } - private function moveFromStorageSharded(ShardDefinition $shardDefinition, ICache $sourceCache, ICacheEntry $sourceEntry, $targetPath) { + private function moveFromStorageSharded(ShardDefinition $shardDefinition, ICache $sourceCache, ICacheEntry $sourceEntry, $targetPath): void { if ($sourceEntry->getMimeType() === ICacheEntry::DIRECTORY_MIMETYPE) { $fileIds = $this->getChildIds($sourceCache->getNumericStorageId(), $sourceEntry->getPath()); } else { diff --git a/lib/private/Memcache/Factory.php b/lib/private/Memcache/Factory.php index 931c871d0f140..370130912d676 100644 --- a/lib/private/Memcache/Factory.php +++ b/lib/private/Memcache/Factory.php @@ -6,6 +6,7 @@ */ namespace OC\Memcache; +use Closure; use OCP\Cache\CappedMemoryCache; use OCP\ICache; use OCP\ICacheFactory; @@ -40,7 +41,7 @@ class Factory implements ICacheFactory { private IProfiler $profiler; /** - * @param callable $globalPrefixClosure + * @param Closure $globalPrefixClosure * @param LoggerInterface $logger * @param ?class-string $localCacheClass * @param ?class-string $distributedCacheClass @@ -48,7 +49,7 @@ class Factory implements ICacheFactory { * @param string $logFile */ public function __construct( - private $globalPrefixClosure, + private Closure $globalPrefixClosure, LoggerInterface $logger, IProfiler $profiler, ?string $localCacheClass = null, diff --git a/lib/private/Preview/BackgroundCleanupJob.php b/lib/private/Preview/BackgroundCleanupJob.php index acf7bf22f5259..44832a78eb91f 100644 --- a/lib/private/Preview/BackgroundCleanupJob.php +++ b/lib/private/Preview/BackgroundCleanupJob.php @@ -16,7 +16,6 @@ use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; use OCP\IDBConnection; -use function Symfony\Component\Translation\t; class BackgroundCleanupJob extends TimedJob { /** @var IDBConnection */ diff --git a/lib/public/DB/QueryBuilder/IQueryBuilder.php b/lib/public/DB/QueryBuilder/IQueryBuilder.php index c21793a24217e..0367adcb1c366 100644 --- a/lib/public/DB/QueryBuilder/IQueryBuilder.php +++ b/lib/public/DB/QueryBuilder/IQueryBuilder.php @@ -1036,7 +1036,7 @@ public function getColumnName($column, $tableAlias = ''); * @return $this * @since 30.0.0 */ - public function hintShardKey(string $column, mixed $value, bool $overwrite = false); + public function hintShardKey(string $column, mixed $value, bool $overwrite = false): self; /** * Set the query to run across all shards if sharding is enabled. @@ -1044,7 +1044,7 @@ public function hintShardKey(string $column, mixed $value, bool $overwrite = fal * @return $this * @since 30.0.0 */ - public function runAcrossAllShards(); + public function runAcrossAllShards(): self; /** * Get a list of column names that are expected in the query output diff --git a/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php b/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php index 12ba74fe89fe0..697b3ab92c980 100644 --- a/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php +++ b/tests/lib/DB/QueryBuilder/Partitioned/PartitionedQueryBuilderTest.php @@ -51,7 +51,7 @@ private function getQueryBuilder(): PartitionedQueryBuilder { } } - private function setupFileCache() { + private function setupFileCache(): void { $this->cleanupDb(); $query = $this->getQueryBuilder(); $query->insert('storages') @@ -92,7 +92,7 @@ private function setupFileCache() { $query->executeStatement(); } - private function cleanupDb() { + private function cleanupDb(): void { $query = $this->getQueryBuilder(); $query->delete('storages') ->where($query->expr()->gt('numeric_id', $query->createNamedParameter(1000000, IQueryBuilder::PARAM_INT))); @@ -115,7 +115,7 @@ private function cleanupDb() { $query->executeStatement(); } - public function testSimpleOnlyPartitionQuery() { + public function testSimpleOnlyPartitionQuery(): void { $builder = $this->getQueryBuilder(); $builder->addPartition(new PartitionSplit('filecache', ['filecache'])); @@ -129,7 +129,7 @@ public function testSimpleOnlyPartitionQuery() { $this->assertEquals($results[0]['path'], 'file1'); } - public function testSimplePartitionedQuery() { + public function testSimplePartitionedQuery(): void { $builder = $this->getQueryBuilder(); $builder->addPartition(new PartitionSplit('filecache', ['filecache'])); @@ -151,7 +151,7 @@ public function testSimplePartitionedQuery() { $this->assertEquals($results[0]['path'], 'file1'); } - public function testMultiTablePartitionedQuery() { + public function testMultiTablePartitionedQuery(): void { $builder = $this->getQueryBuilder(); $builder->addPartition(new PartitionSplit('filecache', ['filecache', 'filecache_extended'])); @@ -174,7 +174,7 @@ public function testMultiTablePartitionedQuery() { $this->assertEquals($results[0]['upload_time'], 1234); } - public function testPartitionedQueryFromSplit() { + public function testPartitionedQueryFromSplit(): void { $builder = $this->getQueryBuilder(); $builder->addPartition(new PartitionSplit('filecache', ['filecache'])); @@ -195,7 +195,7 @@ public function testPartitionedQueryFromSplit() { $this->assertEquals($results[0]['path'], 'file1'); } - public function testMultiJoinPartitionedQuery() { + public function testMultiJoinPartitionedQuery(): void { $builder = $this->getQueryBuilder(); $builder->addPartition(new PartitionSplit('filecache', ['filecache'])); diff --git a/tests/lib/DB/QueryBuilder/Sharded/SharedQueryBuilderTest.php b/tests/lib/DB/QueryBuilder/Sharded/SharedQueryBuilderTest.php index 8f95c1b626352..a135b9159ddfd 100644 --- a/tests/lib/DB/QueryBuilder/Sharded/SharedQueryBuilderTest.php +++ b/tests/lib/DB/QueryBuilder/Sharded/SharedQueryBuilderTest.php @@ -46,7 +46,7 @@ private function getQueryBuilder(string $table, string $shardColumn, string $pri ); } - public function testGetShardKeySingleParam() { + public function testGetShardKeySingleParam(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache') @@ -56,7 +56,7 @@ public function testGetShardKeySingleParam() { $this->assertEquals([10], $query->getShardKeys()); } - public function testGetPrimaryKeyParam() { + public function testGetPrimaryKeyParam(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache') @@ -66,7 +66,7 @@ public function testGetPrimaryKeyParam() { $this->assertEquals([], $query->getShardKeys()); } - public function testValidateWithShardKey() { + public function testValidateWithShardKey(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache') @@ -76,7 +76,7 @@ public function testValidateWithShardKey() { $this->assertTrue(true); } - public function testValidateWithPrimaryKey() { + public function testValidateWithPrimaryKey(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache') @@ -86,7 +86,7 @@ public function testValidateWithPrimaryKey() { $this->assertTrue(true); } - public function testValidateWithNoKey() { + public function testValidateWithNoKey(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache') @@ -97,7 +97,7 @@ public function testValidateWithNoKey() { $this->fail('exception expected'); } - public function testValidateNonSharedTable() { + public function testValidateNonSharedTable(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('configvalue') ->from('appconfig') @@ -107,7 +107,7 @@ public function testValidateNonSharedTable() { $this->assertTrue(true); } - public function testGetShardKeyMultipleSingleParam() { + public function testGetShardKeyMultipleSingleParam(): void { $query = $this->getQueryBuilder('filecache', 'storage', 'fileid'); $query->select('fileid', 'path') ->from('filecache')