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

Содержание

48.1. Python 2 и Python 3
48.2. Функции на PL/Python
48.3. Значения данных
48.3.1. Сопоставление типов данных
48.3.2. Null, None
48.3.3. Массивы, списки
48.3.4. Составные типы
48.3.5. Функции, возвращающие множества
48.4. Совместное использование данных
48.5. Анонимные блоки кода
48.6. Триггерные функции
48.7. Обращение к базе данных
48.7.1. Функции обращения к базе данных
48.7.2. Обработка ошибок
48.8. Явные подтранзакции
48.8.1. Менеджеры контекста подтранзакций
48.8.2. Старые версии Python
48.9. Управление транзакциями
48.10. Вспомогательные функции
48.11. Переменные окружения

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

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

Подсказка

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

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

Примечание

Пользователи, имеющие дело с исходным кодом, должны явно включить сборку PL/Python в процессе установки. (За дополнительными сведениями обратитесь к инструкциям по установке.) Пользователи двоичных пакетов могут найти PL/Python в отдельном модуле.