From: Noah Misch Demo 002_pg_upgrade.pl schema diffs from using OID in pg_dump sort. Not for commit. This reverses the pg_dump OID sort for one side of the diff, simulating a worst case for "pg_restore -j" perturbing OID order. diff --git a/src/bin/pg_dump/pg_dump_sort.c b/src/bin/pg_dump/pg_dump_sort.c index 0b09777..a3d49a5 100644 --- a/src/bin/pg_dump/pg_dump_sort.c +++ b/src/bin/pg_dump/pg_dump_sort.c @@ -319,7 +319,8 @@ DOTypeNameCompare(const void *p1, const void *p2) } /* Usually shouldn't get here, but if we do, sort by OID */ - return oidcmp(obj1->catId.oid, obj2->catId.oid); + return (oidcmp(obj1->catId.oid, obj2->catId.oid) * + (getenv("PGTEST_DUMP_FALLBACK_REVERSE") ? -1 : 1)); } diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 7d82593..6a22731 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -413,8 +413,12 @@ SKIP: # Dump original and restored database for comparison. my $src_dump = get_dump_for_comparison($oldnode, 'regression', 'src_dump', 1); - my $dst_dump = - get_dump_for_comparison($dstnode, 'regression', 'dest_dump', 0); + my $dst_dump; + { + local $ENV{PGTEST_DUMP_FALLBACK_REVERSE} = 1; + $dst_dump = + get_dump_for_comparison($dstnode, 'regression', 'dest_dump', 0); + } compare_files($src_dump, $dst_dump, 'dump outputs from original and restored regression databases match');