From: | Nikita Glukhov <n(dot)gluhov(at)postgrespro(dot)ru> |
---|---|
To: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Aleksander Alekseev <a(dot)alekseev(at)postgrespro(dot)ru>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Anthony Bykov <a(dot)bykov(at)postgrespro(dot)ru> |
Subject: | Re: Jsonb transform for pl/python |
Date: | 2018-06-15 11:10:04 |
Message-ID: | 6001af16-b242-2527-bc7e-84b8a959163b@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 28.03.2018 15:43, Peter Eisentraut wrote:
> On 3/21/18 18:50, Peter Eisentraut wrote:
>> On 3/12/18 11:26, Nikita Glukhov wrote:
>>> I have reviewed this patch. Attached new 6th version of the patch with
>>> v5-v6 delta-patch.
>> Thanks for the update. I'm working on committing this.
> Committed.
>
> Everything seemed to work well. I just did a bit of cosmetic cleanups.
> I did a fair amount of tweaking on the naming of functions, the
> extensions and library names, etc., to make it look like the existing
> plpython transforms. I also changed it so that the transform would
> support mappings and sequences other than dict and list. I removed the
> non-ASCII test and the test with the huge numbers.
I found a memory leak in PLySequence_ToJsonbValue():
PyObject returned from PySequence_GetItem() is not released.
A bug can be easily reproduced using function roudtrip() from regression test:
SELECT roundtrip('[1,2,3]'::jsonb) FROM generate_series(1, 1000000);
Similar code in PLyMapping_ToJsonbValue() seems to be correct because
PyList_GetItem() and PyTuple_GetItem() return a borrowed reference.
Patch with fix is attached.
--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Attachment | Content-Type | Size |
---|---|---|
0001-Fix-memory-leak-in-contrib-jsonb_plpython.patch | text/x-patch | 823 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2018-06-15 11:41:56 | Re: Internal error XX000 with enable_partition_pruning=on, pg 11 beta1 on Debian |
Previous Message | Andrew Dunstan | 2018-06-15 11:06:50 | Re: automating perl compile time checking |