diff options
Diffstat (limited to 'src/pl/plperl/expected/plperl.out')
-rw-r--r-- | src/pl/plperl/expected/plperl.out | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/pl/plperl/expected/plperl.out b/src/pl/plperl/expected/plperl.out index 906dc15e0ca..29c1d11c447 100644 --- a/src/pl/plperl/expected/plperl.out +++ b/src/pl/plperl/expected/plperl.out @@ -693,3 +693,21 @@ $$ LANGUAGE plperl; SELECT text_scalarref(); ERROR: PL/Perl function must return reference to hash or array CONTEXT: PL/Perl function "text_scalarref" +-- check safe behavior when a function body is replaced during execution +CREATE OR REPLACE FUNCTION self_modify(INTEGER) RETURNS INTEGER AS $$ + spi_exec_query('CREATE OR REPLACE FUNCTION self_modify(INTEGER) RETURNS INTEGER AS \'return $_[0] * 3;\' LANGUAGE plperl;'); + spi_exec_query('select self_modify(42) AS a'); + return $_[0] * 2; +$$ LANGUAGE plperl; +SELECT self_modify(42); + self_modify +------------- + 84 +(1 row) + +SELECT self_modify(42); + self_modify +------------- + 126 +(1 row) + |