Chapter 45. PL/Python — Python Procedural Language
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 45.1).
Tip
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.
Note
The plpythonu/plpython2u and plpython3u languages are supported in Postgres Pro Standard. The corresponding extensions are supplied as separate pre-built packages postgrespro-std-14-plpython and postgrespro-std-14-plpython3, respectively (for the detailed installation instructions, see Chapter 16). To learn about the differences between the PL/Python language variants, see Section 45.1.