Re: Adding REPACK [concurrently]
Antonin Houska <ah@cybertec.at>
From: Antonin Houska <ah@cybertec.at>
To: pgsql-hackers@lists.postgresql.org
Cc: alvherre@kurilemu.de, Robert Treat <rob@xzilla.net>,
Fujii Masao <masao.fujii@gmail.com>,
Mihail Nikalayeu <mihailnikalayeu@gmail.com>
Date: 2025-08-20T08:53:13Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Improve REPACK (CONCURRENTLY) error messages some more
- 378dffaf8c80 19 (unreleased) landed
-
Add CONCURRENTLY option to REPACK
- 28d534e2ae0a 19 (unreleased) landed
-
Make index_concurrently_create_copy more general
- 33bf7318f94c 19 (unreleased) landed
-
Document the 'command' column of pg_stat_progress_repack
- a630ac5c2016 19 (unreleased) landed
-
Introduce the REPACK command
- ac58465e0618 19 (unreleased) landed
-
Split vacuumdb to create vacuuming.c/h
- c4067383cb2c 19 (unreleased) landed
-
Revert changes to CONCURRENTLY that "sped up" Xmin advance
- 042b584c7f7d 14.4 cited
Álvaro Herrera <alvherre@kurilemu.de> wrote: > Still on pg_repackdb, the implementation here is to install a symlink > called pg_repackdb which points to vacuumdb, and make the program behave > differently when called in this way. The amount of additional code for > this is relatively small, so I think this is a worthy technique -- > assuming it works. If it doesn't, Antonin proposed a separate binary > that just calls some functions from vacuumdb. Or maybe we could have a > common source file that both utilities call. There's an issue with the symlink, maybe some meson expert can help. In particular, the CI on Windows ends up with the following error: ERROR: Tried to install symlink to missing file C:/cirrus/build/tmp_install/usr/local/pgsql/bin/vacuumdb (The reason it does not happen on other platforms might be that the build is slower on Windows, and thus it's more prone to some specific race conditions.) It appears that the 'point_to' argument of the 'install_symlink()' function [1] is only a string rather than a "real target" [2]. That's likely the reason the function does not wait for the creation of the 'vacuumdb' executable. I could not find another symlink of this kind in the tree. (AFAICS, the postmaster->postgres symlink had been removed before Meson has been introduced.) Does anyone happen to have a clue? Thanks. [1] https://mesonbuild.com/Reference-manual_functions.html#install_symlink [2] https://mesonbuild.com/Reference-manual_returned_tgt.html -- Antonin Houska Web: https://www.cybertec-postgresql.com