On 3/20/21 3:03 PM, Tom Lane wrote: > I wrote: >> Yeah, _doSetFixedOutputState is the wrong place: that runs on the >> pg_restore side of the fence, and would not have access to the >> necessary info in a separated dump/restore run. >> It might be necessary to explicitly pass the state through in a TOC item, >> as we do for things like the standard_conforming_strings setting. > Ah, now that I read your patch I see that's exactly what you did. > > I fixed up some issues in 0008/0009 (mostly cosmetic, except that > you forgot a server version check in dumpToastCompression) and > pushed that, so we can see if it makes crake happy. > >
It's still produced a significant amount more difference between the dumps. For now I've increased the fuzz factor a bit like this: diff --git a/PGBuild/Modules/TestUpgradeXversion.pm b/PGBuild/Modules/TestUpgradeXversion.pm index 1d1d313..567d7cb 100644 --- a/PGBuild/Modules/TestUpgradeXversion.pm +++ b/PGBuild/Modules/TestUpgradeXversion.pm @@ -621,7 +621,7 @@ sub test_upgrade ## no critic (Subroutines::ProhibitManyArgs) # generally from reordering of larg object output. # If not we heuristically allow up to 2000 lines of diffs - if ( ($oversion ne $this_branch && $difflines < 2000) + if ( ($oversion ne $this_branch && $difflines < 2700) || ($oversion eq $this_branch) && $difflines < 50) { return 1; I'll try to come up with something better. Maybe just ignore lines like SET default_toast_compression = 'pglz'; when taking the diff. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com