Re: REPACK (CONCURRENTLY) rewrites tables marked with user_catalog_table

From: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
To: Antonin Houska <ah(at)cybertec(dot)at>
Cc: Nathan Bossart <nathandbossart(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org, alvherre(at)kurilemu(dot)de
Subject: Re: REPACK (CONCURRENTLY) rewrites tables marked with user_catalog_table
Date: 2026-08-29 15:34:00
Message-ID: CALj2ACUQYFsv0HOqH2ZbBg_KG7yZvo+8nTg=tnvVqDhBxo9Ghg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Sat, Aug 29, 2026 at 4:23 AM Antonin Houska <ah(at)cybertec(dot)at> wrote:
>
> Thanks! I'm just thinking about this comment:
>
> + /* The CONCURRENTLY path does not write logical rewrite mappings. */
>
> IMO it makes no sense to rewrite the logical mappings as long as REPACK
> (CONCURRENTLY) changes visibility information (i.e. it's MVCC-unsafe). Once we
> implement the MVCC-safety, we should not remove this check unless we implement
> the rewriting of the mappings for user catalog tables - that might also be
> worth mentioning in the comment.
>
> So far, I'd consider the MVCC-unsafety the primary reason to prohibit REPACK
> (CONCURRENTLY) (or anyother MVCC-unsafe command) on the user catalog tables,
> because it can make the contents of those tables invisible to the output
> plugin at some point.

Thanks for pointing this out. I read the docs related to MVCC-safety
of concurrent repack. I reworded the comment as you suggested. Feel
free to suggest changes to it if any. Please find the attached v2
patch.

--
Bharath Rupireddy
Amazon Web Services: https://aws.amazon.com

Attachment Content-Type Size
v2-0001-Restrict-REPACK-CONCURRENTLY-on-user-catalog-tabl.patch application/octet-stream 3.3 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2026-08-29 15:58:03 REPACK (CONCURRENTLY) fails with wrong error for materialized views
Previous Message Nathan Bossart 2026-08-29 15:25:43 Re: REPACK ONLY is accepted but ignored