diff options
| author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2010-07-27 04:18:31 +0000 | 
|---|---|---|
| committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2010-07-27 04:18:31 +0000 | 
| commit | 4aa14fe901184c73880895921ef7d37c51ed7791 (patch) | |
| tree | 82aa9028408282aaa898654de783af2bb3be9e7e | |
| parent | 65ad4e31578f35f37920475ca80484f821e3309b (diff) | |
Ensure $_SHARED is declared in the main:: namespace, per bugs #5570 and #5571.
Author: Alex Hunsaker
| -rw-r--r-- | src/pl/plperl/expected/plperl_shared.out | 19 | ||||
| -rw-r--r-- | src/pl/plperl/plc_perlboot.pl | 4 | ||||
| -rw-r--r-- | src/pl/plperl/sql/plperl_shared.sql | 11 | 
3 files changed, 32 insertions, 2 deletions
diff --git a/src/pl/plperl/expected/plperl_shared.out b/src/pl/plperl/expected/plperl_shared.out index d054985cb84..1a6bf5ee4d4 100644 --- a/src/pl/plperl/expected/plperl_shared.out +++ b/src/pl/plperl/expected/plperl_shared.out @@ -36,3 +36,22 @@ select getme('on_init');   42  (1 row) +-- verify that we can use $_SHARED in strict mode +create or replace function perl_shared() returns int as $$ +use strict; +my $val = $_SHARED{'stuff'}; +$_SHARED{'stuff'} = '1'; +return $val; +$$ language plperl; +select perl_shared(); + perl_shared  +------------- +             +(1 row) + +select perl_shared(); + perl_shared  +------------- +           1 +(1 row) + diff --git a/src/pl/plperl/plc_perlboot.pl b/src/pl/plperl/plc_perlboot.pl index 379d4bfa5b7..1f8fddd4b3f 100644 --- a/src/pl/plperl/plc_perlboot.pl +++ b/src/pl/plperl/plc_perlboot.pl @@ -1,7 +1,8 @@ -#  $PostgreSQL: pgsql/src/pl/plperl/plc_perlboot.pl,v 1.6 2010/05/13 16:39:43 adunstan Exp $ +#  $PostgreSQL: pgsql/src/pl/plperl/plc_perlboot.pl,v 1.6.2.1 2010/07/27 04:18:31 alvherre Exp $  use 5.008001; +use vars qw(%_SHARED);  PostgreSQL::InServer::Util::bootstrap(); @@ -9,7 +10,6 @@ package PostgreSQL::InServer;  use strict;  use warnings; -use vars qw(%_SHARED);  sub plperl_warn {  	(my $msg = shift) =~ s/\(eval \d+\) //g; diff --git a/src/pl/plperl/sql/plperl_shared.sql b/src/pl/plperl/sql/plperl_shared.sql index a617b46a7af..d367d32ff08 100644 --- a/src/pl/plperl/sql/plperl_shared.sql +++ b/src/pl/plperl/sql/plperl_shared.sql @@ -29,3 +29,14 @@ select setme('ourkey','ourval');  select getme('ourkey');  select getme('on_init'); + +-- verify that we can use $_SHARED in strict mode +create or replace function perl_shared() returns int as $$ +use strict; +my $val = $_SHARED{'stuff'}; +$_SHARED{'stuff'} = '1'; +return $val; +$$ language plperl; + +select perl_shared(); +select perl_shared();  | 
