From: | "Michael Paesold" <mpaesold(at)gmx(dot)at> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | <pgsql-general(at)postgresql(dot)org>, <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Rollback on Error |
Date: | 2004-09-19 16:13:34 |
Message-ID: | 00bd01c49e63$9d916940$d604460a@zaphod |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
Tom Lane wrote:
> "Michael Paesold" <mpaesold(at)gmx(dot)at> writes:
> > On the other hand, the scenario of a psql option (read: I have
> > given up the idea of a backend implementation) to rollback only
> > last statement on error is quite different.
>
> Sure (and we already have one for autocommit). But I thought you were
> asking about a backend implementation.
I have implemented what I have suggested for psql. I have attached a first
patch for review here, because I have a few questions. Also I want to make
sure the whole thing is reasonable.
I have named the option "IMPLICIT_SAVEPOINTS", because that's what it is. If
someone has a better name that would describe the purpose of the feature, I
am happy to change it.
The feature is activated, if
* \set IMPLICIT_SAVEPOINTS 'on'
* connection is in "idle in transaction" state
* psql session is interactive
The code executes an implicit "SAVEPOINT pg_internal_psql" in
common.c/SendQuery to which it will try to rollback to, if the executed
query fails.
Open questions:
* Should psql print a notice in the case of that rollback?
Something like "Rollback of last statement successful."?
* What is currently missing, is a detection of \i ... obviously this feature
should not be used for each query in \i. Perhaps only for the whole \i
command?
So what should I do to detect \i?
Add an extra argument to MainLoop, SendQuery and process_file()? (many
changes)
Add a global variable in common.c/h (e.g. bool
deactivate_implicit_savepoints) that can be used in process_file to
temporarily deactivate the code path?
(more local changes, but rather a hack imho)
Please have a look at the patch and comment.
Best Regards,
Michael Paesold
Attachment | Content-Type | Size |
---|---|---|
implicit_savepoints.patch | application/octet-stream | 1.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Soeren Gerlach | 2004-09-19 16:19:06 | Re: Problem in converting int to timestamp value - why? |
Previous Message | Iavor Raytchev | 2004-09-19 16:07:54 | import/export or moving data between databases |
From | Date | Subject | |
---|---|---|---|
Next Message | Dennis Bjorklund | 2004-09-19 17:16:42 | Re: How to add locale support for each column? |
Previous Message | Greg Stark | 2004-09-19 16:07:35 | Re: How to add locale support for each column? |