On 2026-03-20 Fr 9:26 AM, Amul Sul wrote:
On Fri, Mar 20, 2026 at 5:01 PM Amul Sul <[email protected]> wrote:
On Fri, Mar 20, 2026 at 2:18 AM Zsolt Parragi <[email protected]> wrote:
Hello!
Path is ignored with a positional argument, I think this is a bug?
This fails:
pg_waldump --path /wal/dir 000000010000000000000001
And this works:
pg_waldump --path /wal/dir --start 0/01000028 --end 0/010020F8
Good catch! I've fixed this in the attached version and updated a test
case to cover this scenario.
+{
+ int fname_len = strlen(fname);
+
Shouldn't this use size_t?
Okay, that can be used. I’ve done the same in the attached version.
+ /*
+ * Setup temporary directory to store WAL segments and set up an exit
+ * callback to remove it upon completion.
+ */
+ setup_tmpwal_dir(waldir);
Maybe this could be deferred to be created only on first use? If I
understand correctly, in a typical scenario waldump won't use this
temporary directory, yet it always creates it.
Yeah, that optimization can be done, but passing the waldir -- which
is only used once -- to the point where the first temp file is created
would require quite a bit of code refactoring that doesn't seem to
offer much gain, IMO.
Since Andrew also leans toward creating the directory only when
needed, I have reconsidered the approach. I think we can pass waldir
(the archive directory) via XLogDumpPrivate, and I’ve implemented that
in the attached version.
Thanks, committed with very minor tweaks.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com