Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 7badf1b

Browse files
committed
Ensure $_SHARED is declared in the main:: namespace, per bugs #5570 and #5571.
Author: Alex Hunsaker
1 parent 314ef0e commit 7badf1b

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

src/pl/plperl/expected/plperl_shared.out

+19
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,22 @@ select getme('on_init');
3636
42
3737
(1 row)
3838

39+
-- verify that we can use $_SHARED in strict mode
40+
create or replace function perl_shared() returns int as $$
41+
use strict;
42+
my $val = $_SHARED{'stuff'};
43+
$_SHARED{'stuff'} = '1';
44+
return $val;
45+
$$ language plperl;
46+
select perl_shared();
47+
perl_shared
48+
-------------
49+
50+
(1 row)
51+
52+
select perl_shared();
53+
perl_shared
54+
-------------
55+
1
56+
(1 row)
57+

src/pl/plperl/plc_perlboot.pl

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

2-
# $PostgreSQL: pgsql/src/pl/plperl/plc_perlboot.pl,v 1.6 2010/05/13 16:39:43 adunstan Exp $
2+
# $PostgreSQL: pgsql/src/pl/plperl/plc_perlboot.pl,v 1.7 2010/07/27 04:18:28 alvherre Exp $
33

44
use 5.008001;
5+
use vars qw(%_SHARED);
56

67
PostgreSQL::InServer::Util::bootstrap();
78

89
package PostgreSQL::InServer;
910

1011
use strict;
1112
use warnings;
12-
use vars qw(%_SHARED);
1313

1414
sub plperl_warn {
1515
(my $msg = shift) =~ s/\(eval \d+\) //g;

src/pl/plperl/sql/plperl_shared.sql

+11
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,14 @@ select setme('ourkey','ourval');
2929
select getme('ourkey');
3030

3131
select getme('on_init');
32+
33+
-- verify that we can use $_SHARED in strict mode
34+
create or replace function perl_shared() returns int as $$
35+
use strict;
36+
my $val = $_SHARED{'stuff'};
37+
$_SHARED{'stuff'} = '1';
38+
return $val;
39+
$$ language plperl;
40+
41+
select perl_shared();
42+
select perl_shared();

0 commit comments

Comments
 (0)