postgres.git / summary / log / commit / refs

commit    514d47dfb69caec14b62b294f899b2e953cc2baa
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Fri Feb 21 11:37:38 2025 +0000
First released in: 18.0, 16.9, 17.5

    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 984410b92326.
    
    Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
    Discussion: https://postgr.es/m/88b183f1-ebf9-4f51-9144-3704380ccae7@dunslane.net
    Backpatch-through: 16


src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm index e34dfb92434..ac8916c16e4 100644 --- a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm +++ b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm @@ -603,6 +603,12 @@ sub adjust_new_dumpfile # Version comments will certainly not match. $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) { # Suppress noise-word uses of IN in CREATE/ALTER PROCEDURE. [parent: 1c2a2354c384]