Re: REPACK CONCURRENTLY fails on tables with generated columns

From: Alvaro Herrera <alvherre(at)kurilemu(dot)de>
To: Ewan Young <kdbase(dot)hack(at)gmail(dot)com>
Cc: Antonin Houska <ah(at)cybertec(dot)at>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, mihailnikalayeu(at)gmail(dot)com
Subject: Re: REPACK CONCURRENTLY fails on tables with generated columns
Date: 2026-07-03 11:12:39
Message-ID: akeN0fZ_Dc4SSjN0@alvherre.pgsql
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

On 2026-Jun-22, Ewan Young wrote:

> I applied the patch and ran it through an injection-point reproducer
> (cassert). Without the fix the bug reproduces (ERROR: no generation
> expression found for column number 3 ...); with it, REPACK CONCURRENTLY
> succeeds under a concurrent non-HOT UPDATE for a STORED generated column, an
> index directly on the generated column, and a VIRTUAL column, with correct
> values afterwards. Your repack.spec change passes.
>
> The approach is right and I've confirmed it fixes the bug, so +1 from me in
> this direction.

Cool, thanks for reviewing -- I have pushed this fix, with some
stylistic changes and one bigger change: these catalog rows are only
needed in concurrent mode, so there was no reason to copy them in the
other case. So I restricted the copying to that case.

I've been looking at the other proposed change, and I agree with it.
Here's it, again with some style changes, and only one other proposed
change: for setting up updatedCols, ignore dropped columns. I don't
think this should change anything in practice, but it just feels wrong
to claim that a dropped column is being changed by an update.

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/

Attachment Content-Type Size
0001-REPACK-CONCURRENTLY-Initialize-the-range-table-more-.patch text/x-diff 4.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2026-07-03 11:51:37 Re: Is there value in having optimizer stats for joins/foreignkeys?
Previous Message Ayush Tiwari 2026-07-03 11:07:55 Proposal: INSERT ... BY NAME