From 4e94d4e7c49b6b16eae5bb9a7aeb968a59896971 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Molle Date: Tue, 21 Feb 2023 09:25:06 +0100 Subject: [PATCH 1/2] fix: Use shortestName instead of sequenceName because default schema name is not referenced in column_default Signed-off-by: Jean-Baptiste Molle --- lib/private/DB/PgSqlTools.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/private/DB/PgSqlTools.php b/lib/private/DB/PgSqlTools.php index 2781d3556e269..99118f88e2e9a 100644 --- a/lib/private/DB/PgSqlTools.php +++ b/lib/private/DB/PgSqlTools.php @@ -61,13 +61,15 @@ public function resynchronizeDatabaseSequences(Connection $conn) { }); foreach ($conn->getSchemaManager()->listSequences() as $sequence) { - $sequenceName = $sequence->getName(); + $namespaceName = $sequence->getNamespaceName(); + $shortestName = $sequence->getShortestName($namespaceName); $sqlInfo = 'SELECT table_schema, table_name, column_name FROM information_schema.columns - WHERE column_default = ? AND table_catalog = ?'; + WHERE column_default = ? AND table_catalog = ? AND table_schema = ?'; $result = $conn->executeQuery($sqlInfo, [ - "nextval('$sequenceName'::regclass)", - $databaseName + "nextval('$shortestName'::regclass)", + $databaseName, + $namespaceName ]); $sequenceInfo = $result->fetchAssociative(); $result->free(); @@ -76,7 +78,7 @@ public function resynchronizeDatabaseSequences(Connection $conn) { /** @var string $columnName */ $columnName = $sequenceInfo['column_name']; $sqlMaxId = "SELECT MAX($columnName) FROM $tableName"; - $sqlSetval = "SELECT setval('$sequenceName', ($sqlMaxId))"; + $sqlSetval = "SELECT setval('$shortestName', ($sqlMaxId))"; $conn->executeQuery($sqlSetval); } } From 97340f947f2bc5d60bf8ea66eeb1558e1089d5da Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Molle Date: Tue, 21 Feb 2023 10:04:11 +0100 Subject: [PATCH 2/2] lint: Follow lint guidelines Signed-off-by: Jean-Baptiste Molle --- lib/private/DB/PgSqlTools.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/private/DB/PgSqlTools.php b/lib/private/DB/PgSqlTools.php index 99118f88e2e9a..5692d94a0a93b 100644 --- a/lib/private/DB/PgSqlTools.php +++ b/lib/private/DB/PgSqlTools.php @@ -61,15 +61,15 @@ public function resynchronizeDatabaseSequences(Connection $conn) { }); foreach ($conn->getSchemaManager()->listSequences() as $sequence) { - $namespaceName = $sequence->getNamespaceName(); - $shortestName = $sequence->getShortestName($namespaceName); + $namespaceName = $sequence->getNamespaceName(); + $shortestName = $sequence->getShortestName($namespaceName); $sqlInfo = 'SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE column_default = ? AND table_catalog = ? AND table_schema = ?'; $result = $conn->executeQuery($sqlInfo, [ "nextval('$shortestName'::regclass)", - $databaseName, - $namespaceName + $databaseName, + $namespaceName ]); $sequenceInfo = $result->fetchAssociative(); $result->free();