Re: Why must AUTOCOMMIT be ON to do txn control in plpgsql procedure?

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Why must AUTOCOMMIT be ON to do txn control in plpgsql procedure?
Дата
Msg-id a94455b1-0e11-5a46-52f9-9114895846e8@aklaver.com
обсуждение исходный текст
Ответ на Re: Why must AUTOCOMMIT be ON to do txn control in plpgsql procedure?  (Bryn Llewellyn <bryn@yugabyte.com>)
Ответы Re: Why must AUTOCOMMIT be ON to do txn control in plpgsql procedure?  (Bryn Llewellyn <bryn@yugabyte.com>)
Список pgsql-general
On 8/7/19 11:46 AM, Bryn Llewellyn wrote:
> Thanks for your response, Kyotaro. I’m happy, now, to accept the rule 
> that “call proc_that_does_txn_control()” is legal only when AUTOCOMMIT 
> is ON. Esp. when I’m told (on twitter, by 2ndQuadrant’s Peter 
> Eisentraut, that this rule is “an implementation restriction, for the 
> most part.” See HERE 
> <https://twitter.com/petereisentraut/status/1158802910865756160>.
> 
> About your “In-procedure transaction control premises that no 
> transaction is active before calling the procedure”… yes. Nevertheless, 
> as the code that Umair Sahid showed us in the blog post that I 
> referenced in my email that started this thread, you can indeed start 
> end end transactions from an executing proc (as long as the session’s 
> AUTOCOMMIT mode s ON).
> 

The key is that the AUTOCOMMIT status is just a specific case of the 
general rule. The general rule being that a PROCEDURE cannot do 
transaction ending commands when it it called within an outer 
transaction. You can run into the same issue in other situations e.g. 
ORM's that start a transaction behind the scenes. In other words this is 
not psql specific.  As long as you understand the general rule then 
things become clearer.


-- 
Adrian Klaver
adrian.klaver@aklaver.com



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

Предыдущее
От: Bryn Llewellyn
Дата:
Сообщение: Re: Why must AUTOCOMMIT be ON to do txn control in plpgsql procedure?
Следующее
От: stan
Дата:
Сообщение: Recomended front ends?