Thread

  1. Re: Adding REPACK [concurrently]

    Robert Treat <rob@xzilla.net> — 2025-08-16T13:41:57Z

    On Tue, Aug 5, 2025 at 4:59 AM Antonin Houska <ah@cybertec.at> wrote:
    >
    > Alvaro Herrera <alvherre@alvh.no-ip.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
    > >
    
    In the v18 patch, the docs say that repack doesn't remember the index,
    but it seems we are still calling mark_index_clustered, so I think the
    above is true but we need to update the docs(?).
    
    > > -- 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?
    >
    
    I would note that both pg_repack and pg_squeeze analyze by default,
    and running "vacuum full analyze" is the recommended behavior, so not
    having analyze included is a step backwards.
    
    > (Besides that, VACUUM FULL accepts TRUNCATE and INDEX_CLEANUP options, but I
    > think these have no effect.)
    >
    
    Yeah, these seem safe to ignore.
    
    Robert Treat
    https://xzilla.net