pg_upgrade: Fix thinko in database info acquisition routine
authorPeter Eisentraut
Mon, 22 Aug 2022 11:26:52 +0000 (13:26 +0200)
committerPeter Eisentraut
Mon, 22 Aug 2022 12:30:41 +0000 (14:30 +0200)
When checking whether the major version supports per-database locale
providers, it was always looking at the version of the old cluster
instead of the cluster that was passed in.  This would lead to
failures to detect locale provider mismatches.

Reported-by: Marina Polyakova
Reviewed-by: Julien Rouhaud
Discussion: https://www.postgresql.org/message-id/flat/f385ba25e7f8be427b8c582e5cca7d79%40postgrespro.ru#515a31c5429d6d37ad1d5c9d66962a1e

src/bin/pg_upgrade/info.c

index 36b0670df6687b883984c4d7ffac262c28b33d4b..89df7afbdc44ef5ef489f368edd638a3c1a0df04 100644 (file)
@@ -319,7 +319,7 @@ get_db_infos(ClusterInfo *cluster)
 
    snprintf(query, sizeof(query),
             "SELECT d.oid, d.datname, d.encoding, d.datcollate, d.datctype, ");
-   if (GET_MAJOR_VERSION(old_cluster.major_version) < 1500)
+   if (GET_MAJOR_VERSION(cluster->major_version) < 1500)
        snprintf(query + strlen(query), sizeof(query) - strlen(query),
                 "'c' AS datlocprovider, NULL AS daticulocale, ");
    else