Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion - Mailing list pgsql-bugs

From Andrew Dunstan
Subject Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion
Date
Msg-id 4683E7ED.7040305@dunslane.net
Whole thread Raw
In response to Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Tom Lane wrote:
> "Matt" <matt@lindenelevator.com> writes:
>
>> Description:        plperl spi_exec_prepared variable undef value confusion
>>
>
> [ pokes at it ... ]  Some of the places in plperl.c that are checking for
> undef values use code like
>
>     if (SvOK(val) && SvTYPE(val) != SVt_NULL)
>
> and some just test the SvTYPE part.  It looks to me like the SvOK test
> is essential --- in fact I'm not sure the SvTYPE test is even bringing
> anything to the party.  Any perl-extension gurus around here?
>
>
>

The perlapi docs explicitly state that one should always use SvOK() to
check for undef. IIRC some SvOK() tests were added in some places where
it was found to be necessary, and the old tests kept out of an abundance
of caution, but a little googling suggests that you are correct.

cheers

andrew

pgsql-bugs by date:

Previous
From: Stephen Frost
Date:
Subject: 'SET LOCAL ROLE blah;' doesn't work?
Next
From: Tom Lane
Date:
Subject: Re: 'SET LOCAL ROLE blah;' doesn't work?