mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix: misc code fixes around db sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
0f732199d2
commit
da59fd4389
9 changed files with 27 additions and 27 deletions
|
|
@ -289,12 +289,12 @@ abstract class ExtendedQueryBuilder implements IQueryBuilder {
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -560,7 +560,7 @@ class QueryBuilder implements IQueryBuilder {
|
|||
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 @@ class QueryBuilder implements IQueryBuilder {
|
|||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ class ShardedQueryBuilder extends ExtendedQueryBuilder {
|
|||
];
|
||||
}
|
||||
|
||||
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 @@ class ShardedQueryBuilder extends ExtendedQueryBuilder {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function runAcrossAllShards() {
|
||||
public function runAcrossAllShards(): self {
|
||||
$this->allShards = true;
|
||||
return $this;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1207,7 +1207,7 @@ class Cache implements ICache {
|
|||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
|
|
|
|||
|
|
@ -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<ICache> $localCacheClass
|
||||
* @param ?class-string<ICache> $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,
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ use OCP\Files\IMimeTypeLoader;
|
|||
use OCP\Files\NotFoundException;
|
||||
use OCP\Files\NotPermittedException;
|
||||
use OCP\IDBConnection;
|
||||
use function Symfony\Component\Translation\t;
|
||||
|
||||
class BackgroundCleanupJob extends TimedJob {
|
||||
/** @var IDBConnection */
|
||||
|
|
|
|||
|
|
@ -1036,7 +1036,7 @@ interface IQueryBuilder {
|
|||
* @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 @@ interface IQueryBuilder {
|
|||
* @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
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
}
|
||||
}
|
||||
|
||||
private function setupFileCache() {
|
||||
private function setupFileCache(): void {
|
||||
$this->cleanupDb();
|
||||
$query = $this->getQueryBuilder();
|
||||
$query->insert('storages')
|
||||
|
|
@ -92,7 +92,7 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$query->executeStatement();
|
||||
}
|
||||
|
||||
public function testSimpleOnlyPartitionQuery() {
|
||||
public function testSimpleOnlyPartitionQuery(): void {
|
||||
$builder = $this->getQueryBuilder();
|
||||
$builder->addPartition(new PartitionSplit('filecache', ['filecache']));
|
||||
|
||||
|
|
@ -129,7 +129,7 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class PartitionedQueryBuilderTest extends TestCase {
|
|||
$this->assertEquals($results[0]['path'], 'file1');
|
||||
}
|
||||
|
||||
public function testMultiJoinPartitionedQuery() {
|
||||
public function testMultiJoinPartitionedQuery(): void {
|
||||
$builder = $this->getQueryBuilder();
|
||||
$builder->addPartition(new PartitionSplit('filecache', ['filecache']));
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
);
|
||||
}
|
||||
|
||||
public function testGetShardKeySingleParam() {
|
||||
public function testGetShardKeySingleParam(): void {
|
||||
$query = $this->getQueryBuilder('filecache', 'storage', 'fileid');
|
||||
$query->select('fileid', 'path')
|
||||
->from('filecache')
|
||||
|
|
@ -56,7 +56,7 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$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 @@ class SharedQueryBuilderTest extends TestCase {
|
|||
$this->assertTrue(true);
|
||||
}
|
||||
|
||||
public function testGetShardKeyMultipleSingleParam() {
|
||||
public function testGetShardKeyMultipleSingleParam(): void {
|
||||
$query = $this->getQueryBuilder('filecache', 'storage', 'fileid');
|
||||
$query->select('fileid', 'path')
|
||||
->from('filecache')
|
||||
|
|
|
|||
Loading…
Reference in a new issue