Re: Nested transactions - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: Nested transactions
Date
Msg-id 200406170204.i5H24KR01850@candle.pha.pa.us
Whole thread Raw
In response to Re: Nested transactions  (Alvaro Herrera <alvherre@dcc.uchile.cl>)
List pgsql-patches
Alvaro Herrera wrote:
> On Thu, Jun 17, 2004 at 10:01:32AM +0800, Christopher Kings-Lynne wrote:
> > >And consider this case:
> > >
> > >    BEGIN;
> > >    ...
> > >    SAVEPOINT x;
> > >    SELECT func_call();
> > >    SELECT func_call();
> > >    COMMIT;
> > >
> > >Now if func_call has a savepoint, it is really nested because it can't
> > >know whether the savepoint X will be used to roll back, so its status is
> > >dependent on the status of X.  Now, if we used savepoints in func_call,
> > >what happens in the second function call when we define a savepoint with
> > >the same name?  I assume we overwrite the original, but using nested
> > >transaction syntax seems much clearer.
> >
> > It also seems in this example that func_call() probably shouldn't have
> > permission to rollback to savepoint x?  Otherwise it would get...weird.
>
> I don't think we should explicitly forbid it.  I think it should be
> forbidden to close the outermost transaction inside a function (else the
> function would not be able to terminate correctly), but for levels
> before that one it'd be OK.

True.  I see no reason to disallow it.  Alvaro, you mentioned savepoint
levels, and I assume this to work around cases where they would need
the nested transactions that we are implementing.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Nested transactions
Next
From: Alvaro Herrera
Date:
Subject: Some index entries