]> granicus.if.org Git - postgresql/commit
Fix handling of "undef" in contrib/jsonb_plperl.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 4 Aug 2019 18:05:34 +0000 (14:05 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 4 Aug 2019 18:05:34 +0000 (14:05 -0400)
commite0f5048851ff88a53630a0c121a1cd15f6a2f1cd
treec0737bb205b2b080b69a23068b9dffa70b98a76b
parent803466b6ffaa2e5b94d8ce4d7fffa8185f2a0184
Fix handling of "undef" in contrib/jsonb_plperl.

Perl has multiple internal representations of "undef", and just
testing for SvTYPE(x) == SVt_NULL doesn't recognize all of them,
leading to "cannot transform this Perl type to jsonb" errors.
Use the approved test SvOK() instead.

Report and patch by Ivan Panchenko.  Back-patch to v11 where
this module was added.

Discussion: https://postgr.es/m/1564783533.324795401@f193.i.mail.ru
contrib/jsonb_plperl/expected/jsonb_plperl.out
contrib/jsonb_plperl/expected/jsonb_plperlu.out
contrib/jsonb_plperl/jsonb_plperl.c
contrib/jsonb_plperl/sql/jsonb_plperl.sql
contrib/jsonb_plperl/sql/jsonb_plperlu.sql