pg_upgrade major version compatibility

From: Christoph Berg <myon(at)debian(dot)org>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: pg_upgrade major version compatibility
Date: 2022-09-06 11:50:10
Message-ID: Yxcz8nPytQZwkQVS@msg.df7cb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The pg_upgrade manpage in PG 14 and earlier claims that upgrades from
8.4 are supported, but that doesn't work:

/usr/lib/postgresql/14/bin/pg_upgrade -b /usr/lib/postgresql/8.4/bin -B /usr/lib/postgresql/14/bin -p 5432 -P 5433 -d /var/lib/postgresql/8.4/upgr -o -D /etc/postgresql/8.4/upgr -D /etc/postgresql/14/upgr
Finding the real data directory for the target cluster ok
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
The source cluster lacks some required control information:
latest checkpoint oldestXID

Cannot continue without required control information, terminating
Failure, exiting

8.4 -> 14/13/12/11/10/9.6 are all broken in the same way (using the
target version's pg_upgrade of course)

9.0 -> 14 and 8.4 -> 9.5 work.

8.4 -> 15 "works" in the sense of that the non-support is correctly
documented in the manpage and in the pg_upgrade output:

/usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/8.4/bin -B /usr/lib/postgresql/15/bin -p 5432 -P 5433 -d /var/lib/postgresql/8.4/upgr -o -D /etc/postgresql/8.4/upgr -D /etc/postgresql/15/upgr
Finding the real data directory for the target cluster ok
Performing Consistency Checks
-----------------------------
Checking cluster versions
This utility can only upgrade from PostgreSQL version 9.2 and later.
Failure, exiting

Is that failure intentional, and just not documented properly, or is
that a bug?

Christoph

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2022-09-06 11:57:55 Re: [PATCH] Tab completion for SET COMPRESSION
Previous Message Dilip Kumar 2022-09-06 11:36:57 Re: SUBTRANS: Minimizing calls to SubTransSetParent()