Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Matt <matt(at)lindenelevator(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion
Date: 2007-06-28 16:55:09
Message-ID: 4683E7ED.7040305@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Tom Lane wrote:
> "Matt" <matt(at)lindenelevator(dot)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

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephen Frost 2007-06-28 17:01:44 'SET LOCAL ROLE blah;' doesn't work?
Previous Message Tom Lane 2007-06-28 16:46:24 Re: BUG #3415: plperl spi_exec_prepared variable undef value confusion