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?
|
Список | 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 по дате отправления: