Re: Suggestion: Issue warning when calling SET TRANSACTION outside transaction block
От | Bruce Momjian |
---|---|
Тема | Re: Suggestion: Issue warning when calling SET TRANSACTION outside transaction block |
Дата | |
Msg-id | 20131119180916.GO28149@momjian.us обсуждение исходный текст |
Ответ на | Re: Suggestion: Issue warning when calling SET TRANSACTION outside transaction block (Andres Freund <andres@2ndquadrant.com>) |
Ответы |
Re: Suggestion: Issue warning when calling SET TRANSACTION
outside transaction block
|
Список | pgsql-hackers |
On Tue, Nov 19, 2013 at 07:08:05PM +0100, Andres Freund wrote: > On 2013-11-19 13:05:01 -0500, Bruce Momjian wrote: > > SAVEPOINT > > > test=> ROLLBACK TO SAVEPOINT asdf; > > ERROR: ROLLBACK TO SAVEPOINT can only be used in transaction blocks > > > > Notice that they do _not_ check their arguments; they just throw > > errors. With this patch they issue warnings and evaluate their > > arguments: > > > test=> ROLLBACK TO SAVEPOINT asdf; > > WARNING: ROLLBACK TO SAVEPOINT can only be used in transaction blocks > > ROLLBACK > > > > However, SAVEPOINT/ROLLBACK throw weird errors when they are evaluated > > outside a multi-statement transaction, so their arguments are not > > evaluated. This might be why they were originally marked as errors. > > Why change the historical behaviour for savepoints? Because as Tom stated, we already do warnings for other useless transaction commands like BEGIN WORK inside a transaction block: test=> begin work;BEGINtest=> begin work; --> WARNING: there is already a transaction in progressBEGINtest=> commit;COMMITtest=> -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
В списке pgsql-hackers по дате отправления: