pg_waldump: Add support for reading WAL from tar archives
Andrew Dunstan <andrew@dunslane.net>
pg_waldump: Add support for reading WAL from tar archives pg_waldump can now accept the path to a tar archive (optionally compressed with gzip, lz4, or zstd) containing WAL files and decode them. This was added primarily for pg_verifybackup, which previously had to skip WAL parsing for tar-format backups. The implementation uses the existing archive streamer infrastructure with a hash table to track WAL segments read from the archive. If WAL files within the archive are not in sequential order, out-of-order segments are written to a temporary directory (created via mkdtemp under $TMPDIR or the archive's directory) and read back when needed. An atexit callback ensures the temporary directory is cleaned up. The --follow option is not supported when reading from a tar archive. Author: Amul Sul <sulamul@gmail.com> Reviewed-by: Robert Haas <robertmhaas@gmail.com> Reviewed-by: Jakub Wartak <jakub.wartak@enterprisedb.com> Reviewed-by: Chao Li <li.evan.chao@gmail.com> Reviewed-by: Euler Taveira <euler@eulerto.com> Reviewed-by: Andrew Dunstan <andrew@dunslane.net> Reviewed-by: Zsolt Parragi <zsolt.parragi@percona.com> discussion: https://postgr.es/m/CAAJ_b94bqdWN3h2J-PzzzQ2Npbwct5ZQHggn_QoYGhC2rn-=WQ@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ref/pg_waldump.sgml | modified | +21 −2 |
| src/bin/pg_waldump/archive_waldump.c | added | +860 −0 |
| src/bin/pg_waldump/Makefile | modified | +6 −1 |
| src/bin/pg_waldump/meson.build | modified | +3 −1 |
| src/bin/pg_waldump/pg_waldump.c | modified | +228 −60 |
| src/bin/pg_waldump/pg_waldump.h | modified | +51 −0 |
| src/bin/pg_waldump/t/001_basic.pl | modified | +191 −73 |
| src/tools/pgindent/typedefs.list | modified | +4 −0 |
Discussion
- pg_waldump: support decoding of WAL inside tarfile 126 messages · 2025-08-07 → 2026-04-15