Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, Nitin Motiani <nitinmotiani@google.com>, Hannu Krosing <hannuk@google.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-05T18:02:17Z
Lists: pgsql-hackers
Hi, On 2026-02-05 11:36:00 -0600, Nathan Bossart wrote: > On Thu, Feb 05, 2026 at 11:19:46AM -0500, Andres Freund wrote: > > It certainly seems better than what we do now. Still feels pretty grotty and > > error prone to me that we fill the catalog table and then throw the contents > > out. > > Before I go any further with this approach, I thought of something else we > could do that I believe is worth considering... > > As of commit 3bcfcd815e, the only reason we are dumping any of > pg_largeobject_metadata at all is to avoid an ERROR during COMMENT ON or > SECURITY LABEL ON because the call to LargeObjectExists() in > get_object_address() returns false. If we bypass that check in > binary-upgrade mode, we can skip dumping pg_largeobject_metadata entirely. Yea, I think that's worth considering. As you say downthread, the check for binary upgrade should probably be moved, but that's details. Upthread I also wondering why we do all the work in getLOs() if we don't actually need most of it (only if there are comments or labels). Right now that's a very slow and very memory intensive part of doing an upgrade of a system with a lot of binary upgrades. Do we need *any* of that if we go the path you suggest? Greetings, Andres Freund
Commits
-
pg_upgrade: Use COPY for LO metadata for upgrades from < v12.
- b33f75361284 19 (unreleased) landed
-
pg_upgrade: Fix handling of pg_largeobject_metadata.
- 158408fef8b9 19 (unreleased) landed
-
pg_upgrade: Transfer pg_largeobject_metadata's files when possible.
- 3bcfcd815e1a 19 (unreleased) landed
-
Rearrange pg_dump's handling of large objects for better efficiency.
- a45c78e3284b 17.0 cited
-
Expand AclMode to 64 bits
- 7b378237aa80 16.0 cited
-
Fix pg_upgrade for oid removal.
- 12a53c732ced 12.0 cited