Re: fix crash with Python 3.11
От | Peter Eisentraut |
---|---|
Тема | Re: fix crash with Python 3.11 |
Дата | |
Msg-id | 73daabb7-9fc7-fb7a-5e06-a968c611b032@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: fix crash with Python 3.11 (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: fix crash with Python 3.11
|
Список | pgsql-hackers |
On 16.01.22 23:53, Tom Lane wrote: > I think a possible fix is: > > 1. Before entering the PG_TRY block, check for active subtransaction(s) > and immediately throw a Python error if there is one. (This corresponds > to the existing errors "cannot commit while a subtransaction is active" > and "cannot roll back while a subtransaction is active". The point is > to reduce the number of system states we have to worry about below.) > > 2. In the PG_CATCH block, after collecting the error data do > AbortOutOfAnyTransaction(); > StartTransactionCommand(); > which gets us into a good state with no active subtransactions. > > I'm not sure that those two are the best choices of xact.c > entry points, but there's precedent for that in autovacuum.c > among other places. AFAICT, AbortOutOfAnyTransaction() also aborts subtransactions, so why do you suggest the separate handling of subtransactions?
В списке pgsql-hackers по дате отправления: