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:40:50Z
Lists: pgsql-hackers
On Thu, Feb 05, 2026 at 11:36:00AM -0600, Nathan Bossart wrote:
> @@ -1046,7 +1046,7 @@ get_object_address(ObjectType objtype, Node *object,
>  				address.classId = LargeObjectRelationId;
>  				address.objectId = oidparse(object);
>  				address.objectSubId = 0;
> -				if (!LargeObjectExists(address.objectId))
> +				if (!LargeObjectExists(address.objectId) && !IsBinaryUpgrade)
>  				{
>  					if (!missing_ok)
>  						ereport(ERROR,

(Probably better to set missing_ok for only the specific commands we want
to bypass this check, but you get the idea...)

-- 
nathan



Commits

  1. pg_upgrade: Use COPY for LO metadata for upgrades from < v12.

  2. pg_upgrade: Fix handling of pg_largeobject_metadata.

  3. pg_upgrade: Transfer pg_largeobject_metadata's files when possible.

  4. Rearrange pg_dump's handling of large objects for better efficiency.

  5. Expand AclMode to 64 bits

  6. Fix pg_upgrade for oid removal.