Re: pg_column_toast_chunk_id: a function to get a chunk ID of a TOASTed value

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: Yugo NAGATA <nagata@sraoss.co.jp>
Cc: Sergei Kornilov <sk@zsrv.org>, Nikita Malakhov <hukutoc@gmail.com>, pgsql-hackers@postgresql.org
Date: 2024-01-30T06:57:20Z
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 →
  1. Add pg_column_toast_chunk_id().

Attachments

On Tue, Jan 30, 2024 at 1:56 PM Yugo NAGATA <nagata@sraoss.co.jp> wrote:
>
> I attached the correct one, v4.
>

+-- Test pg_column_toast_chunk_id:
+-- Check if the returned chunk_id exists in the TOAST table
+CREATE TABLE test_chunk_id (v1 text, v2 text);
+INSERT INTO test_chunk_id VALUES (
+  repeat('0123456789', 10), -- v1: small enough not to be TOASTed
+  repeat('0123456789', 100000)); -- v2: large enough to be TOASTed

select pg_size_pretty(100000::bigint);
return 98kb.

I think this is just too much, maybe I didn't consider the
implications of compression.
Anyway, I refactored the tests, making the toast value size be small.

I aslo refactor the doc.
pg_column_toast_chunk_id entry will be right after pg_column_compression entry.
You can check the screenshot.