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

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

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

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

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

По умолчанию значения bool передаются в PL/Perl в текстовом виде, то есть как 't' или 'f'. Perl не будет воспринимать 'f' как false. Для решения этой проблемы применяется трансформация (CREATE TRANSFORM).

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

Доработка#

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

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

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

Установка#

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

CREATE EXTENSION bool_plperl CASCADE SCHEMA ext;

Настройка#

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

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

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

CREATE FUNCTION имя_функции (типы аргументов) RETURNS тип результата
TRANSFORM FOR TYPE bool
AS $$
  # Тело функции на PL/Perl
$$ LANGUAGE plperl;

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

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

Дополнительно поставляемый модуль bool_plperl: https://www.postgresql.org/docs/15/plperl-funcs.html.