Fix version check in 002_pg_upgrade.pl.
authorJeff Davis <jdavis@postgresql.org>
Tue, 12 Mar 2024 22:24:03 +0000 (15:24 -0700)
committerJeff Davis <jdavis@postgresql.org>
Tue, 12 Mar 2024 22:24:03 +0000 (15:24 -0700)
Commit f696c0cd5f tried to account for the version in a way that
includes development versions, but it was broken. Fix with suggestion
from Tom Lane.

Discussion: https://postgr.es/m/1553991.1710191312@sss.pgh.pa.us
Reported-by: Tom Lane
src/bin/pg_upgrade/t/002_pg_upgrade.pl

index 5ef78691cb392111736a0ebef3b743af0068e1d7..34a459496e173d4c80f8a25f7073a6a917e8b844 100644 (file)
@@ -92,10 +92,6 @@ 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);
-
 my %node_params = ();
 
 # To increase coverage of non-standard segment size and group access without
@@ -118,10 +114,10 @@ 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)
+   if ($oldnode->pg_version >= '17devel')
    {
        $old_datlocale_field = "datlocale";
    }