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  (Andres Freund <andres@2ndquadrant.com>)
Список 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 по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: additional json functionality
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: additional json functionality