From c834b375a6dc36ff92f9f738ef1d7af09d91165f Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon, 11 Nov 2024 13:57:21 -0500
Subject: [PATCH] Fix cross-version upgrade tests.

TestUpgradeXversion knows how to make the main regression database's
references to pg_regress.so be version-independent.  But it doesn't
do that for plperl's database, so that the C function added by
commit b7e3a52a8 is causing cross-version upgrade test failures.
Path of least resistance is to just drop the function at the end
of the new test.

In <= v14, also take the opportunity to clean up the generated
test files.

Security: CVE-2024-10979
---
 src/pl/plperl/expected/plperl_env.out | 2 ++
 src/pl/plperl/sql/plperl_env.sql      | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/src/pl/plperl/expected/plperl_env.out b/src/pl/plperl/expected/plperl_env.out
index 328a536342..f777c072b5 100644
--- a/src/pl/plperl/expected/plperl_env.out
+++ b/src/pl/plperl/expected/plperl_env.out
@@ -51,3 +51,5 @@ $$
 $$ LANGUAGE plperl;
 WARNING:  attempted alteration of $ENV{TEST_PLPERL_ENV_FOO} at line 12.
 NOTICE:  environ unaffected
+-- clean up to simplify cross-version upgrade testing
+DROP FUNCTION get_environ();
diff --git a/src/pl/plperl/sql/plperl_env.sql b/src/pl/plperl/sql/plperl_env.sql
index 4108f392d1..fa5f04146c 100644
--- a/src/pl/plperl/sql/plperl_env.sql
+++ b/src/pl/plperl/sql/plperl_env.sql
@@ -56,3 +56,6 @@ $$
    }
 
 $$ LANGUAGE plperl;
+
+-- clean up to simplify cross-version upgrade testing
+DROP FUNCTION get_environ();