Re: 9.1 plperlu bug with null rows in trigger hash
От | Alexey Klyukin |
---|---|
Тема | Re: 9.1 plperlu bug with null rows in trigger hash |
Дата | |
Msg-id | B85C3400-0878-4432-B92F-581C5E61FD31@commandprompt.com обсуждение исходный текст |
Ответ на | Re: 9.1 plperlu bug with null rows in trigger hash (Alex Hunsaker <badalex@gmail.com>) |
Список | pgsql-bugs |
On May 27, 2011, at 7:14 PM, Alex Hunsaker wrote: > On Mon, May 23, 2011 at 20:08, Greg Sabino Mullane <greg@endpoint.com> wr= ote: >> On Mon, May 23, 2011 at 05:04:40PM -0600, Alex Hunsaker wrote: >> ... >>> Greg, can you confirm the attached fixes it for you? >>=20 >> Yes, seems to have done the job, thank you. >=20 > Thanks for testing! >=20 > [ Does a little dance to try and attract a -commiter ] >=20 > This was broken as part of: > commit 87bb2ade2ce646083f39d5ab3e3307490211ad04 > Author: Alvaro Herrera <alvherre@alvh.no-ip.org> > Date: Thu Feb 17 22:11:50 2011 -0300 >=20 > Convert Postgres arrays to Perl arrays on PL/perl input arguments >=20 > More generally, arrays are turned in Perl array references, and row and > composite types are turned into Perl hash references. This is done > recursively, in a way that's natural to every Perl programmer. >=20 > To avoid a backwards compatibility hit, the string representation of > each structure is also available if the function requests it. >=20 > Authors: Alexey Klyukin and Alex Hunsaker. > Some code cleanups by me. >=20 > Which also means it only breaks HEAD/9.1 (I did test and review 9.0 and d= own.) >=20 > Per http://search.cpan.org/~jesse/perl-5.14.0/pod/perlguts.pod#AVs,_HVs_a= nd_undefined_values, > we do not want to use &PL_sv_undef for undef values in hashes and > arrays. I (inadvertently) broke this in the above commit. As perldoc > mentions &PL_sv_undef seems like the intuitive thing to use. But its > wrong in certain cases. Yeah, per the link above the problem is evident and after a little testing I think your patch fixed the problem. Thank you for tracking down this! >=20 > We have 6 other uses of &PL_sv_undef, 2 &PL_sv_no and 1 &PL_sv_yes. > These are all ok as none of them use the HV/AV store interface. >=20 > I elected _not_ to add any regression tests. (If we forget about this > in the future, it will likely be in other code paths). Instead I added > comments to the places that used &PL_sv_undef noting that we > explicitly avoid it on purpose. +1. -- Alexey Klyukin The PostgreSQL Company - Command Prompt, Inc.
В списке pgsql-bugs по дате отправления: