Alexey Grishchenko <agrishche...@pivotal.io> writes: > There is a bug in implementation of set-returning functions in PL/Python. > When you call the same set-returning function twice in a single query, the > executor falls to infinite loop which causes OOM.
Ugh. > Another issue with calling the same set-returning function twice in the > same query, is that it would delete the input parameter of the function > from the global variables dictionary at the end of execution. With calling > the function twice, this code attempts to delete the same entry from global > variables dict twice, thus causing KeyError. This is why the > function PLy_function_delete_args is modified as well to check whether the > key we intend to delete is in the globals dictionary. That whole business with putting a function's parameters into a global dictionary makes me itch. Doesn't it mean problems if one plpython function calls another (presumably via SPI)? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers