> On Sep 23, 2026, at 06:05, Devrim Gündüz <[email protected]> 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/






Reply via email to