Fix cross-version upgrades with XMLSERIALIZE(NO INDENT)

Dumps from versions older than v16 do not know about NO INDENT in a
XMLSERIALIZE() clause.  This commit adjusts AdjustUpgrade.pm so as NO
INDENT is discarded in the contents of the new dump adjusted for
comparison when the old version is v15 or older.  This should be enough
to make the cross-version upgrade tests pass.

Per report from buildfarm member crake.  Oversight in 984410b923.

Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
Discussion: https://postgr.es/m/88b183f1-ebf9-4f51-9144-3704380ccae7@dunslane.net
Backpatch-through: 16
REL_16_STABLE
Michael Paquier 7 months ago
parent 1c2a2354c3
commit 514d47dfb6
  1. 6
      src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm

@ -603,6 +603,12 @@ sub adjust_new_dumpfile
# Version comments will certainly not match. # Version comments will certainly not match.
$dump =~ s/^-- Dumped from database version.*\n//mg; $dump =~ s/^-- Dumped from database version.*\n//mg;
# pre-v16 dumps do not know about XMLSERIALIZE(NO INDENT).
if ($old_version < 16)
{
$dump =~ s/XMLSERIALIZE\((.*)? NO INDENT\)/XMLSERIALIZE\($1\)/mg;
}
if ($old_version < 14) if ($old_version < 14)
{ {
# Suppress noise-word uses of IN in CREATE/ALTER PROCEDURE. # Suppress noise-word uses of IN in CREATE/ALTER PROCEDURE.

Loading…
Cancel
Save