Re: Support for 8-byte TOAST values (aka the TOAST infinite loop problem)
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: "Burd, Greg" <greg@burd.me>, Nikita Malakhov <hukutoc@gmail.com>, Hannu Krosing <hannuk@google.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-11-26T04:54:03Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add data type oid8, 64-bit unsigned identifier
- b139bd3b6ef0 19 (unreleased) landed
Attachments
- v8-0001-Implement-oid8-data-type.patch (text/x-diff) patch v8-0001
- v8-0002-Refactor-some-TOAST-value-ID-code-to-use-Oid8-ins.patch (text/x-diff) patch v8-0002
- v8-0003-Minimize-footprint-of-TOAST_MAX_CHUNK_SIZE-in-hea.patch (text/x-diff) patch v8-0003
- v8-0004-Renames-around-varatt_external-varatt_external_oi.patch (text/x-diff) patch v8-0004
- v8-0005-Refactor-external-TOAST-pointer-code-for-better-p.patch (text/x-diff) patch v8-0005
- v8-0006-Move-static-inline-routines-of-varatt_external_oi.patch (text/x-diff) patch v8-0006
- v8-0007-Split-VARATT_EXTERNAL_GET_POINTER-for-indirect-an.patch (text/x-diff) patch v8-0007
- v8-0008-Switch-pg_column_toast_chunk_id-return-value-from.patch (text/x-diff) patch v8-0008
- v8-0009-Add-catcache-support-for-OID8OID.patch (text/x-diff) patch v8-0009
- v8-0010-Add-support-for-TOAST-chunk_id-type-in-binary-upg.patch (text/x-diff) patch v8-0010
- v8-0011-Enlarge-OID-generation-to-8-bytes.patch (text/x-diff) patch v8-0011
- v8-0012-Add-relation-option-toast_value_type.patch (text/x-diff) patch v8-0012
- v8-0013-Add-support-for-oid8-TOAST-values.patch (text/x-diff) patch v8-0013
- v8-0014-Add-tests-for-TOAST-relations-with-bigint-as-valu.patch (text/x-diff) patch v8-0014
- v8-0015-Add-new-vartag_external-for-8-byte-TOAST-values.patch (text/x-diff) patch v8-0015
On Tue, Sep 30, 2025 at 03:26:14PM +0900, Michael Paquier wrote: > There were a few conflicts, so here is a rebased v7, moving the patch > to the next CF. I have been sitting on this patch for six weeks for > the moment. Attached is a rebased v8, fixing a couple of conflicts. > Tom, you are registered as a reviewer of the patch. The point of > contention of the patch, where I see there is no consensus yet, is if > my approach of using a redirection for the external TOAST pointers > with a new layer to facilitate the addition of more vartags (aka the > 64b value vartag proposed here, concept that could also apply to > compression methods later on) is acceptable. Moving to a different > approach, like the "brutal" one I am naming upthread where the > redirection layer is replaced by changes in all the code paths that > need to be touched, would be of course cheaper at runtime as there > would be no more redirection, but the maintenance would be a nightmare > the more vartags we add, and I have some plans for more of these. > Doing the switch would be a few hours work, so that would not be a big > deal, I guess. The important part is an agreement about the approach, > IMO. This point still got no reply. It would be nice to do something for this release regarding this old issue, IMO.. -- Michael