postgres.git / summary / log / commit / refs
commit 680f707fb2e4e3a954137e027e89afbf2d6f7944
Author: Michael Paquier <michael@paquier.xyz>
Date: Wed Sep 02 00:19:37 2026 +0000
Speed up pg_waldump TAP test
Several invocations decoded and printed the full WAL range even though
the test only needs to confirm that a command form works or that
decoding reaches a specific error. Limit those checks to one record,
and start the fall-off-the-end checks near the end of the generated WAL.
This change reduces the IPC overhead overall, particularly on Windows,
without reducing coverage.
I am usually hesitant to backpatch such changes as this is only an
improvement, but the gains are too good in terms of IO and runtime, for
both the CI and the buildfarm. Based on the numbers provided, the CI
takes 30% less time to run the test with this change on Windows (worst
case shown on the lists). These tests have been introduced in
96063e28366b.
Author: Sehrope Sarkuni <sehrope@jackdb.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Nazir Bilal Yavuz <byavuz81@gmail.com>
Discussion: https://postgr.es/m/CAH7T-araSEdsNpxiKaMOW8kr_ZHhekCLHx5yzm2ksq4FdgULbA@mail.gmail.com
Backpatch-through: 17
src/bin/pg_waldump/t/001_basic.pl | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/bin/pg_waldump/t/001_basic.pl b/src/bin/pg_waldump/t/001_basic.pl
index 578e4731394..71389a06582 100644
--- a/src/bin/pg_waldump/t/001_basic.pl
+++ b/src/bin/pg_waldump/t/001_basic.pl
@@ -184,8 +184,14 @@ command_fails_like(
[ 'pg_waldump', 'foo', 'bar' ],
qr/error: could not locate WAL file "foo"/,
'start file not found');
-command_like([ 'pg_waldump', $node->data_dir . '/pg_wal/' . $start_walfile ],
- qr/./, 'runs with start segment specified');
+command_like(
+ [
+ 'pg_waldump',
+ '--limit' => 1,
+ $node->data_dir . '/pg_wal/' . $start_walfile
+ ],
+ qr/./,
+ 'runs with start segment specified');
command_fails_like(
[ 'pg_waldump', $node->data_dir . '/pg_wal/' . $start_walfile, 'bar' ],
qr/error: could not open file "bar"/,
@@ -193,6 +199,7 @@ command_fails_like(
command_like(
[
'pg_waldump',
+ '--limit' => 1,
$node->data_dir . '/pg_wal/' . $start_walfile,
$node->data_dir . '/pg_wal/' . $end_walfile
],
@@ -217,6 +224,7 @@ command_fails_like(
command_like(
[
'pg_waldump', '--quiet',
+ '--limit' => 1,
$node->data_dir . '/pg_wal/' . $start_walfile
],
qr/^$/,
@@ -241,6 +249,7 @@ command_fails_like(
@cmd = (
'pg_waldump', '--start', $new_start,
+ '--limit', 1,
$node->data_dir . '/pg_wal/' . $start_walfile);
$result = IPC::Run::run \@cmd, '>', \$stdout, '2>', \$stderr;
ok($result, "runs with start segment and start LSN specified");
[parent: 45dc7bd2492a]