| From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> | 
|---|---|
| To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> | 
| Cc: | Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp>, pgsql-hackers(at)postgresql(dot)org | 
| Subject: | Re: Nested xacts: looking for testers and review | 
| Date: | 2004-05-28 18:52:32 | 
| Message-ID: | 20040528185232.GB2343@dcc.uchile.cl | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Fri, May 28, 2004 at 01:43:16PM -0400, Bruce Momjian wrote:
> In this case, I want to try all of the inserts, but any of them can
> fail, then I want the bottom part done.
I wonder where everyone eas when I asked this question a lot of time
ago.  I said I thought the behavior should be like I described, and no
one objected.
Personally I think it would be a mistake to allow the COMMIT for the
subtransaction to ignore the fact that the subxact was aborted.  However
I realize what you are proposing, and maybe this can be implemented
using a parameter to COMMIT (indicating to not propagate the error if
it's in aborted state, but commit normally otherwise).
However if everyone disagrees, I can take that part out, and the code
would be simpler.  IMHO however, it would be less reliable.
> In my logic, the subtransaction COMMIT is part of the subtransaction and
> should not affect the outer transaction's state.
In some cases yes, but not all.  In others, the outer transaction could
trust that the inner one worked; to make the example you posted work,
I'd use a program rather than a script, and check the return values (or
the transaction state).  If the subxact is in aborted state, issue
ROLLBACK and try again; if not, commit.
> Unfortunately, we don't have any similar behavior in our 7.4 code
> because whether you issue COMMIT or ABORT, it does not affect the outer
> session.
Of course. This is new functionality.
> Right now I think just posting examples will work fine.  I think the
> above case shows we are not ready for documentation yet.  What I would
> like is for folks to focus on testing so we can find any open issues
> like this one and address them.
Ok.
-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
That's because in Europe they call me by name, and in the US by value!"
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alvaro Herrera | 2004-05-28 19:05:42 | Re: SELECT * FROM <table> LIMIT 1; is really slow | 
| Previous Message | Tom Lane | 2004-05-28 18:47:01 | Re: SELECT * FROM <table> LIMIT 1; is really slow |