Skip to content

Commit

Permalink
fixup! fix(db): also chunk MariaDB deletes
Browse files Browse the repository at this point in the history
  • Loading branch information
miaulalala committed Sep 12, 2023
1 parent 21b5fe6 commit 7bc6156
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions lib/Data.php
Original file line number Diff line number Diff line change
Expand Up @@ -480,8 +480,8 @@ public function getActivitySince(string $user, int $since, bool $byOthers) {
* @return void
*/
private function deleteActivitiesForMySQL(array $conditions): void {
$subQuery = $this->connection->getQueryBuilder();
$subQuery->select('activity_id')
$query = $this->connection->getQueryBuilder();
$query->select('activity_id')
->from('activity');

foreach ($conditions as $column => $comparison) {
Expand All @@ -492,11 +492,11 @@ private function deleteActivitiesForMySQL(array $conditions): void {
$operation = '=';
$value = $comparison;
}
$subQuery->where($subQuery->expr()->comparison($column, $operation, $subQuery->createNamedParameter($value)));
$query->where($query->expr()->comparison($column, $operation, $query->createNamedParameter($value)));
}

$subQuery->setMaxResults(10000);
$result = $subQuery->executeQuery();
$query->setMaxResults(10000);
$result = $query->executeQuery();
$count = $result->rowCount();
if($count === 0) {
return;
Expand All @@ -508,8 +508,8 @@ private function deleteActivitiesForMySQL(array $conditions): void {

$deleteQuery = $this->connection->getQueryBuilder();
$deleteQuery->delete('activity');
$deleteQuery->where($deleteQuery->expr()->in('activity_id', $deleteQuery->createParameter('ids'), IQueryBuilder::PARAM_STR_ARRAY));
$deleteQuery->setParameter('ids', $ids, IQueryBuilder::PARAM_STR_ARRAY);
$deleteQuery->where($deleteQuery->expr()->in('activity_id', $deleteQuery->createParameter('ids'), IQueryBuilder::PARAM_INT_ARRAY));
$deleteQuery->setParameter('ids', $ids, IQueryBuilder::PARAM_INT_ARRAY);
$queryResult = $deleteQuery->executeStatement();
if($queryResult === 10000) {
$this->deleteActivitiesForMySQL($conditions);
Expand Down

0 comments on commit 7bc6156

Please sign in to comment.