Re: Checking for undefined in Perl interface code?
От | Teodor Sigaev |
---|---|
Тема | Re: Checking for undefined in Perl interface code? |
Дата | |
Msg-id | 3C4FD31C.4050807@stack.net обсуждение исходный текст |
Ответ на | Checking for undefined in Perl interface code? (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Checking for undefined in Perl interface code?
|
Список | pgsql-hackers |
man perlguts: If you want to know if this variable (or any other SV) is actually defined, you can call: SvOK(SV*) The scalar undef value is stored in an SV instance called PL_sv_undef. Its address can be used whenever anSV* is needed. May be: if (! (SvOK(perlret) && perlret != &PL_sv_undef) ) {... Tom Lane wrote: > PL/Perl tries to handle an "undef" result from a Perl function (which > should convert to a SQL NULL) with code like so: > > /* XXX is this the approved way to check for an undef result? */ > if (perlret == &PL_sv_undef) > { > retval = (Datum) 0; > fcinfo->isnull = true; > } > else > { > // handle non-null result > } > > But I find that it doesn't work, at least not on RH Linux 7.2 with > perl 5.6.0. The if-test fails to notice undef results. > > Anyone know what the correct way to do this is? > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > > -- Teodor Sigaev teodor@stack.net
В списке pgsql-hackers по дате отправления: