Alexey Grishchenko <agrishche...@pivotal.io> writes: > No, my fix handles this well. > In fact, with the first function call you allocate global variables > representing Python function input parameters, call the function and > receive iterator over the function results. Then in a series of Postgres > calls to PL/Python handler you just fetch next value from the iterator, you > are not calling the Python function anymore. When the iterator reaches the > end, PL/Python call handler deallocates the global variable representing > function input parameter.
> Regardless of the number of parallel invocations of the same function, each > of them in my patch would set its own input parameters to the Python > function, call the function and receive separate iterators. When the first > function's result iterator would reach its end, it would deallocate the > input global variable. But it won't affect other functions as they no > longer need to invoke any Python code. Well, if you think that works, why not undo the global-dictionary changes at the end of the first call, rather than later? Then there's certainly no overlap in their lifespan. 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