Thread: Re: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.

Re: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.

From
Christoph Berg
Date:
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



Re: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.

From
Robert Haas
Date:
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: pgsql: pg_upgrade: Preserve relfilenodes and tablespace OIDs.

From
Christoph Berg
Date:
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