Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Nitin Motiani <nitinmotiani(at)google(dot)com>, Hannu Krosing <hannuk(at)google(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible
Date: 2026-02-08 22:00:40
Message-ID: aYkHiDrBRz2snwyn@nathan
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Feb 08, 2026 at 04:26:41PM -0500, Andres Freund wrote:
> On 2026-02-05 15:29:55 -0600, Nathan Bossart wrote:
>> + * commands. We can only do this for upgrades from v12 and newer; in
>> + * older versions, pg_largeobject_metadata was created WITH OIDS, so the
>> + * OID column is hidden and won't be dumped.
>> */
>
> It's not really related to this change, but what is that WITH OIDS bit about?
> Sure, they aren't shown by default, but all it takes to change that is to
> explicitly add the output column? I'm not saying we have to do that, I just
> don't understand the reasoning as written here.

IIRC the issue is that getTableAttrs() won't pick up the OID column on
older versions. It might be easy to fix that by adjusting its query for
binary upgrades from <v12. That could be worth doing, if for no other
reason than to simplify some of the pg_dump code. I'll make a note of it.

> The improvements in pg_upgrade time and memory in a cluster with 50M LOs [1]
> are really quite impressive, even if upgrading from < 16. It's rare to improve
> memory usage by several orders of magnitude.

Nice!

--
nathan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jelte Fennema-Nio 2026-02-08 22:03:27 Re: Add GoAway protocol message for graceful but fast server shutdown/switchover
Previous Message Andres Freund 2026-02-08 21:26:41 Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible