From: | Brian Dunavant <brian(at)omniti(dot)com> |
---|---|
To: | Stuart McGraw <smcg4191(at)mtneva(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: existence of a savepoint? |
Date: | 2018-05-29 14:26:42 |
Message-ID: | CAJTy2enwZYSAPbXAp-FQ6goFjEBTT6-2Yn7GTsWVfe9WjQJEAw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sun, May 27, 2018 at 6:04 PM, Stuart McGraw <smcg4191(at)mtneva(dot)com> wrote:
> Is there some way to to test if a savepoint of a given name
> exists? Or better yet, the number of stacked savepoints of
> that name?
>
>
This is kind of backwards, but you can determine if a savepoint by a
certain name exists by trying to release it. You can do so without
damaging the transaction by creating a savepoint immediately beforehand,
but this will cause you to lose the state of the named savepoint. Example
below.
=# begin;
BEGIN
=# insert into brian.test values (1);
INSERT 0 1
=# savepoint target_point;
SAVEPOINT
=# insert into brian.test values (2);
INSERT 0 1
=# savepoint buffer;
SAVEPOINT
=# release target_point;
RELEASE <------ savepoint existed
=# commit;
COMMIT
=# begin;
BEGIN
=# insert into brian.test values (3);
INSERT 0 1
=# savepoint buffer;
SAVEPOINT
=# release target_point;
ERROR: no such savepoint <----- savepoint did not exist
=# rollback to buffer;
ROLLBACK
=# select * from brian.test;
x
---
3
In theory you could do two savepoints "target_point" and
"target_point_test" and check for the _test version to maintain your
transaction states and be able to test for it once.
BEGIN
=# insert into brian.test values (1);
INSERT 0 1
=# savepoint target_point;
SAVEPOINT
=# savepoint target_point_test;
SAVEPOINT
=# insert into brian.test values (2);
INSERT 0 1
=# savepoint buffer;
SAVEPOINT
=# release target_point_test; <----- check if target_point exists
RELEASE
=# rollback to target_point; <----- rollback to it
ROLLBACK
Cheers,
-Brian Dunavant
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2018-05-29 14:38:21 | Re: existence of a savepoint? |
Previous Message | C GG | 2018-05-29 14:09:47 | LDAP authentication slow |