mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #59902 from nextcloud/preload-storage-chukn
fix: chunk storage ids when preload storage info
This commit is contained in:
commit
f3ae8ab9b0
2 changed files with 15 additions and 12 deletions
|
|
@ -22,6 +22,7 @@ use OCP\Migration\SimpleMigrationStep;
|
|||
#[AddColumn(table: 'calendars', name: 'default_alarm_pday', type: ColumnType::INTEGER)]
|
||||
#[AddColumn(table: 'calendars', name: 'default_alarm_fday', type: ColumnType::INTEGER)]
|
||||
class Version1039Date20260408000000 extends SimpleMigrationStep {
|
||||
#[\Override]
|
||||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
|
||||
/** @var ISchemaWrapper $schema */
|
||||
$schema = $schemaClosure();
|
||||
|
|
|
|||
|
|
@ -42,21 +42,23 @@ class StorageGlobal {
|
|||
$builder = $this->connection->getQueryBuilder();
|
||||
$query = $builder->select(['id', 'numeric_id', 'available', 'last_checked'])
|
||||
->from('storages')
|
||||
->where($builder->expr()->in('id', $builder->createNamedParameter(array_values($storageIds), IQueryBuilder::PARAM_STR_ARRAY)));
|
||||
->where($builder->expr()->in('id', $builder->createParameter('ids'), IQueryBuilder::PARAM_STR_ARRAY));
|
||||
|
||||
$result = $query->executeQuery();
|
||||
while (($row = $result->fetch()) !== false) {
|
||||
$normalizedRow = [
|
||||
'id' => (string)$row['id'],
|
||||
'numeric_id' => (int)$row['numeric_id'],
|
||||
'available' => (bool)$row['available'],
|
||||
'last_checked' => (int)$row['last_checked'],
|
||||
];
|
||||
foreach (array_chunk($storageIds, 1000) as $chunk) {
|
||||
$query->setParameter('ids', $chunk, IQueryBuilder::PARAM_STR_ARRAY);
|
||||
|
||||
$this->cache[$normalizedRow['id']] = $normalizedRow;
|
||||
$result = $query->executeQuery();
|
||||
while (($row = $result->fetch()) !== false) {
|
||||
$normalizedRow = [
|
||||
'id' => (string)$row['id'],
|
||||
'numeric_id' => (int)$row['numeric_id'],
|
||||
'available' => (bool)$row['available'],
|
||||
'last_checked' => (int)$row['last_checked'],
|
||||
];
|
||||
|
||||
$this->cache[$normalizedRow['id']] = $normalizedRow;
|
||||
}
|
||||
}
|
||||
|
||||
$result->closeCursor();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue