From b21a399d1a7fab83ff80bc637c176915d3460f2b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 15 Aug 2024 18:04:55 +0200 Subject: fix: implement sharding compatible cleanup for various bits Signed-off-by: Robin Appelman --- lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php | 4 ++-- lib/private/DB/QueryBuilder/QueryBuilder.php | 2 +- lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'lib/private/DB') diff --git a/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php b/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php index 8ed88198c19..c40cadfbdb5 100644 --- a/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php +++ b/lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php @@ -289,8 +289,8 @@ abstract class ExtendedQueryBuilder implements IQueryBuilder { return $this->builder->executeStatement($connection); } - public function hintShardKey(string $column, mixed $value) { - $this->builder->hintShardKey($column, $value); + public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { + $this->builder->hintShardKey($column, $value, $overwrite); return $this; } diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index 76fa9f42bab..5c7e273c9ec 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -1370,7 +1370,7 @@ class QueryBuilder implements IQueryBuilder { return $this->connection->escapeLikeParameter($parameter); } - public function hintShardKey(string $column, mixed $value) { + public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { return $this; } diff --git a/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php b/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php index 6496453a1a6..650e414096e 100644 --- a/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php +++ b/lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php @@ -296,7 +296,11 @@ class ShardedQueryBuilder extends ExtendedQueryBuilder { ]; } - public function hintShardKey(string $column, mixed $value) { + public function hintShardKey(string $column, mixed $value, bool $overwrite = false) { + if ($overwrite) { + $this->primaryKeys = []; + $this->shardKeys = []; + } if ($this->shardDefinition?->isKey($column)) { $this->primaryKeys[] = $value; } -- cgit v1.2.3