Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Andres Freund <andres@anarazel.de>
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-05T17:36:00Z
Lists: pgsql-hackers
Attachments
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. The attached patch passes our existing tests, and it seems to create the expected binary-upgrade-mode dump files, too. I haven't updated any of the comments yet. -- nathan
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