From: Sandro Santilli Date: Tue, 20 Aug 2019 15:17:14 +0000 (+0000) Subject: Add support for :auto and :auto! upgrade-path targets in run_test.pl X-Git-Tag: 3.0.0beta1~67 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b60eea1fa30f2f58515720f3a899afaa304a5cd;p=postgis Add support for :auto and :auto! upgrade-path targets in run_test.pl The former will request upgrading to default version, the latter to do so using the postgis_extension_upgrade() function. See #4485 git-svn-id: http://svn.osgeo.org/postgis/trunk@17738 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/regress/run_test.pl b/regress/run_test.pl index dabb5d243..faf819613 100755 --- a/regress/run_test.pl +++ b/regress/run_test.pl @@ -242,6 +242,7 @@ else } my $libver = sql("select postgis_lib_version()"); +my $defextver = sql("select default_version from pg_available_extensions where name = 'postgis'"); if ( ! $libver ) { @@ -542,7 +543,13 @@ Options: -v, --verbose be verbose about failures --nocreate do not create the regression database on start --upgrade source the upgrade scripts on start - --upgrade-path upgrade path, format -- + --upgrade-path upgrade path, format --. + can be specified as "unpackaged" + to specify a script version to start from. + can be specified as ":auto" to request + upgrades to default version, and ":auto!" + to request upgrade via postgis_extensions_upgrade() + if available. --dumprestore dump and restore spatially-enabled db before running tests --nodrop do not drop the regression database on exit --raster load also raster extension @@ -1504,12 +1511,35 @@ sub upgrade_spatial_extensions { # ON_ERROR_STOP is used by psql to return non-0 on an error my $psql_opts = "--no-psqlrc --variable ON_ERROR_STOP=true"; + my $sql; + my $upgrade_via_function = 0; + + if ( $OPT_UPGRADE_TO =~ /^:auto/ ) + { + if ( $OPT_UPGRADE_TO =~ /^:auto!/ ) + { + if ( ! semver_lessthan($OPT_UPGRADE_FROM, "2.5.0") ) + { + $upgrade_via_function = 1; + } + } + $OPT_UPGRADE_TO = $defextver; + } + my $nextver = $OPT_UPGRADE_TO ? "${OPT_UPGRADE_TO}" : "${libver}next"; - my $sql = "ALTER EXTENSION postgis UPDATE TO '${nextver}'"; - if ( $OPT_UPGRADE_FROM =~ /^unpackaged/ ) { + if ( $upgrade_via_function ) + { + $sql = "SELECT postgis_extensions_upgrade()"; + } + elsif ( $OPT_UPGRADE_FROM =~ /^unpackaged/ ) + { $sql = "CREATE EXTENSION postgis VERSION '${nextver}' FROM unpackaged"; } + else + { + $sql = "ALTER EXTENSION postgis UPDATE TO '${nextver}'"; + } print "Upgrading PostGIS in '${DB}' using: ${sql}\n" ; @@ -1521,6 +1551,12 @@ sub upgrade_spatial_extensions die; } + if ( $upgrade_via_function ) + { + # The function does everything + return 1; + } + if ( $OPT_WITH_RASTER ) { if ( $OPT_UPGRADE_FROM