ltree_plpythonu
Трансформация для типа ltree в структуру PL/Pythonu.
Схема размещения:
ext
.Модуль реализует трансформации типа данных ltree для недоверенного (
untrusted
) языка PL/Python.Существуют дополнительные расширения, реализующие трансформации типа
ltree
для PL/Python:- ltree_plpythonu для языка Python untrusted;
- ltree_plpython2u для языка Python2 untrusted;
- ltree_plpython3u для языка Python3 untrusted (связанное расширение plpython3u отсутствует в дистрибутиве поставки Компонента версии до
5.3.0
).
Если установить эти трансформации и указать их при создании функции, значения ltree будут отображаться в словаре Python. Обратное преобразование не поддерживается.
- Рекомендуется устанавливать в одну схему с ltree.
- Обратное преобразование не поддерживается.
-
Пример № 1:
CREATE FUNCTION testp1(val ltree) RETURNS int LANGUAGE plpythonu TRANSFORM FOR TYPE ltree AS $$ plpy.info(repr(val)) return len(val) $$; SELECT testp1('aa.bb.cc'::ltree);
Пример вывода результата:Раскрыть type=sqlINFO: ['aa', 'bb', 'cc'] testp1 ------- 3 (1 row)
-
Пример № 2:
CREATE FUNCTION test4n(val ltree) RETURNS int LANGUAGE plpythonu TRANSFORM FOR TYPE ltree AS $$ plpy.info(repr(val)) return len(val) $$; SELECT test4n('aa.bb.cc.free.ddd'::ltree);
Пример вывода результата:Раскрыть type=sqlINFO: ['aa', 'bb', 'cc', 'free', 'ddd'] test4n -------- 5 (1 row)
Дополнительную информацию по поставляемому модулю ltree_plpythonu можно получить по ссылке.