Перейти к основному содержимому

bool_plperlu. Трансформация для логических значений

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

Связанные компоненты: plperlu.

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

примечание

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

Модуль представляет собой реализацию механизма трансформации для логических значений.

По умолчанию значения bool передаются в PL/PerlU в текстовом виде — как 't' или 'f'. PerlU не будет воспринимать 'f' как false, и из-за этого возникает проблема.

В результате работы механизма трансформации PerlU будет получать аргумент bool как 1 или пустое значение. Для PerlU это будет выглядеть как true или false. Если функция возвращает результат типа bool, выдается значение true или false в зависимости от того, считается ли в PerlU результат истинным или ложным.

Доработка​

Не проводилась.

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

Ограничений нет.

Установка​

Обозначения

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

  • {OS} – наименование операционной системы и ее версия;
  • {product_version} – версия продукта (текущая версия: 7.3.2);
  • {base_version} – базовая версия продукта (текущая: 7).

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

При наличии прав администратора СУБД установку и активацию модуля возможно выполнить вручную.

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

    sudo dnf install pangolin-dbms-{base_version}-bool-plperl-7.3.2-{OS}.x86_64.rpm

    Подсказка

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

    cd distributive
    tar -xzf untrusted/untrusted.tar.gz -C untrusted/
    sudo dnf -y install untrusted/pangolin-dbms-7-bool-plperl-7.3.2-sberlinux9.x86_64.rpm

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

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

    CREATE EXTENSION bool_plperlu CASCADE SCHEMA ext;

Отключение​

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

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

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

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

Настройка​

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

Использование модуля​

Для трансформации используется атрибут TRANSFORM для функции на PL/PerlU, которая принимает или выдает bool:

CREATE FUNCTION perl_and(bool, bool) RETURNS bool
TRANSFORM FOR TYPE bool
AS $$
my ($a, $b) = @_;
return $a && $b;
$$ LANGUAGE plperlu;

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

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