summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gustafsson2024-05-17 12:24:27 +0000
committerDaniel Gustafsson2024-05-17 12:24:27 +0000
commitb030697d36d5c40d02f80194589e569eacca5dbf (patch)
treeed8b50473ee3328d3ebf8bd49494a3ebe1cca3c9
parent9489f3c6e8cdee1c193c511b523ef9c20deed208 (diff)
Refuse upgrades from pre-9.0 clusters
Commit 695b4a113ab added a dependency on retrieving oldestxid from pg_control, which only exists in 9.0 and onwards, but the check for 8.4 as the oldest version was retained. Since there has been few if any complaints of 8.4 upgrades not working, fix by setting 9.0 as the oldest version supported rather than resurrecting 8.4 support. Backpatch to all supported versions. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/1973418.1657040382@sss.pgh.pa.us Backpatch-through: v12
-rw-r--r--doc/src/sgml/ref/pgupgrade.sgml2
-rw-r--r--src/bin/pg_upgrade/check.c9
2 files changed, 8 insertions, 3 deletions
diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml
index c80e54a2b0c..dfa61e95748 100644
--- a/doc/src/sgml/ref/pgupgrade.sgml
+++ b/doc/src/sgml/ref/pgupgrade.sgml
@@ -67,7 +67,7 @@ PostgreSQL documentation
</para>
<para>
- pg_upgrade supports upgrades from 8.4.X and later to the current
+ pg_upgrade supports upgrades from 9.0.X and later to the current
major release of <productname>PostgreSQL</productname>, including snapshot and beta releases.
</para>
</refsect1>
diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c
index 035786747db..54d13075e47 100644
--- a/src/bin/pg_upgrade/check.c
+++ b/src/bin/pg_upgrade/check.c
@@ -279,8 +279,13 @@ check_cluster_versions(void)
* upgrades
*/
- if (GET_MAJOR_VERSION(old_cluster.major_version) < 804)
- pg_fatal("This utility can only upgrade from PostgreSQL version 8.4 and later.\n");
+ /*
+ * The minimum version supported when this code shipped in a major version
+ * was 8.4. This has since been raised to 9.0, but the support code for
+ * dealing with 8.4 remains to avoid refactoring in a backbranch.
+ */
+ if (GET_MAJOR_VERSION(old_cluster.major_version) < 900)
+ pg_fatal("This utility can only upgrade from PostgreSQL version 9.0 and later.\n");
/* Only current PG version is supported as a target */
if (GET_MAJOR_VERSION(new_cluster.major_version) != GET_MAJOR_VERSION(PG_VERSION_NUM))