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 по дате отправления: