Skip to content

Commit 8469b44

Browse files
authored
Merge pull request #29507 from nextcloud/backport/29281/stable21
2 parents d84c3c9 + 43e829a commit 8469b44

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

lib/private/Files/Cache/Cache.php

+12-4
Original file line numberDiff line numberDiff line change
@@ -587,8 +587,12 @@ private function removeChildren(ICacheEntry $entry) {
587587

588588
$query = $this->getQueryBuilder();
589589
$query->delete('filecache_extended')
590-
->where($query->expr()->in('fileid', $query->createNamedParameter($childIds, IQueryBuilder::PARAM_INT_ARRAY)));
591-
$query->execute();
590+
->where($query->expr()->in('fileid', $query->createParameter('childIds')));
591+
592+
foreach (array_chunk($childIds, 1000) as $childIdChunk) {
593+
$query->setParameter('childIds', $childIdChunk, IQueryBuilder::PARAM_INT_ARRAY);
594+
$query->execute();
595+
}
592596

593597
/** @var ICacheEntry[] $childFolders */
594598
$childFolders = array_filter($children, function ($child) {
@@ -602,8 +606,12 @@ private function removeChildren(ICacheEntry $entry) {
602606

603607
$query = $this->getQueryBuilder();
604608
$query->delete('filecache')
605-
->whereParentIn($parentIds);
606-
$query->execute();
609+
->whereParentInParameter('parentIds');
610+
611+
foreach (array_chunk($parentIds, 1000) as $parentIdChunk) {
612+
$query->setParameter('parentIds', $parentIdChunk, IQueryBuilder::PARAM_INT_ARRAY);
613+
$query->execute();
614+
}
607615
}
608616

609617
/**

lib/private/Files/Cache/CacheQueryBuilder.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ public function whereParent(int $parent) {
9595
return $this;
9696
}
9797

98-
public function whereParentIn(array $parents) {
98+
public function whereParentInParameter(string $parameter) {
9999
$alias = $this->alias;
100100
if ($alias) {
101101
$alias .= '.';
102102
} else {
103103
$alias = '';
104104
}
105105

106-
$this->andWhere($this->expr()->in("{$alias}parent", $this->createNamedParameter($parents, IQueryBuilder::PARAM_INT_ARRAY)));
106+
$this->andWhere($this->expr()->in("{$alias}parent", $this->createParameter($parameter)));
107107

108108
return $this;
109109
}

0 commit comments

Comments
 (0)