Skip to content
Snippets Groups Projects
Commit 4a727a57 authored by Robin Appelman's avatar Robin Appelman Committed by Morris Jobke
Browse files

use a generator instead of fetching all rows at once


Signed-off-by: default avatarRobin Appelman <robin@icewind.nl>
parent 598835b0
No related branches found
No related tags found
No related merge requests found
......@@ -60,7 +60,10 @@ class RepairInvalidPaths implements IRepairStep {
))
->where($builder->expr()->neq('f.path', $computedPath));
return $query->execute()->fetchAll();
$result = $query->execute();
while ($row = $result->fetch()) {
yield $row;
}
}
private function getId($storage, $path) {
......@@ -103,8 +106,11 @@ class RepairInvalidPaths implements IRepairStep {
}
private function repair() {
$this->connection->beginTransaction();
$entries = $this->getInvalidEntries();
$count = 0;
foreach ($entries as $entry) {
$count++;
$calculatedPath = $entry['parent_path'] . '/' . $entry['name'];
if ($newId = $this->getId($entry['storage'], $calculatedPath)) {
// a new entry with the correct path has already been created, reuse that one and delete the incorrect entry
......@@ -114,7 +120,8 @@ class RepairInvalidPaths implements IRepairStep {
$this->update($entry['fileid'], $calculatedPath);
}
}
return count($entries);
$this->connection->commit();
return $count;
}
public function run(IOutput $output) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment