aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2013-01-24 12:25:48 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2013-01-24 12:36:18 -0300
commit34da700405737be055d1b3d310af23a98da72e8e (patch)
tree923dc16a1ae43b271fbaf5aa1a633183f5be0200
parent2494a9af4c8523f33ec78cd092d21a17780b4b5c (diff)
downloadpostgresql-34da700405737be055d1b3d310af23a98da72e8e.tar.gz
postgresql-34da700405737be055d1b3d310af23a98da72e8e.zip
Use the catversion to distinguish old/new clusters
This makes 9.3 -> 9.3 upgrades work when they cross the commit that added persistent multixacts; early 9.3 pg_controldata did not have the required oldestMultiXact line, and so would fail to upgrade. per Bruce Momjian
-rw-r--r--contrib/pg_upgrade/controldata.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/pg_upgrade/controldata.c b/contrib/pg_upgrade/controldata.c
index 2ea0ce442d1..01c66776e44 100644
--- a/contrib/pg_upgrade/controldata.c
+++ b/contrib/pg_upgrade/controldata.c
@@ -470,7 +470,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
/* verify that we got all the mandatory pg_control data */
if (!got_xid || !got_oid ||
!got_multi || !got_mxoff ||
- (!got_oldestmulti && GET_MAJOR_VERSION(cluster->major_version) >= 903) ||
+ (!got_oldestmulti && cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER) ||
(!live_check && !got_nextxlogfile) ||
!got_tli ||
!got_align || !got_blocksz || !got_largesz || !got_walsz ||
@@ -493,7 +493,7 @@ get_control_data(ClusterInfo *cluster, bool live_check)
if (!got_mxoff)
pg_log(PG_REPORT, " latest checkpoint next MultiXactOffset\n");
- if (!got_oldestmulti && GET_MAJOR_VERSION(cluster->major_version) >= 903)
+ if (!got_oldestmulti && cluster->controldata.cat_ver >= MULTIXACT_FORMATCHANGE_CAT_VER)
pg_log(PG_REPORT, " latest checkpoint oldest MultiXactId\n");
if (!live_check && !got_nextxlogfile)