Re: [PATCH] Misleading error message for REPACK USING INDEX on shared catalogs

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: Devrim Gündüz <devrim(at)gunduz(dot)org>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: [PATCH] Misleading error message for REPACK USING INDEX on shared catalogs
Date: 2026-09-23 06:32:28
Message-ID: A5DE1DA7-DD9E-4424-A2E7-6CC459BF090C@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Sep 23, 2026, at 06:05, Devrim Gündüz <devrim(at)gunduz(dot)org> wrote:
>
> Hi,
>
> While poking at REPACK on v19 beta4 for my Chicago meetup talk, I
> noticed that the error message emitted when trying to REPACK a shared
> catalog with USING INDEX is misleading, since it makes it sound like
> REPACK itself is disallowed on shared catalogs, when only the USING
> INDEX form is:
>
> postgres=# REPACK pg_authid USING INDEX pg_authid_oid_index;
> ERROR: cannot execute REPACK on a shared catalog
>
> postgres=# REPACK pg_authid;
> REPACK
>
> The restriction is intentional in repack.c, but the errmsg() text
> doesn't convey that the restriction is specific to the USING INDEX form,
> so for a while I thought I found a bug.
>
> Attached patch tweaks the message to name USING INDEX specifically,
> and also includes the related comment in repack.c to an errdetail() so
> it's visible to the user, not just to someone reading the source:
>
> ERROR: cannot execute REPACK USING INDEX on a shared catalog
> DETAIL: Marking an index as clustered on a shared catalog would
> only take effect in the current database.
>
> Regards,
> --
> Devrim Gündüz
> Open Source Solution Architect, PostgreSQL Major Contributor
> BlueSky: @devrim.gunduz.org , @gunduz.org
> <repack_shared_catalog_errmsg.patch>

+1. The commend and the code have clearly shown that repacking on shared catalogs are allowed, but USING INDEX is not allowed.

But I have concern with the change. cluster_rel() is used by both REPACK and CLUSTER commands, but CLUSTER command, the syntax is CLUSTER … USING index-name.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Yuhang Qiu 2026-09-23 06:43:53 Re: index prefetching
Previous Message shveta malik 2026-09-23 06:30:39 Re: Persist slot invalidations before publishing them