From 6852ac16d65ff94635d25cfb86fa24cae2858922 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Mon, 1 Sep 2025 10:51:51 +0200 Subject: [PATCH] fix(Migration): Don't use subquery Signed-off-by: Marcel Klehr --- lib/Migration/Version010000001Date20250727094721.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Migration/Version010000001Date20250727094721.php b/lib/Migration/Version010000001Date20250727094721.php index 6da78a7bf..9481cc979 100644 --- a/lib/Migration/Version010000001Date20250727094721.php +++ b/lib/Migration/Version010000001Date20250727094721.php @@ -10,10 +10,12 @@ use Closure; use Doctrine\DBAL\Schema\SchemaException; use OCP\DB\ISchemaWrapper; +use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\DB\Types; use OCP\IDBConnection; use OCP\Migration\IOutput; use OCP\Migration\SimpleMigrationStep; +use PDO; final class Version010000001Date20250727094721 extends SimpleMigrationStep { @@ -69,10 +71,16 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $query = $this->db->getQueryBuilder(); $query->update('recognize_face_detections') ->set('face_vector', 'vector') - ->where($query->expr()->in('id', $query->createFunction('(' . $select->getSQL() .')'))); + ->where($query->expr()->in('id', $query->createParameter('ids'))); do { - $updatedRows = $query->executeStatement(); + $result = $select->executeQuery(); + $ids = $result->fetchAll(PDO::FETCH_COLUMN); + $result->closeCursor(); + if (empty($ids)) { + break; + } + $updatedRows = $query->setParameter('ids', $ids, IQueryBuilder::PARAM_INT_ARRAY)->executeStatement(); } while ($updatedRows > 0); } }