Глава 45. PL/Python — процедурный язык Python

Процедурный язык PL/Python позволяет писать функции и процедуры Postgres Pro на языке Python.

Чтобы установить PL/Python в определённую базу данных, выполните команду CREATE EXTENSION plpythonu (но смотрите также Раздел 45.1).

Подсказка

Если язык устанавливается в template1, он будет автоматически установлен во все создаваемые впоследствии базы данных.

PL/Python представлен только в виде «недоверенного» языка, что означает, что он никаким способом не ограничивает действия пользователей, и поэтому он называется plpythonu. Доверенная вариация plpython может появиться в будущем, если в Python будет разработан безопасный механизм выполнения. Автор функции на недоверенном языке PL/Python должен позаботиться о том, чтобы эту функцию нельзя было использовать не по назначению, так как она может делать всё, что может пользователь с правами администратора баз данных. Создавать функции на недоверенных языках, таких как plpythonu, разрешено только суперпользователям.

Примечание

В Postgres Pro Standard поддерживаются языки plpythonu/plpython2u и plpython3u. Соответствующие расширения поставляются в виде отдельных пакетов postgrespro-std-14-plpython и postgrespro-std-14-plpython3, соответственно (подробные инструкции по установке приведены в Главе 16). Отличия вариаций языка PL/Python описаны в Разделе 45.1.