Table of Contents
ThePL/Python procedural language allowsPostgreSQL functions and procedures to be written in thePython language.
To install PL/Python in a particular database, useCREATE EXTENSION plpython3u
.
If a language is installed intotemplate1
, 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 namedplpython3u
. A trusted variantplpython
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 asplpython3u
.
Users of source packages must specially enable the build of PL/Python during the installation process. (Refer to the installation instructions for more information.) Users of binary packages might find PL/Python in a separate subpackage.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please usethis form to report a documentation issue.