ltree_plpython2u. Трансформация для т ипа ltree в структуру PL/Python2u
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты:
ltree
,plpython2u
.Схема размещения:
ext
.
Этот модуль реализует трансформации типа данных ltree
для недоверенного (untrusted
) языка PL/Python2.
Описание типа ltree
смотрите здесь: ltree. Тип данных для представления меток в иерархической древовидной структуре.
Примечание:
Существуют дополнительные расширения, реализующие трансформации типа
ltree
для PL/Python:
ltree_plpythonu
для языка Python untrusted;ltree_plpython2u
для языка Python2 untrusted;ltree_plpython3u
для языка Python3 untrusted (связанное расширениеplpython3u
отсутствует в дистрибутиве поставки Pangolin версии до5.3.0
).Если установить эти трансформации и указать их при создании функции, значения
ltree
будут отображаться в словаре Python.Обратное преобразование не поддерживается.
Доработка
Доработка не проводилась.
Ограничения
- Рекомендуется устанавливать в одну схему с
ltree
. - Обратное преобразование не поддерживается.
Установка
Необходима предварительная установка связанного расширения plpython2u
или использовать предложение CASCADE
.
Модуль считается «доверенным», поэтому его могут устанавливать пользователи, имеющие право CREATE
в текущей базе данных:
CREATE EXTENSION ltree_plpython2u CASCADE SCHEMA ext;
Внимание!
Расширения, реализующие трансформации, рекомендуется устанавливать в одну схему с
ltree
. Другая схема может содержать объекты, созданные злонамеренным пользователем. Выбор такой схемы может повлечь за собой угрозу безопасности во время установки расширения.
Настройка
Не требуется.
Использование модуля/руководство по использованию
Использование модуля описано здесь: ltree. Тип данных для представления меток в иерархической древовидной структуре.
Пример № 1:
CREATE FUNCTION test1(val ltree) RETURNS int
LANGUAGE plpython2u
TRANSFORM FOR TYPE ltree
AS $$
plpy.info(repr(val))
return len(val)
$$;
SELECT test1('aa.bb.cc'::ltree);
Пример вывода результата:
INFO: ['aa', 'bb', 'cc']
test1
-------
3
(1 row)
Пример № 2:
CREATE FUNCTION test1n(val ltree) RETURNS int
LANGUAGE plpython2u
TRANSFORM FOR TYPE ltree
AS $$
plpy.info(repr(val))
return len(val)
$$;
SELECT test1n('aa.bb.cc.free'::ltree);
Пример вывода результата:
INFO: ['aa', 'bb', 'cc', 'free']
test1n
--------
4
(1 row)
Ссылки на документацию разработчика
Дополнительно поставляемый модуль ltree_plpython2u: https://www.postgresql.org/docs/15/ltree.html#id-1.11.7.32.9.