Table of Contents
The PL/Python procedural language allows Postgres Pro functions and procedures to be written in the Python language.
To install PL/Python in a particular database, use
CREATE EXTENSION plpythonu (but
see also Section 48.1).
If a language is installed into template1, all subsequently
created databases will have the language installed automatically.
PL/Python is only available as an “untrusted” language, meaning
it does not offer any way of restricting what users can do in it and
is therefore named plpythonu. A trusted
variant plpython might become available in the future
if a secure execution mechanism is developed in Python. The
writer of a function in untrusted PL/Python must take care that the
function cannot be used to do anything unwanted, since it will be
able to do anything that could be done by a user logged in as the
database administrator. Only superusers can create functions in
untrusted languages such as plpythonu.
The plpythonu/plpython2u
and plpython3u languages are supported in
Postgres Pro Enterprise. The corresponding extensions are
supplied as separate pre-built packages
postgrespro-ent-14-plpython and
postgrespro-ent-14-plpython3, respectively
(for the detailed installation instructions, see
Chapter 17). To learn about the differences between
the PL/Python language variants, see Section 48.1.