Re: PL/Python - lifetime of variables?

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: PL/Python - lifetime of variables?
Дата
Msg-id CAMsr+YFgxSurBGWDuTgCK_P0j_s+4t2VF6--zbhJ+FNxJY=-1Q@mail.gmail.com
обсуждение исходный текст
Ответ на PL/Python - lifetime of variables?  (Kohei KaiGai <kaigai@heterodb.com>)
Список pgsql-hackers
On Wed, 19 Feb 2020 at 09:12, Kohei KaiGai <kaigai@heterodb.com> wrote:

> I noticed that variables in PL/Python are not released at the end of procedure.
> Does it expected behavior?

PL/Python vars are freed when the interpreter instance is freed and
their refcounts reach zero.

I believe we use one subinterpreter for the lifetime of the backend
session. It might be worth checking whether we do an eager refcount
check and sweep when a procedure finishes.

But in general, I suggest that relying on object
finalizers/destructors to accomplish side effects visible outside the
procedure is bad development practice. Instead, use a "with" block, or
a try/finally block, and do explicit cleanup for external resources.

-- 
 Craig Ringer                   http://www.2ndQuadrant.com/
 2ndQuadrant - PostgreSQL Solutions for the Enterprise



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Delaying/avoiding BTreeTupleGetNAtts() call within _bt_compare()
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: Delaying/avoiding BTreeTupleGetNAtts() call within _bt_compare()