mirror of
https://github.com/postgres/postgres.git
synced 2025-09-11 00:12:06 +03:00
Unlike PL/Tcl, PL/Perl at least made an attempt to clean up after itself when a function gets redefined. But it was still using TopMemoryContext for the fn_mcxt of argument/result I/O functions, resulting in the potential for memory leaks depending on what those functions did, and the retail alloc/free logic was pretty bulky as well. Fix things to use a per-function memory context like the other PLs now do. Tweak a couple of places where things were being done in a not-very-safe order (on the principle that a memory leak is better than leaving global state inconsistent after an error). Also make some minor cosmetic adjustments, mostly in field names, to make the code look similar to the way PL/Tcl does now wherever it's essentially the same logic. Michael Paquier and Tom Lane Discussion: <CAB7nPqSOyAsHC6jL24J1B+oK3p=yyNoFU0Vs_B6fd2kdd5g5WQ@mail.gmail.com>
src/pl/plperl/README PL/Perl allows you to write PostgreSQL functions and procedures in Perl. To include PL/Perl in the build use './configure --with-perl'. To build from this directory use 'make all; make install'. libperl must have been built as a shared library, which is usually not the case in standard installations. Consult the PostgreSQL User's Guide and the INSTALL file in the top-level directory of the source distribution for more information.