From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
Cc: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | Re: pgsql: Transforms for jsonb to PL/Perl |
Date: | 2018-04-03 21:37:04 |
Message-ID: | 15089.1522791424@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
I wrote:
> Hm, it fails on my own machine too (RHEL6, perl 5.10.1), with the
> same "cannot transform this Perl type to jsonb" symptoms. A bit
> of tracing shows that SvTYPE(in) is returning SVt_PVIV in some
> of the failing cases, and SVt_PVNV in others.
I tried to fix this by reducing the amount of knowledge that function
embeds about the possible SvTYPEs. After the special cases for AV,
HV, and NULL, the attached just tests SvIOK, SvNOK, and SvPOK, and
does the right thing for each case.
This results in one change in the module's test results: the example
that thinks it's returning a regexp match result no longer fails,
but just returns the scalar result (0). I'm inclined to think that
this is correct/desirable and the existing behavior is an accidental
artifact of not coping with Perl's various augmented representations
of scalar values.
Thoughts?
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
possible-jsonb_plperl-fix.patch | text/x-diff | 4.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2018-04-03 22:09:39 | pgsql: Don't clone internal triggers to partitions |
Previous Message | David Steele | 2018-04-03 21:17:18 | Re: pgsql: Validate page level checksums in base backups |