> > ...
> > > I think if we special case autocommit we have to force it to start a
> > > transaction.
> >
> > Be aware that "SET AUTOCOMMIT" does *not* start a transaction in
> > other systems (at least in Ingres, where I first ran into the
> > feature).
> >
> > This case is illustrating a general issue with trying to bracket
> > variables within transactions; the "special case" is that if a
> > transaction is not open then the change should be global across
> > transactions.
> >
> > Any counterexamples would argue for two separate behaviors, not
> > for shoehorning everything into one, uh, shoe.
>
> I am fine with special casing autocommit. Is that what you are
> suggesting?
I think he means:
Ex:
SET autocommit TO off;
SHOW autocommit;
ROLLBACK;
# warning about being outside of a transaction
BEGIN;
SET autocommit TO on;
SHOW autocommit; # shows on
ROLLBACK;
SHOW autocommit; # shows off
Only have the SET's in a transaction/rollback-able if they're made
inside of a transaction, otherwise leave them as atomic changes. -sc
--
Sean Chittenden