Thread: Re: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.
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 upgrademode 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
On Sun, Feb 13, 2022 at 6:51 AM Christoph Berg <myon@debian.org> wrote: > 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)". Right. Sorry about that, and sorry for not responding sooner also. Fix pushed now. -- Robert Haas EDB: http://www.enterprisedb.com
Re: Robert Haas > > This needs to be guarded with "if (binary_upgrade)". > > Right. Sorry about that, and sorry for not responding sooner also. Fix > pushed now. Thanks, the 14-15 upgrade test is passing again here. Christoph