跳至主要內容

KlustronDB大约 1 分钟

Chapter 46. PL/Python - Python Procedural Language

Table of Contents

46.1. Python 2 vs. Python 3

46.2. PL/Python Functions

46.3. Data Values : 46.3.1. Data Type Mapping

[46.3.2. Null, None](plpython-data.md#id-1.8.11.11.4)

[46.3.3. Arrays, Lists](plpython-data.md#PLPYTHON-ARRAYS)

[46.3.4. Composite Types](plpython-data.md#id-1.8.11.11.6)

[46.3.5. Set-returning Functions](plpython-data.md#id-1.8.11.11.7)

46.4. Sharing Data

46.5. Anonymous Code Blocks

46.6. Trigger Functions

46.7. Database Access : 46.7.1. Database Access Functions

[46.7.2. Trapping Errors](plpython-database.md#PLPYTHON-TRAPPING)

46.8. Explicit Subtransactions : 46.8.1. Subtransaction Context Managers

[46.8.2. Older Python Versions](plpython-subtransaction.md#id-1.8.11.16.4)

46.9. Transaction Management

46.10. Utility Functions

46.11. Environment Variables

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

To install PL/Python in a particular database, use CREATE EXTENSION plpythonu (but see also Section 46.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

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.