pl/python do not delete function arguments - Mailing list pgsql-hackers

From Jan Urbański
Subject pl/python do not delete function arguments
Date
Msg-id 4D1CBAE5.2090007@wulczer.org
Whole thread Raw
Responses Re: pl/python do not delete function arguments  (Hitoshi Harada <umi.tanuki@gmail.com>)
List pgsql-hackers
(continuing the flurry of patches)

Here's a patch that stops PL/Python from removing the function's
arguments from its globals dict after calling it. It's
an incremental patch on top of the plpython-refactor patch sent in
http://archives.postgresql.org/message-id/4D135170.3080705@wulczer.org.

Git branch for this patch:
https://github.com/wulczer/postgres/tree/dont-remove-arguments

Apart from being useless, as the whole dict is unreffed and thus freed
in PLy_procedure_delete, removing args actively breaks things for
recursive invocation of the same function. The recursive callee after
returning will remove the args from globals, and subsequent access to
the arguments in the caller will cause a NameError (see new regression
test in patch).

Cheers,
Jan

Attachment

pgsql-hackers by date:

Previous
From: Jie Li
Date:
Subject: Re: RIGHT/FULL OUTER hash joins (was Re: small table left outer join big table)
Next
From: Alvaro Herrera
Date:
Subject: Re: and it's not a bunny rabbit, either