Re: pl/perl example in the doc no longer works in 9.1

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Re: pl/perl example in the doc no longer works in 9.1
Дата
Msg-id 3B70E555-91A3-4B7D-8034-7CBAEBA71399@kineticode.com
обсуждение исходный текст
Ответ на pl/perl example in the doc no longer works in 9.1  (Amit Khandekar <amit.khandekar@enterprisedb.com>)
Ответы Re: pl/perl example in the doc no longer works in 9.1
Список pgsql-hackers
On Oct 12, 2011, at 2:16 AM, Amit Khandekar wrote:

> CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$
>    $_SHARED{myquote} = sub {
>        my $arg = shift;
>        $arg =~ s/(['\\])/\\$1/g;
>        return "'$arg'";
>    };
> $$ LANGUAGE plperl;
>
> SELECT myfuncs(); /* initializes the function */
>
> ERROR:  PL/Perl function must return reference to hash or array
> CONTEXT:  PL/Perl function "myfuncs"
>
> Not sure if this is now an expected behaviour. Is it? Accordingly, I
> can open this in pgsql-bugs or put this issue in pgsql-docs.

Seems like there should be a bar return at the end of the function, otherwise it returns the last expression, which
happensto be a code reference. Not very useful in a function that should return VOID. New version: 

CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$  $_SHARED{myquote} = sub {      my $arg = shift;      $arg =~
s/(['\\])/\\$1/g;     return "'$arg'";  };  return; 
$$ LANGUAGE plperl;

Best,

David

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: COUNT(*) and index-only scans
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pl/perl example in the doc no longer works in 9.1