postgres.git / summary / log / commit / refs

commit    661b320ed4e0abf7063fc51597803cf3fdb13a85
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Sat Oct 11 20:33:55 2025 +0000
First released in: 17.7, 18.1

    Restore test coverage of LZ4Stream_gets().
    
    In commit a45c78e32 I removed the only regression test case that
    reaches this function, because it turns out that we only use it
    if reading an LZ4-compressed blobs.toc file in a directory dump,
    and that is a state that has to be created manually.  That seems
    like a bad thing to not test, not so much for LZ4Stream_gets()
    itself as because it means the squirrely eol_flag logic in
    LZ4Stream_read_internal() is not tested.
    
    The reason for the change was that I thought the lz4 program did not
    have any way to perform compression without explicit specification
    of the output file name.  However, it turns out that the syntax
    synopsis in its man page is a lie, and if you read enough of the
    man page you find out that with "-m" it will do what's needful.
    So restore the manual compression step in that test case.
    
    Noted while testing some proposed changes in pg_dump's compression
    logic.
    
    Author: Tom Lane <tgl@sss.pgh.pa.us>
    Discussion: https://postgr.es/m/3515357.1760128017@sss.pgh.pa.us
    Backpatch-through: 17


src/bin/pg_dump/t/002_pg_dump.pl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index e5e55e9a21c..db610cbacfd 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -201,6 +201,15 @@ my %pgdump_runs = ( '--statistics', 'postgres', ], + # Give coverage for manually compressed blobs.toc files during + # restore. + compress_cmd => { + program => $ENV{'LZ4'}, + args => [ + '-z', '-f', '-m', '--rm', + "$tempdir/compression_lz4_dir/blobs_*.toc", + ], + }, # Verify that data files were compressed glob_patterns => [ "$tempdir/compression_lz4_dir/toc.dat", [parent: 08c037dff961]