PostgreSQL 9.1.24 Documentation
Prev | Up |  | Next

# Chapter 42. PL/Python - Python Procedural Language

The PL/Python procedural language allows PostgreSQL functions to be written in the Python language.

To install PL/Python in a particular database, use `CREATE EXTENSION plpythonu`, or from the shell command line use `createlang plpythonu `dbname`` (but see also Section 42.1).

> Tip: If a language is installed into `template1`, all subsequently created databases will have the language installed automatically.

As of PostgreSQL 7.4, PL/Python is only available as an "untrusted" language, meaning it does not offer any way of restricting what users can do in it. It has therefore been renamed to `plpythonu`. The trusted variant `plpython` might become available again in future, if a new 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: 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.

Prev | Home | Next
PL/Perl Under the Hood | Up | Python 2 vs. Python 3