Various small improvements and cleanups for PL/Perl.
Andrew Dunstan <andrew@dunslane.net>
Various small improvements and cleanups for PL/Perl.
- Allow (ineffective) use of 'require' in plperl
If the required module is not already loaded then it dies.
So "use strict;" now works in plperl.
- Pre-load the feature module if perl >= 5.10.
So "use feature :5.10;" now works in plperl.
- Stored procedure subs are now given names.
The names are not visible in ordinary use, but they make
tools like Devel::NYTProf and Devel::Cover much more useful.
- Simplified and generalized the subroutine creation code.
Now one code path for generating sub source code, not four.
Can generate multiple 'use' statements with specific imports
(which handles plperl.use_strict currently and can easily
be extended to handle a plperl.use_feature=':5.12' in future).
- Disallows use of Safe version 2.20 which is broken for PL/Perl.
http://rt.perl.org/rt3/Ticket/Display.html?id=72068
- Assorted minor optimizations by pre-growing data structures.
Patch from Tim Bunce, reviewed by Alex Hunsaker.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/plperl.sgml | modified | +31 −32 |
| src/pl/plperl/expected/plperl.out | modified | +13 −2 |
| src/pl/plperl/expected/plperl_plperlu.out | modified | +5 −4 |
| src/pl/plperl/plc_perlboot.pl | modified | +18 −10 |
| src/pl/plperl/plc_safe_bad.pl | modified | +11 −13 |
| src/pl/plperl/plc_safe_ok.pl | modified | +19 −17 |
| src/pl/plperl/plperl.c | modified | +158 −93 |
| src/pl/plperl/sql/plperl_plperlu.sql | modified | +6 −4 |
| src/pl/plperl/sql/plperl.sql | modified | +9 −1 |