diff options
Diffstat (limited to 'src/pl/plperl/sql/plperl_init.sql')
-rw-r--r-- | src/pl/plperl/sql/plperl_init.sql | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/pl/plperl/sql/plperl_init.sql b/src/pl/plperl/sql/plperl_init.sql index 4ebf3f86eb7..2aa38110334 100644 --- a/src/pl/plperl/sql/plperl_init.sql +++ b/src/pl/plperl/sql/plperl_init.sql @@ -1,4 +1,4 @@ --- test plperl.on_plperl_init errors are fatal +-- test plperl.on_plperl_init -- This test tests setting on_plperl_init after loading plperl LOAD 'plperl'; @@ -8,3 +8,34 @@ SET SESSION plperl.on_plperl_init = ' system("/nonesuch"); '; SHOW plperl.on_plperl_init; DO $$ warn 42 $$ language plperl; + +-- +-- Reconnect (to unload plperl), then test setting on_plperl_init +-- as an unprivileged user +-- + +\c - + +CREATE ROLE regress_plperl_user; + +SET ROLE regress_plperl_user; + +-- this succeeds, since the GUC isn't known yet +SET SESSION plperl.on_plperl_init = 'test'; + +RESET ROLE; + +LOAD 'plperl'; + +SHOW plperl.on_plperl_init; + +DO $$ warn 42 $$ language plperl; + +-- now we won't be allowed to set it in the first place +SET ROLE regress_plperl_user; + +SET SESSION plperl.on_plperl_init = 'test'; + +RESET ROLE; + +DROP ROLE regress_plperl_user; |