Re: SET autocommit begins transaction?

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: SET autocommit begins transaction?
Дата
Msg-id 200209190044.g8J0iac18128@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: SET autocommit begins transaction?  (Sean Chittenden <sean@chittenden.org>)
Ответы Re: SET autocommit begins transaction?  (Sean Chittenden <sean@chittenden.org>)
Список pgsql-bugs
Sean Chittenden wrote:
> > > Of course, the reason they're rollbackable is:
> > >
> > > begin;
> > > create schema newschema;
> > > set search_path = newschema;
> > > rollback;
> > >
> > > create table junk;  -- DOH!
> >
> > And:
> >
> >     set statement_timeout = 20;
> >     query_with_error;
> >     set statement_timeout = 0;
> >     COMMIT;
> >
> > That will have to change in autocommit off to:
> >
> >     BEGIN;
> >     SET statement_timeout = 20;
> >     query_with_error;
> >     SET statement_timeout = 0;
> >     COMMIT;
> >
> > I assume that BEGIN does start a transaction.  With no BEGIN above, the
> > big problem is that it will work most of the time, but when/if the query
> > fails, they will find out they forgot the BEGIN.
>
> Wouldn't it roll back to 0 though because the SET statement_timeout TO
> 20 was inside of a transaction (assuming the value was 0 before the
> transaction began)?  -sc

Yes, with the BEGIN, it will roll back.  With autocommit off, this:

> >
> >     set statement_timeout = 20;
> >     query_with_error;
> >     set statement_timeout = 0;
> >     COMMIT;

will not roll back to 0.  It will be 20.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

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

Предыдущее
От: Rod Taylor
Дата:
Сообщение: Re: Bug #772: Rewriting on multi-record updates is
Следующее
От: Sean Chittenden
Дата:
Сообщение: Re: SET autocommit begins transaction?