aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/DB
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2024-08-15 18:04:55 +0200
committerLouis Chemineau <louis@chmn.me>2024-08-28 10:27:14 +0200
commitb21a399d1a7fab83ff80bc637c176915d3460f2b (patch)
tree19bd20b2640275d01401a4c093aad1ae6b736b78 /lib/private/DB
parentcc091b150eb370f16d3c7a076d912b08878af96e (diff)
downloadnextcloud-server-b21a399d1a7fab83ff80bc637c176915d3460f2b.tar.gz
nextcloud-server-b21a399d1a7fab83ff80bc637c176915d3460f2b.zip
fix: implement sharding compatible cleanup for various bits
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'lib/private/DB')
-rw-r--r--lib/private/DB/QueryBuilder/ExtendedQueryBuilder.php4
-rw-r--r--lib/private/DB/QueryBuilder/QueryBuilder.php2
-rw-r--r--lib/private/DB/QueryBuilder/Sharded/ShardedQueryBuilder.php6
3 files changed, 8 insertions, 4 deletions
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;
}