Re: Transform for pl/perl
Anthony Bykov <a.bykov@postgrespro.ru>
From: Anthony Bykov <a.bykov@postgrespro.ru>
To: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2018-02-13T13:43:11Z
Lists: pgsql-hackers
Attachments
- 0001-jsonb_plperl-extension-v7.patch (text/x-patch) patch v7-0001
On Sat, 13 Jan 2018 09:29:46 -0500 Andrew Dunstan <andrew.dunstan@2ndquadrant.com> wrote: > There's a bit of an impedance mismatch and inconsistency here. I think > we need to deal with json scalars (particularly numerics) the same way > we do for plain scalar arguments. We don't convert a numeric argument > to and SvNV. We just do this in plperl_call_perl_func(): > > tmp = OutputFunctionCall(&(desc->arg_out_func[i]), > fcinfo->arg[i]); > sv = cstr2sv(tmp); > pfree(tmp) > [...] > > PUSHs(sv_2mortal(sv)); > > Large numerics won't work as SvNV values, which have to fit in a > standard double. So I think we should treat them the same way we do > for plain scalar arguments. > > (This also suggests that the tests are a bit deficient in not testing > jsonb with large numeric values.) > > I'm going to set this back to waiting on author pending discussion. > > > cheers > > andrew > Hello, thank you for your attention. I'm sorry, but I couldn't understand what types of numerics you was talking about. Large numerics are just transformed into "inf" (or "Inf") and the patch contains such test. But there were no tests with numerics close to "inf" but not "inf" yet. So, I've added such test. Also I've fixed the thing Thomas Munro was talking about. -- Anthony Bykov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
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