Re: PL/Perl list value return causes segfault - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: PL/Perl list value return causes segfault
Date
Msg-id 42D41DF3.6050702@dunslane.net
Whole thread Raw
In response to Re: PL/Perl list value return causes segfault  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: PL/Perl list value return causes segfault  (David Fetter <david@fetter.org>)
List pgsql-hackers

Alvaro Herrera wrote:

>On Tue, Jul 12, 2005 at 02:59:37PM -0400, Andrew Dunstan wrote:
>
>  
>
>>Note that all plperl functions are called in scalar context, and it is 
>>always wrong to return a list (as opposed to a listref). In fact, the 
>>value received might surprise you even if it worked (it would be the 
>>value of the last member of the list).
>>    
>>
>
>Hmm, I don't know if it's feasible to do in Perl, but maybe check
>whether the function wants to return something in list context and throw
>an appropiate error message?
>
>  
>

In perl, if there is any ambiguity it is the called function that is 
responsible for checking, not the caller. See "perldoc -f wantarray". 
PLPerl explicitly passed G_SCALAR as a flag on all calls to plperl 
routines. So returning a list is a case of pilot error.

cheers

andrew


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: PL/Perl list value return causes segfault
Next
From: Mark Wong
Date:
Subject: dbt2 & opteron performance