ltree_plpython3u. Трансформация для типа ltree в структуру PL/Python3u#

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: ltree, plpython3u.

Схема размещения: ext.

Примечание

Начиная с Pangolin 6.6.0 расширение вынесено в часть дистрибутива «untrusted». Подробное описание решения представлено в разделе «Информация по Untrusted-расширениям» документа «Руководство по установке».

Этот модуль реализует трансформации типа данных ltree для недоверенного (untrusted) языка PL/Python3.

Описание типа ltree смотрите здесь: ltree. Тип данных для представления меток в иерархической древовидной структуре.

Существует дополнительное расширение, реализующее трансформации типа ltree для PL/Python: ltree_plpython3u для языка Python3 untrusted (связанное расширение plpython3u отсутствует в дистрибутиве поставки Pangolin версии до 5.3.0).

Если установить эти трансформации и указать их при создании функции, значения ltree будут отображаться в словаре Python.

Обратное преобразование не поддерживается.

Доработка#

Доработка не проводилась.

Ограничения#

  1. Рекомендуется устанавливать в одну схему с ltree.

  2. Обратное преобразование не поддерживается.

Установка#

Обозначения

Далее в примерах команд будут использоваться следующие обозначения:

  • {OS} – наименование операционной системы и ее версия;

  • {product_version} – версия продукта (текущая версия: 7.1.1);

  • {base_version} – базовая версия продукта (текущая: 7).

Необходима предварительная установка связанного расширения plpython3u или использовать предложение CASCADE.

Внимание

Расширения, реализующие трансформации, рекомендуется устанавливать в одну схему с ltree. Другая схема может содержать объекты, созданные злонамеренным пользователем. Выбор такой схемы может повлечь за собой угрозу безопасности во время установки расширения.

Модуль считается «доверенным», поэтому его могут устанавливать пользователи, имеющие право CREATE в текущей базе данных.

  1. Установите rpm/deb-пакет расширения, в зависимости от окружения:

    sudo dnf install pangolin-dbms-{base_version}-ltree-plpython3u-{product_version}-{OS}.x86_64.rpm
    
    sudo apt install pangolin-dbms-{base_version}-ltree-plpython3u-{product_version}_amd64.deb
    
    sudo apt-get install pangolin-dbms-{base_version}-ltree-plpython3u-{product_version}-{OS}.x86_64.rpm
    

    Пример заполненной команды:

    cd distributive
    tar -xzf untrusted/untrusted.tar.gz -C untrusted/
    sudo dnf -y install untrusted/pangolin-dbms-7-ltree-plpython3u-7.1.1-sberlinux8.x86_64.rpm
    
  2. Подключиться к БД, в которой необходимо зарегистрировать расширение.

  3. Выполните активацию расширения с помощью команды:

    CREATE EXTENSION ltree_plpython3u CASCADE SCHEMA ext;
    

Отключение#

Для отключения расширения необходимо его удалить.

  1. Подключиться к БД, в которой зарегистрировано расширение.

  2. Выполните отключение расширения с помощью команды:

    DROP EXTENSION ltree_plpython3u CASCADE;
    
  3. Удалите rpm/deb-пакет с расширением.

Настройка#

Не требуется.

Использование модуля/руководство по использованию#

Использование модуля описано здесь: ltree. Тип данных для представления меток в иерархической древовидной структуре.

Ссылки на документацию разработчика#

Дополнительно поставляемый модуль ltree_plpython3u.