Re: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.
Christoph Berg <myon@debian.org>
From: Christoph Berg <myon@debian.org>
To: Robert Haas <rhaas@postgresql.org>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2022-02-13T11:51:10Z
Lists: pgsql-hackers
Re: Robert Haas
> pg_upgrade: Preserve relfilenodes and tablespace OIDs.
> src/bin/pg_dump/pg_dumpall.c | 3 +
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -1066,6 +1066,9 @@ dumpTablespaces(PGconn *conn)
/* needed for buildACLCommands() */
fspcname = pg_strdup(fmtId(spcname));
+ appendPQExpBufferStr(buf, "\n-- For binary upgrade, must preserve pg_table
+ appendPQExpBuffer(buf, "SELECT pg_catalog.binary_upgrade_set_next_pg_table
This needs to be guarded with "if (binary_upgrade)".
Error message during a Debian pg_upgradecluster (-m dump) from 14 to 15:
2022-02-13 12:44:01.272 CET [168032] postgres@template1 LOG: statement: SELECT pg_catalog.binary_upgrade_set_next_pg_tablespace_oid('16408'::pg_catalog.oid);
2022-02-13 12:44:01.272 CET [168032] postgres@template1 ERROR: function can only be called when server is in binary upgrade mode
2022-02-13 12:44:01.272 CET [168032] postgres@template1 STATEMENT: SELECT pg_catalog.binary_upgrade_set_next_pg_tablespace_oid('16408'::pg_catalog.oid);
Christoph
Commits
-
Add missing binary-upgrade guard.
- 138c51b72168 15.0 landed
-
pg_upgrade: Preserve relfilenodes and tablespace OIDs.
- 9a974cbcba00 15.0 cited