Wiki / Procedural Languages / PL/Python
plpython3u
PL/Python3U untrusted procedural language
Reading PostgreSQL 18.6.
Description
PL/Python3U untrusted procedural language
- Kind
- Bundled procedural-language variant
- Family
- PL/Python
- Trusted
- f
- Handler
- plpython3_call_handler
- Inline handler
- plpython3_inline_handler
- Validator
- plpython3_validator
- Library
- $libdir/plpython3
- Default version
- 1.0
- Module pathname
- $libdir/plpython3
- Comment
- PL/Python3U untrusted procedural language
Installation definition from the matching source archive
This extension is shipped with the source. Its presence does not establish that the language or external runtime is installed.
/* src/pl/plpython/plpython3u--1.0.sql */
CREATE FUNCTION plpython3_call_handler() RETURNS language_handler
LANGUAGE c AS 'MODULE_PATHNAME';
CREATE FUNCTION plpython3_inline_handler(internal) RETURNS void
STRICT LANGUAGE c AS 'MODULE_PATHNAME';
CREATE FUNCTION plpython3_validator(oid) RETURNS void
STRICT LANGUAGE c AS 'MODULE_PATHNAME';
CREATE LANGUAGE plpython3u
HANDLER plpython3_call_handler
INLINE plpython3_inline_handler
VALIDATOR plpython3_validator;
COMMENT ON LANGUAGE plpython3u IS 'PL/Python3U untrusted procedural language';Manual definition
Chapter 44. PL/Python — Python Procedural Language
The PL/Python procedural language allows PostgreSQL functions and procedures to be written in the Python language.
To install PL/Python in a particular database, use CREATE EXTENSION plpython3u.
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 plpython3u. 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 plpython3u.
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.
Related entries
Documentation and source
Source build
- Version
- 18.6
- Build
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- Source fingerprint
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
Compare versions
PostgreSQL 17 → 18: unchanged.
Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.
Export JSON · Back to Procedural Languages · Recorded in PostgreSQL 10 through 20; the first sample is not necessarily its introduction.