Re: Adding REPACK [concurrently]

From: Antonin Houska <ah(at)cybertec(dot)at>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Adding REPACK [concurrently]
Date: 2025-08-05 08:58:44
Message-ID: 11036.1754384324@localhost
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:

> I made a few changes from Antonin's original at [2]. First, I modified
> the grammar to support "REPACK [tab] USING INDEX" without specifying the
> index name. With this change, all possibilities of the old commands are
> covered,

...

> Here's a list of existing commands, and how to write them in the current
> patch's proposal for REPACK:
>
> -- re-clusters all tables that have a clustered index set
> CLUSTER -> REPACK USING INDEX
>
> -- clusters the given table using the given index
> CLUSTER tab USING idx -> REPACK tab USING INDEX idx
>
> -- clusters this table using a clustered index; error if no index clustered
> CLUSTER tab -> REPACK tab USING INDEX
>
> -- vacuum-full all tables
> VACUUM FULL -> REPACK
>
> -- vacuum-full the specified table
> VACUUM FULL tab -> REPACK tab
>

Now that we want to cover the CLUSTER/VACUUM FULL completely, I've checked the
options of VACUUM FULL. I found two items not supported by REPACK (but also
not supported by by CLUSTER): ANALYZE and SKIP_DATABASE_STATS. Maybe just
let's mention that in the user documentation of REPACK?

(Besides that, VACUUM FULL accepts TRUNCATE and INDEX_CLEANUP options, but I
think these have no effect.)

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jelte Fennema-Nio 2025-08-05 09:39:10 Re: libpq-oauth: a mid-beta naming check
Previous Message vignesh C 2025-08-05 08:52:34 Re: CREATE PUBLICATION with 'publish_generated_columns' parameter specified but unassigned