Fix pl/perl test case so it will still work under Perl 5.36.
authorTom Lane <[email protected]>
Wed, 1 Jun 2022 20:15:47 +0000 (16:15 -0400)
committerTom Lane <[email protected]>
Wed, 1 Jun 2022 20:15:47 +0000 (16:15 -0400)
Perl 5.36 has reclassified the warning condition that this test
case used, so that the expected error fails to appear.  Tweak
the test so it instead exercises a case that's handled the same
way in all Perl versions of interest.

This appears to meet our standards for back-patching into
out-of-support branches: it changes no user-visible behavior
but enables testing of old branches with newer tools.
Hence, back-patch as far as 9.2.

Dagfinn Ilmari Mannsåker, per report from Jitka Plesníková.

Discussion: https://postgr.es/m/564579.1654093326@sss.pgh.pa.us

src/pl/plperl/expected/plperl.out
src/pl/plperl/sql/plperl.sql

index d8a1ff5dd8d1c9b1d0451510ea803ee3dc9980a2..e3d7c8896a23a0ce3e621e4d202296c451a0ecd1 100644 (file)
@@ -724,9 +724,9 @@ DO $do$ use strict; my $name = "foo"; my $ref = $$name; $do$ LANGUAGE plperl;
 ERROR:  Can't use string ("foo") as a SCALAR ref while "strict refs" in use at line 1.
 CONTEXT:  PL/Perl anonymous code block
 -- check that we can "use warnings" (in this case to turn a warn into an error)
--- yields "ERROR:  Useless use of sort in scalar context."
-DO $do$ use warnings FATAL => qw(void) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
-ERROR:  Useless use of sort in scalar context at line 1.
+-- yields "ERROR:  Useless use of sort in void context."
+DO $do$ use warnings FATAL => qw(void) ; my @y; sort @y; 1; $do$ LANGUAGE plperl;
+ERROR:  Useless use of sort in void context at line 1.
 CONTEXT:  PL/Perl anonymous code block
 -- make sure functions marked as VOID without an explicit return work
 CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$
index b0d950b2304a03f91d7604166c99506e3f68ce8f..bb0b8ce4cb612b196099e6e9c29dde40b70eb112 100644 (file)
@@ -469,8 +469,8 @@ DO $$ use blib; $$ LANGUAGE plperl;
 DO $do$ use strict; my $name = "foo"; my $ref = $$name; $do$ LANGUAGE plperl;
 
 -- check that we can "use warnings" (in this case to turn a warn into an error)
--- yields "ERROR:  Useless use of sort in scalar context."
-DO $do$ use warnings FATAL => qw(void) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
+-- yields "ERROR:  Useless use of sort in void context."
+DO $do$ use warnings FATAL => qw(void) ; my @y; sort @y; 1; $do$ LANGUAGE plperl;
 
 -- make sure functions marked as VOID without an explicit return work
 CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$