Re: Transform for pl/perl
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Anthony Bykov <a.bykov@postgrespro.ru>
Cc: Arthur Zakirov <a.zakirov@postgrespro.ru>,
Thomas Munro <thomas.munro@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-03-12T15:06:53Z
Lists: pgsql-hackers
2018-03-12 9:08 GMT+01:00 Anthony Bykov <a.bykov@postgrespro.ru>: > On Mon, 5 Mar 2018 14:03:37 +0100 > Pavel Stehule <pavel.stehule@gmail.com> wrote: > > > Hi > > > > I am looking on this patch. I found few issues: > > > > 1. compile warning > > > > I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 > > -I/usr/lib64/perl5/CORE -c -o jsonb_plperl.o jsonb_plperl.c > > jsonb_plperl.c: In function ‘SV_FromJsonbValue’: > > jsonb_plperl.c:69:9: warning: ‘result’ may be used uninitialized in > > this function [-Wmaybe-uninitialized] > > return result; > > ^~~~~~ > > jsonb_plperl.c: In function ‘SV_FromJsonb’: > > jsonb_plperl.c:142:9: warning: ‘result’ may be used uninitialized in > > this function [-Wmaybe-uninitialized] > > return result; > > ^~~~~~ > > > > 2. bad comment > > > > /* > > * SV_ToJsonbValue > > * > > * Transform Jsonb into SV --- propably reverse direction > > */ > > > > > > /* > > * HV_ToJsonbValue > > * > > * Transform Jsonb into SV > > */ > > > > /* > > * plperl_to_jsonb(SV *in) > > * > > * Transform Jsonb into SV > > */ > > > > 3. Do we need two identical tests fro PLPerl and PLPerlu? Why? > > > > Regards > > > > Pavel > > Hello, thanks for reviewing my patch! I really appreciate it. > > That warnings are created on purpose - I was trying to prevent the case > when new types are added into pl/perl, but new transform logic was not. > Maybe there is a better way to do it, but right now I'll just add the > "default: pg_unreachable" logic. > > About the 3 point - I thought that plperlu and plperl uses different > interpreters. And if they act identically on same examples - there > is no need in identical tests for them indeed. > plperlu and plperl uses same interprets - so the duplicate tests has not any sense. But in last versions there are duplicate tests again The naming convention of functions is not consistent almost are are src_to_dest This is different and it is little bit messy +static SV * +SV_FromJsonb(JsonbContainer *jsonb) This comment is broken +/* + * plperl_to_jsonb(SV *in) + * + * Transform Jsonb into SV ---< should be SV to Jsonb + */ +PG_FUNCTION_INFO_V1(plperl_to_jsonb); +Datum Regards Pavel > > Point 2 is fixed in this version of the patch. > > Please, find in attachments a new version of the patch. > > -- > 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