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
