pg_upgrade: Fix thinko in database info acquisition routine
authorPeter Eisentraut <[email protected]>
Mon, 22 Aug 2022 11:26:52 +0000 (13:26 +0200)
committerPeter Eisentraut <[email protected]>
Mon, 22 Aug 2022 11:26:52 +0000 (13:26 +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 <[email protected]>
Reviewed-by: Julien Rouhaud <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/f385ba25e7f8be427b8c582e5cca7d79%40postgrespro.ru#515a31c5429d6d37ad1d5c9d66962a1e

src/bin/pg_upgrade/info.c

index df374ce4b362b4c6c87fc1fd0e476e5d6d353d9e..53ea348e211d3ac38334292bc16cb814bc13bb87 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