Re: Dead code with short varlenas in toast_save_datum()
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Nikhil Kumar Veldanda <veldanda.nikhilkumar17@gmail.com>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-08-07T01:01:26Z
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 isolation test for TOAST value reuse during CLUSTER
- f57e214d1cbb 19 (unreleased) landed
-
Add SQL test for TOAST value allocations on rewrite
- 69f75d671475 19 (unreleased) landed
-
Add regression test for short varlenas saved in TOAST relations
- 225ebfe30a1a 19 (unreleased) landed
On Wed, Aug 06, 2025 at 10:30:54AM +0900, Michael Paquier wrote: > Ah, thanks, nice one. I did not consider the trick of using two > attributes to bypass the check when externalizing the tuple. I'll go > add a test in strings.sql among these lines, with some TOAST slice > scans based on substr(). Done that as of 225ebfe30a1a, with some additions: - A check on pg_column_compression(), to make sure that the short varlena path leads to an uncompressed on-disk Datum. - Some substr() for the values, to cross-check slice reads. - A query based on the TOAST relation's chunk_seq, making sure that we have taken toast_save_datum() two times when inserting a tuple with the two toastable attributes. The buildfarm is OK with it, as is the latest patch for the 8-byte TOAST values posted here: https://www.postgresql.org/message-id/aIyCz4T858Kcm4UU@paquier.xyz The patch posted there needs a rebase, following the changes in varatt.h done in e035863c9a04. Will post a rebase very soon. -- Michael