Re: Adding REPACK [concurrently]

Robert Treat <rob@xzilla.net>

From: Robert Treat <rob@xzilla.net>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: "Shinoda, Noriyoshi (PSD Japan FSI)" <noriyoshi.shinoda@hpe.com>, Antonin Houska <ah@cybertec.at>, Mihail Nikalayeu <mihailnikalayeu@gmail.com>, Pg Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-12T19:15:13Z
Lists: pgsql-hackers
On Thu, Mar 12, 2026 at 2:25 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> On 2026-Mar-11, Shinoda, Noriyoshi (PSD Japan FSI) wrote:
>
> > Hi, Hackers.
> > Thanks for developing this great feature.
> > The committed documentation for the pg_stat_progress_repack view was missing the explanation for the "command" column.
> > I've attached a small patch for monitoring.sgml.
>
> Thanks, pushed.  I also made some edits to the description of the
> pg_stat_progress_cluster view while there.  I've been wondering for some
> time whether we should drop that one for pg19.
>

ISTM the user facing docs refer to cluster as an "obsolete" variant /
spelling, rather than something marked as deprecated. This feels like
it is meant to imply that the old functionality is not planned for
removal in some future release (ie. deprecated), but that you may find
that certain bits of support for it are already removed/broken. If
that was the intention, I guess it gives justification to remove it
now; that said it does seem rather unfriendly to not give any kind of
bridge release to get from one side to the other, so I think the ideal
would be to keep it for v19 and remove it in v20.

Robert Treat
https://xzilla.net



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Allow old WAL recycling during REPACK CONCURRENTLY

  2. Advance restart_lsn more eagerly in LogicalConfirmReceivedLocation

  3. Remove unnecessary signal handler change

  4. Improve REPACK (CONCURRENTLY) error messages some more

  5. Revert "Allow logical replication snapshots to be database-specific"

  6. Move REPACK (CONCURRENTLY) test out of stock regression tests

  7. REPACK: do not require REPLICATION or LOGIN

  8. Add missing initialization

  9. Simplify declaration of memcpy target

  10. Reserve replication slots specifically for REPACK

  11. doc: Add an example of REPACK (CONCURRENTLY)

  12. Allow logical replication snapshots to be database-specific

  13. Avoid different-size pointer-to-integer cast

  14. Fix valgrind failure

  15. Add CONCURRENTLY option to REPACK

  16. Rename cluster.c to repack.c (and corresponding .h)

  17. Allow index_create to suppress index_build progress reporting

  18. Make index_concurrently_create_copy more general

  19. Document the 'command' column of pg_stat_progress_repack

  20. Introduce the REPACK command

  21. Toggle logical decoding dynamically based on logical slot presence.

  22. Split vacuumdb to create vacuuming.c/h

  23. Remove ReorderBufferTupleBuf structure.

  24. Revert changes to CONCURRENTLY that "sped up" Xmin advance

  25. VACUUM: ignore indexing operations with CONCURRENTLY