Re: Transform for pl/perl
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>, Tom Lane <tgl@sss.pgh.pa.us>, Pavel Stehule <pavel.stehule@gmail.com>, Nikita Glukhov <n.gluhov@postgrespro.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-06-06T16:14:53Z
Lists: pgsql-hackers
On 2018-May-17, Peter Eisentraut wrote: > The items that are still open from the original email are: > > 2) jsonb scalar values are passed to the plperl function wrapped in not > one, but _two_ layers of references > > 3) jsonb numeric values are passed as perl's NV (floating point) type, > losing precision if they're integers that would fit in an IV or UV. > > #2 appears to be a quality of implementation issue without any > user-visible effects. > > #3 is an opportunity for future improvement, but works as intended right > now. > > I think patches for these issues could still be considered during beta, > but they are not release blockers IMO. It appears to me that item #2 definitely would need to be fixed before release, so that it doesn't become a backwards-incompatibility later on. I'm not sure I agree that #3 is just a future feature. If you have functions working with jsonb numeric giving exact results, and later enable transforms for plperl, then your function starts giving inexact results? Maybe I misunderstand the issue but this doesn't sound great. Anyway, please let's move this forward. Peter, you own this item. Anthony and ilmari, if you can help by providing a patch, I'm sure that'll be appreciated. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix jsonb_plperl to convert Perl UV values correctly.
- 93b6e03ab479 11.0 landed
-
Fix contrib/hstore_plperl to look through scalar refs.
- e3b7f7cc5063 11.0 landed
- 7594b7a53366 10.5 landed
- 645929c545ef 9.5.14 landed
- 1bebfb9b6365 9.6.10 landed
-
Allow plperl_sv_to_datum to look through scalar refs.
- 3a382983d142 11.0 landed
-
Fix excessive enreferencing in jsonb-to-plperl transform.
- 1731e3741cbb 11.0 landed