Re: ZSTD TOAST compression, and an extensible compression method encoding

From: Manu <manuelreyesbravo(at)gmail(dot)com>
To: Greg Burd <greg(at)burd(dot)me>
Cc: Hannu Krosing <hannuk(at)google(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Nikhil Kumar Veldanda <veldanda(dot)nikhilkumar17(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, Japin Li <japinli(at)hotmail(dot)com>, Dharin Shah <dharinshah95(at)gmail(dot)com>
Subject: Re: ZSTD TOAST compression, and an extensible compression method encoding
Date: 2026-11-15 04:53:47
Message-ID: 179471842754.1333698.14079138634948894846@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Greg,

On Sat, Nov 14, 2026 at 1:50 PM Greg Burd <greg(at)burd(dot)me> wrote:
> Most of the changes are in 0001 and 0002, since those are the ones
> closest to being committed.

I found nothing broken in 0001 or 0002, and one check in 0002 that no
test exercises.

0001: reading pglz and lz4 values through text, substr(),
pg_column_*(), verify_heapam() and test_decoding gives byte-identical
output (58,990 lines) on master and master+0001, and each of four wrong
conversions I planted changes that output.

0002: on 0001-0003 under cassert, reverting any one check in
toast_compression_id_resolve() fails t/007, except method_byte ==
TOAST_INVALID_COMPRESSION_ID. From 0004 on, with the last ID at 5, that
check alone keeps a long pointer with byte 3 away from the Assert in
toast_compression_id_needs_cmid_byte(), and t/007 has no byte-3 case.
A byte-3 row in the long-form part of t/007 would cover it.

Old data reads the same with a master data directory started under
0001-0003, and after pg_upgrade from REL_18 and REL_19 to 0001-0003.
The scripts and the results, forged pointers included, are attached.

Manu

Attachment Content-Type Size
checks.txt text/plain 5.9 KB
toast-oracle.sh.txt text/plain 9.0 KB
forge-pointers.sh.txt text/plain 6.6 KB
upgrade-check.sh.txt text/plain 3.1 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Previous Message shihao zhong 2026-11-15 04:22:59 Re: Index drops during phase 1 of REINDEX CONCURRENTLY