Adapt pg_upgrade test to pg_lsn output format difference

Commit 2633dae2e4 added some zero padding to various LSNs output
routines so that the low word is always 8 hex digits long, for easy
human consumption.  This included the pg_lsn datatype, which breaks the
pg_upgrade test when it compares the pg_dump output of an older version.
Silence this problem by setting the pg_lsn columns to NULL before the
upgrade.

Discussion: https://postgr.es/m/202507071504.xm2r26u7lmzr@alvherre.pgsql
pull/235/head
Álvaro Herrera 2 months ago
parent 87b05fdc73
commit 3adcf9fbd8
No known key found for this signature in database
GPG Key ID: 1C20ACB9D5C564AE
  1. 26
      src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm

@ -251,6 +251,32 @@ sub adjust_database_contents
'drop operator if exists public.=> (bigint, NONE)');
}
# Version 19 changed the output format of pg_lsn. To avoid output
# differences, set all pg_lsn columns to NULL if the old version is
# older than 19.
if ($old_version < 19)
{
if ($old_version >= '9.5')
{
_add_st($result, 'regression',
"update brintest set lsncol = NULL");
}
if ($old_version >= 12)
{
_add_st($result, 'regression',
"update tab_core_types set pg_lsn = NULL");
}
if ($old_version >= 14)
{
_add_st($result, 'regression',
"update brintest_multi set lsncol = NULL");
_add_st($result, 'regression',
"update brintest_bloom set lsncol = NULL");
}
}
return $result;
}

Loading…
Cancel
Save