refer: [HACKERS] Commit turns into rollback?
On 3/17/06, Tom Lane <[EMAIL PROTECTED]> wrote:

So it's not the fact that it rolls back that bugs you, it's the way that
the action is reported?  We could talk about changing that maybe --- it
wouldn't break existing scripts AFAICS.  It might break applications
though.

  Yes, we should change the message. A silent SUCCESS message leads
the onlooker (script/application) to believe that everything was okay.
As Peter mentioned in the above-mentioned thread:

<snip>
The standard does address the issue of transactions that cannot be committed
because of an error.  In 16.6. <commit statement> GR 6 it basically says that
if the transaction cannot be completed (here: because of a constraint
violation), then an exception condition should be raised.  That is, the
transaction is over but you get an error.
</snip>

  As far as breaking-the-applications goes, I think we'll be
catching the broken applications rather than breaking any well wrtten
application (which detects a DML error as soon as it occurs, and
issues a rollback).

These are a few scenarios after entering an ABORTed transaction state:

1)
=# END;
ROLLBACK

2)
=# ROLLBACK;
ROLLBACK

3)
=# COMMIT;
ERROR: The transaction has been ended with a ROLLBACK.

  So, in effect, all these statements do end the ABORTed transaction
with a ROLLBACK. Whereas situations (1) and (2) behave just as
expected, situation (3) needs to be implemented with a
appropriate/correct error message.

Regards,
Gurjeet.

On 5/21/06, Jaime Casanova <[EMAIL PROTECTED]> wrote:
On 5/21/06, Gurjeet Singh <[EMAIL PROTECTED]> wrote:
> Hi All,
>
>    While trying to implement a recent TODO item, I noticed this behaviour:
>
> test=# select * from t2;
> ERROR:  current transaction is aborted, commands ignored until end of
> transaction block
> test=# commit;
> ROLLBACK
>
>    Either:
>      1) COMMIT in an aborted transaction should lead to an 'ERROR:
> Cannot COMMIT an aborted transaction.'
>      2) At least a 'WARNING: transaction is being rolled back to last
> known consistent state.' should precede the success (ROLLBACK)
> message.
>
> Regards,
> Gurjeet.
>

there was a thread about that two months ago...

here's Tom's response:
http://archives.postgresql.org/pgsql-hackers/2006-03/msg00786.php

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to