Re: BUG #1118: Misleading Commit message - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #1118: Misleading Commit message
Date
Msg-id 15664.1080487406@sss.pgh.pa.us
Whole thread Raw
In response to Re: BUG #1118: Misleading Commit message  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: BUG #1118: Misleading Commit message
List pgsql-bugs
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> PostgreSQL Bugs List wrote:
>> In a block transaction, whether or not there were errors in the transaction
>> issuing a commit; returns a COMMIT confirmation.

> Uh, the tag indicates the COMMIT completed, not that it was a success.

The current philosophy on command tags is "the tag is the same as the
command actually issued".  However we are talking about breaking that
rule for EXECUTE, and if we do that, it's hard to say that we should
continue to enforce the rule for COMMIT.  It would clearly be useful
for a COMMIT that ends a failed transaction to report ROLLBACK instead.

> If we throw an error on a COMMIT, people willl think we did not close
> the transacction,

... which we wouldn't have.  That won't work.

> and if we return a ROLLBACK, they will think they issued a rollback.

Which, in effect, is what they did.  Is it likely that this would break
any clients?  The intention of the current design rule is that clients
can match the tag against the command they issued, but I don't know of
any client code that actually does that.

In any case, we already have some inconsistencies:

regression=# begin;
BEGIN
regression=# end;
COMMIT
regression=# begin;
BEGIN
regression=# abort;
ROLLBACK
regression=#

so it seems that in some cases we're already following a rule more like
"the tag is the same as the command actually *executed*".

I started out not wanting to make this change either, but the more
I think about it the harder it is to hold that position.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: BUG #1118: Misleading Commit message
Next
From: elein
Date:
Subject: Re: BUG #1118: Misleading Commit message