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]