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
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 |
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 |