On Mon, 2024-03-11 at 17:08 -0400, Tom Lane wrote: > Jeff Davis <pg...@j-davis.com> writes: > > was perfectly correct as it stood, because pg_version is a > PostgreSQL::Version object. Why did you feel a need to > editorialize on that?
The goal was to do a version check for 17 that's inclusive of development versions. Patch attached, following the example in AdjustUpgrade.pm. It feels a bit inconsistent to sometimes use $oldnode->pg_version and sometimes use $old_major_version, but it's certainly better than what I had done in f696c0cd5f. Regards, Jeff Davis
From ad3ba667553d8c2862b74939676244340631d192 Mon Sep 17 00:00:00 2001 From: Jeff Davis <j...@j-davis.com> Date: Mon, 11 Mar 2024 15:32:41 -0700 Subject: [PATCH v1] Another fix to 002_pg_upgrade.pl. Properly use PostgreSQL::Version, rather than the hacks introduced by f696c0cd5f. Discussion: https://postgr.es/m/1553991.1710191...@sss.pgh.pa.us Reported-by: Tom Lane --- src/bin/pg_upgrade/t/002_pg_upgrade.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 5ef78691cb..18335070c8 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -92,9 +92,9 @@ my $oldnode = PostgreSQL::Test::Cluster->new('old_node', install_path => $ENV{oldinstall}); -# Numeric major version of old cluster, ignoring "devel" suffix. -# Needed for testing upgrades from development version to itself. -my $old_major_version = int($oldnode->pg_version =~ s/devel//rg); +# Needed in some cases for testing upgrades from a development or beta +# version to itself. +my $old_major_version = PostgreSQL::Version->new($oldnode->pg_version->major); my %node_params = (); @@ -118,7 +118,7 @@ my $original_locale = "C"; my $original_datlocale = ""; my $provider_field = "'c' AS datlocprovider"; my $old_datlocale_field = "NULL AS datlocale"; -if ($old_major_version >= 15 && $ENV{with_icu} eq 'yes') +if ($oldnode->pg_version >= 15 && $ENV{with_icu} eq 'yes') { $provider_field = "datlocprovider"; if ($old_major_version >= 17) -- 2.34.1