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

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

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

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

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

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

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

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

Доработка

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

Ограничения

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

Установка

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

CREATE EXTENSION bool_plperlu CASCADE SCHEMA ext;

Настройка

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

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

Для трансформации используется атрибут 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: https://www.postgresql.org/docs/15/plperl-funcs.html.