Re: pl/perl example in the doc no longer works in 9.1 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: pl/perl example in the doc no longer works in 9.1
Date
Msg-id 14745.1318436129@sss.pgh.pa.us
Whole thread Raw
In response to Re: pl/perl example in the doc no longer works in 9.1  ("David E. Wheeler" <david@kineticode.com>)
Responses Re: pl/perl example in the doc no longer works in 9.1
List pgsql-hackers
"David E. Wheeler" <david@kineticode.com> <CACoZds2D+0h-5euAxfpd9gQmiiW_MW9uv250Woz0=EGO0szScQ@mail.gmail.com> writes:
> 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:
 

Well, the real question is why a function declared to return VOID cares
at all about what the last command in its body is.  If this has changed
since previous versions then I think it's a bug and we should fix it,
not just change the example.
        regards, tom lane


pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: Re: pl/perl example in the doc no longer works in 9.1
Next
From: "David E. Wheeler"
Date:
Subject: Re: pl/perl example in the doc no longer works in 9.1