Re: Surprising behaviour of \set AUTOCOMMIT ON

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Surprising behaviour of \set AUTOCOMMIT ON
Дата
Msg-id CAFj8pRD53PkNP1v28T3S6n23+nEu7R44tzekK81X5sduYOEetA@mail.gmail.com
обсуждение исходный текст
Ответ на Surprising behaviour of \set AUTOCOMMIT ON  (Rahila Syed <rahilasyed90@gmail.com>)
Ответы Re: Surprising behaviour of \set AUTOCOMMIT ON  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers


2016-08-03 12:16 GMT+02:00 Rahila Syed <rahilasyed90@gmail.com>:
Hello,

Need community's opinion on following behaviour of  \set AUTOCOMMIT

If  \set AUTOCOMMIT ON is issued after \set AUTOCOMMIT OFF the commands which follow after AUTOCOMMIT is set ON are not committed until an explicit COMMIT is issued.
Its can be surprising to the user to not see results of the commands fired after AUTOCOMMIT is set to ON.

bash-4.2$ psql -d postgres -U rahila
psql (9.6beta3)
Type "help" for help.

postgres=# \set AUTOCOMMIT OFF
postgres=# create table test1(i int);
CREATE TABLE
postgres=# \set AUTOCOMMIT ON
postgres=# create table test2(j int);
CREATE TABLE
postgres=# \c postgres rahila
You are now connected to database "postgres" as user "rahila".
postgres=# \dt;
No relations found.

The ongoing transaction is left running when there is this change in mode from AUTOCOMMIT OFF to AUTOCOMMIT ON. 
This happens because \set AUTOCOMMIT ON is fired within a transaction block started when first command after \set AUTOCOMMIT OFF is executed. Hence it requires an explicit COMMIT to be effective.

Should changing the value from OFF to ON automatically either commit or rollback transaction in progress?
 
FWIW, running  set autocommit through ecpg commits the ongoing transaction when autocommit is set to ON from OFF. Should such behaviour be implemented for \set AUTOCOMMIT ON as well?

I dislike automatic commit or rollback here. What about raising warning if some transaction is open?

Regards

Pavel
 

Thank you,
Rahila Syed

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: old_snapshot_threshold allows heap:toast disagreement
Следующее
От: Alexey Grishchenko
Дата:
Сообщение: PL/Python adding support for multi-dimensional arrays