Re: pl/python long-lived allocations in datum->dict transformation - Mailing list pgsql-hackers

From Tom Lane
Subject Re: pl/python long-lived allocations in datum->dict transformation
Date
Msg-id 24229.1329004103@sss.pgh.pa.us
Whole thread Raw
In response to pl/python long-lived allocations in datum->dict transformation  (Jan Urbański <wulczer@wulczer.org>)
Responses Re: pl/python long-lived allocations in datum->dict transformation  (Jan Urbański <wulczer@wulczer.org>)
List pgsql-hackers
Jan Urbański <wulczer@wulczer.org> writes:
> This is annoying for functions that plough through large tables, doing
> some calculation. Attached is a patch that does the conversion of
> PostgreSQL Datums into Python dict objects in a scratch memory context
> that gets reset every time.

As best I can tell, this patch proposes creating a new, separate context
(chewing up 8KB+) for every plpython procedure that's ever used in a
given session.  This cure could easily be worse than the disease as far
as total space consumption is concerned.  What's more, it's unclear that
it won't malfunction altogether if the function is used recursively
(ie, what if PLyDict_FromTuple ends up calling the same function again?)
Can't you fix it so that the temp context is associated with a
particular function execution, rather than being "statically" allocated
per-function?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: auto_explain produces invalid JSON
Next
From: Jeff Janes
Date:
Subject: Re: random_page_cost vs seq_page_cost