Re: [PATCH] Compressed TOAST data corruption with REPACK CONCURRENTLY

Antonin Houska <ah@cybertec.at>

From: Antonin Houska <ah@cybertec.at>
To: Michael Paquier <michael@paquier.xyz>
Cc: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, alvherre@kurilemu.de
Date: 2026-04-20T11:40:20Z
Lists: pgsql-hackers

Attachments

Michael Paquier <michael@paquier.xyz> wrote:

> On Fri, Apr 17, 2026 at 10:40:39AM -0700, SATYANARAYANA NARLAPURAM wrote:
> > I started with that but tried to follow the existing code pattern. This
> > LGTM.
> > Please add a comment as well.
> 
> Hmm.  I was reading restore_tuple(), and could it make sense to expand
> a bit more the tests so as more types of varlena pointers could be
> checked in this routine?  I am taking about MAIN, EXTENDED and
> EXTERNAL, so as we could check more patterns with in-line
> [non-]compressed, and external [non-]compressed, counting for the four
> different possible patterns that could lead to repacked data.  See for
> example strings.sql for such tests, that could be used as base
> inspiration.

ok, this is a patch to enhance the tests. It also simplifies
gen_compressible() a bit and adjusts it so it is (hopefully) more reliable in
generating compressible values. Now it can be used to reproduce the fix [1].

[1] https://www.postgresql.org/message-id/52301.1776440752%40localhost

-- 
Antonin Houska
Web: https://www.cybertec-postgresql.com

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. REPACK CONCURRENTLY: fix processing of toasted tuples