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

Содержание

43.1. Python 2 и Python 3
43.2. Функции на PL/Python
43.3. Значения данных
43.3.1. Сопоставление типов данных
43.3.2. Null, None
43.3.3. Массивы, списки
43.3.4. Составные типы
43.3.5. Функции, возвращающие множества
43.4. Совместное использование данных
43.5. Анонимные блоки кода
43.6. Триггерные функции
43.7. Обращение к базе данных
43.7.1. Функции обращения к базе данных
43.7.2. Обработка ошибок
43.8. Явные подтранзакции
43.8.1. Менеджеры контекста подтранзакций
43.8.2. Старые версии Python
43.9. Вспомогательные функции
43.10. Переменные окружения

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

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

Подсказка

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

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

Примечание

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