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.1);{base_version}– базовая версия продукта (текущая: 7).
Необходима предварительная установка связанного расширения plperlu или использовать предложение CASCADE.
При наличии прав администратора СУБД установку и активацию модуля возможно выполнить вручную.
-
Установите rpm/deb-пакет расширения, в зависимости от окружения:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-dbms-{base_version}-bool-plperl-7.3.1-{OS}.x86_64.rpmsudo apt install pangolin-dbms-{base_version}-bool-plperl-7.3.1_amd64.debsudo apt-get install pangolin-dbms-{base_version}-bool-plperl-7.3.1-{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.1-sberlinux9.x86_64.rpm -
Подключиться к БД, в которой необходимо зарегистрировать расширение.
-
Выполните активацию расширения с помощью команды:
CREATE EXTENSION bool_plperlu CASCADE SCHEMA ext;
Отключение
Для отключения расширения необходимо его удалить.
-
Подключиться к БД, в которой зарегистрировано расширение.
-
Выполните отключение расширения с помощью команды:
DROP EXTENSION bool_plperlu CASCADE; -
Удалите 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.