Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > That seems messy. What you are saying is that if autocommit is off,
> > then in:
>
> > SET x=1;
> > UPDATE ...
> > SET y=2;
> > ROLLBACK;
>
> > that the x=1 doesn't get rolled back bu the y=2 does?
>
> Yes, if you weren't in a transaction at the start.
>
> > I can't see any good logic for that.
>
> How about "the SQL spec requires it"? Date seems to think it does,
> at least for some variables (of course we have lots of variables
> that are not in the spec).
>
> I can't find anything very clear in the SQL92 or SQL99 documents,
> and I'm not at home at the moment to look at my copy of Date, but
> if Curt's reading is correct then we have spec precedent for acting
> this way.
Spec or not, it looks pretty weird so I would question following the
spec on this one.
Do we want to say "With autocommit off, SET will be in it's own
transaction if it appears before any non-SET command", and "SETs are
rolled back except if autocommit off and they appear before any
non-SET"?
I sure don't.
--
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