bool_plperl

一个提供 PL/Perl 布尔转换的 contrib 模块

bool_plperl 是一个提供布尔 转换contrib 模块,用于 PL/Perl

bool_plperlPostgreSQL 14 中引入。

模式

bool_plperl 将安装到当前模式,或使用 CREATE EXTENSION ... SCHEMA ... 指定的模式中。

更改历史记录

示例

使用示例

postgres=# CREATE EXTENSION bool_plperl CASCADE;
NOTICE:  installing required extension "plperl"
CREATE EXTENSION

postgres=# CREATE FUNCTION hello_bool(bool)
             RETURNS TEXT
             TRANSFORM FOR TYPE bool
             LANGUAGE plperl
           AS $$
             my $with_world = shift;

             elog(INFO, "with_world: '$with_world'");
return sprintf('hello%s', $with_world ? ' world' : ''); $$; CREATE FUNCTION postgres=# SELECT hello_bool(true), hello_bool(false);
INFO: with_world: '1'
INFO: with_world: '' hello_bool | hello_bool -------------+------------ hello world | hello (1 row)

不使用转换的等效函数会导致 FALSE 值作为文字 'f' 传递,除非函数明确转换,否则它不会以正常方式解释为布尔值。

postgres=# CREATE OR REPLACE FUNCTION hello_nobool(bool)
             RETURNS TEXT
             LANGUAGE plperl
           AS $$
             my $with_world = shift;

             elog(INFO, "with_world: '$with_world'");
           
             return sprintf('hello%s', $with_world ? ' world' : '');
           $$;
CREATE FUNCTION

postgres=# SELECT hello_nobool(true), hello_nobool(false);
INFO:  with_world: 't'
INFO:  with_world: 'f'
 hello_nobool | hello_nobool 
--------------+--------------
 hello world  | hello world
(1 row)

分类

Contrib 模块扩展过程语言

参见

bool_plperlu

反馈

提交任何关于 "bool_plperl" 的评论、建议或更正 此处