Verify roundtrip dump/restore of regression database
authorÁlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 1 Apr 2025 16:50:40 +0000 (18:50 +0200)
committerÁlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 1 Apr 2025 16:50:40 +0000 (18:50 +0200)
commit172259afb563d35001410dc6daad78b250924038
treee7820fda3f88802c478d89e2774aeda129a50663
parent764d501d24baab8ead6dc3bf7bb0dbd13ea86084
Verify roundtrip dump/restore of regression database

Add a test to pg_upgrade's test suite that verifies that
dump-restore-dump of regression database produces equivalent output to
dumping it directly.  This was already being tested by running
pg_upgrade itself, but non-binary-upgrade mode was not being covered.

The regression database has accrued, over time, a sufficient collection
of interesting objects to ensure good coverage, but there hasn't been a
concerted effort to be completely exhaustive, so it is likely still
possible to have more.

This'd belong more naturally in the pg_dump test suite, but we chose to
put it in src/bin/pg_upgrade/t/002_pg_upgrade.pl because we need a run
of the regression tests which is already done here, so this has less
total test runtime impact.  Also, experiments have shown that using
parallel dump/restore is slightly faster, so we use --format=directory -j2.

This test has already reported pg_dump bugs, as fixed in fd41ba93e463,
74563f6b9021d611f8b1587b4694aedf63bf.

Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://www.postgresql.org/message-id/CAExHW5uF5V=Cjecx3_Z=7xfh4rg2Wf61PT+hfquzjBqouRzQJQ@mail.gmail.com
src/bin/pg_upgrade/t/002_pg_upgrade.pl
src/test/perl/Makefile
src/test/perl/PostgreSQL/Test/AdjustDump.pm [new file with mode: 0644]
src/test/perl/meson.build