Re: New parameter RollbackError to control rollback behavior on error

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
Cc: PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: New parameter RollbackError to control rollback behavior on error
Date: 2014-03-26 08:53:52
Message-ID: 533295A0.4010405@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-odbc

On 03/26/2014 08:39 AM, Michael Paquier wrote:
> Hi all,
>
> The behavior of rollback when an error occurs on an handle is
> controlled by extending Protocol with "$PROTNUM-[0|1|2]" where:
> - 0 = let the application handle rollbacks
> - 1 = rollback whole transaction when an error occurs
> - 2 = rollback only statement that failed
> Using such an extension is somewhat awkward as a single string is used
> for two settings... The proposed attached patch adds a new parameter
> called RollbackError that allows to control the behavior of rollback
> on error with a different parameter.

Great!

Since we're designing a new user interface for this, let's try to make
it as user-friendly as possible:

* I'm not too fond of the RollbackError name. It sounds like "an error
while rolling back". I googled around and found out that DataDirect's
proprietary driver has the same option, and they call it
TransactionErrorBehavior. See
http://blogs.datadirect.com/2013/07/solution-unexpected-postgres-current-transaction-aborted-error.html.

* Instead of using 0-2 as the values, let's give them descriptive names.
Something like "none", "RollbackTransaction", "RollbackStatement".
(actually, we'll probably want to also allow the integers, to keep the
connection string short, as there is a size limit on that)

> I thought first about including that in my cleanup work for 9.4, but
> as this actually does not break the driver it may be worth adding it
> directly to master, explaining the patch attached here. Comments
> welcome. Note that if there are objections I do not mind adding that
> for the work that would be merged later to 9.4 builds.

Yeah, let's get this into the master branch before your big 9.4 cleanup
work.

- Heikki

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2014-03-26 11:45:56 Re: New parameter RollbackError to control rollback behavior on error
Previous Message Heikki Linnakangas 2014-03-26 08:17:16 Re: "Conditional jump or move depends on uninitialised value(s)" within tsginidx.c

Browse pgsql-odbc by date

  From Date Subject
Next Message Michael Paquier 2014-03-26 11:45:56 Re: New parameter RollbackError to control rollback behavior on error
Previous Message Michael Paquier 2014-03-26 06:39:47 New parameter RollbackError to control rollback behavior on error