postgresql/src/pl/plperl
Noah Misch 3a0d473192 Use wrappers of PG_DETOAST_DATUM_PACKED() more.
This makes almost all core code follow the policy introduced in the
previous commit.  Specific decisions:

- Text search support functions with char* and length arguments, such as
  prsstart and lexize, may receive unaligned strings.  I doubt
  maintainers of non-core text search code will notice.

- Use plain VARDATA() on values detoasted or synthesized earlier in the
  same function.  Use VARDATA_ANY() on varlenas sourced outside the
  function, even if they happen to always have four-byte headers.  As an
  exception, retain the universal practice of using VARDATA() on return
  values of SendFunctionCall().

- Retain PG_GETARG_BYTEA_P() in pageinspect.  (Page images are too large
  for a one-byte header, so this misses no optimization.)  Sites that do
  not call get_page_from_raw() typically need the four-byte alignment.

- For now, do not change btree_gist.  Its use of four-byte headers in
  memory is partly entangled with storage of 4-byte headers inside
  GBT_VARKEY, on disk.

- For now, do not change gtrgm_consistent() or gtrgm_distance().  They
  incorporate the varlena header into a cache, and there are multiple
  credible implementation strategies to consider.
2017-03-12 19:35:34 -04:00
..
expected Fix plperl to handle non-ASCII error message texts correctly. 2015-09-29 10:52:22 -04:00
po Translation updates 2016-08-08 11:08:00 -04:00
sql Fix plperl to handle non-ASCII error message texts correctly. 2015-09-29 10:52:22 -04:00
.gitignore Allow make check in PL directories 2011-02-15 06:52:12 +02:00
GNUmakefile Make hstore_plperl's build even more like plperl's 2015-05-01 22:16:58 -04:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
SPI.xs Fix plperl to handle non-ASCII error message texts correctly. 2015-09-29 10:52:22 -04:00
Util.xs Use wrappers of PG_DETOAST_DATUM_PACKED() more. 2017-03-12 19:35:34 -04:00
nls.mk Translation updates 2016-05-09 10:04:41 -04:00
plc_perlboot.pl Use 'use strict' in all Perl programs 2017-01-05 12:34:48 -05:00
plc_trusted.pl Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
plperl--1.0.sql Put comments on the installable procedural languages. 2011-07-03 19:03:51 -04:00
plperl--unpackaged--1.0.sql Create extension infrastructure for the core procedural languages. 2011-03-04 21:51:14 -05:00
plperl.c Remove useless duplicate inclusions of system header files. 2017-02-25 16:12:55 -05:00
plperl.control Create extension infrastructure for the core procedural languages. 2011-03-04 21:51:14 -05:00
plperl.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
plperl_helpers.h Fix plperl to handle non-ASCII error message texts correctly. 2015-09-29 10:52:22 -04:00
plperl_opmask.pl Run newly-configured perltidy script on Perl files. 2012-07-04 21:47:49 -04:00
plperlu--1.0.sql Put comments on the installable procedural languages. 2011-07-03 19:03:51 -04:00
plperlu--unpackaged--1.0.sql Create extension infrastructure for the core procedural languages. 2011-03-04 21:51:14 -05:00
plperlu.control Create extension infrastructure for the core procedural languages. 2011-03-04 21:51:14 -05:00
ppport.h Fix typos in comments. 2017-02-06 11:33:58 +02:00
text2macro.pl Run newly-configured perltidy script on Perl files. 2012-07-04 21:47:49 -04:00

README

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.