Skip to content

Commit

Permalink
fix: Use shortestName instead of sequenceName because default schema …
Browse files Browse the repository at this point in the history
…name is not

referenced in column_default
  • Loading branch information
Jean-Baptiste Molle committed Feb 21, 2023
1 parent 93e703b commit 06a5594
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions lib/private/DB/PgSqlTools.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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);
}
}
Expand Down

0 comments on commit 06a5594

Please sign in to comment.