如何从另一个PL / Perl函数调用PL / Perl函数?

时间:2010-04-02 00:58:53

标签: perl postgresql plperl

CREATE FUNCTION foo() RETURNS text
    LANGUAGE plperl
    AS $$
        return 'foo';
$$;

CREATE FUNCTION foobar() RETURNS text
    LANGUAGE plperl
    AS $$
        return foo() . 'bar';
$$;

我正在尝试使用多个函数编写结果,但是当我调用foobar()时,我得到一个空结果。

1 个答案:

答案 0 :(得分:4)

来自documentation

  

PL / Perl函数不能直接相互调用(因为它们是Perl中的匿名子例程)。

解决方案似乎是将函数作为postgres函数调用(使用spi_query),或者您可以在全局可用的散列%_SHARED中引用函数,如图所示here