If you execute an SQL statement in automagic mode, then BEGIN and COMMIT are 
magically wrapped around the statement -- you are absolutely correct and that 
is the purpose of the magic mode.  Therefore doing:

BEGIN;
INSERT ...
COMMIT;

is EXACTLY IDENTICAL to

INSERT ....

with full automagic engaged.  The only difference ... tada ... is that you get 
to see the processing associated with performing the magic, which was 
previously obscured from your view (or rather, was plainly obvious but you 
could not distinguish the processing caused by the magic and the processing 
caused by your INSERT ... statement).

I believe Simon's point is that if you use "Manual Magic" then you can see the 
processing associated with that magic, compared to full on automagic, where the 
actions contain such an intermix of magically initiated operations and 
explicitly initiation operations that a primitive observer is unable to tell 
which part is caused by the magic and which part is not.

As Captain Pickard would point out, it explains the magic to a primitive 
culture that has never seen a door before.

> -----Original Message-----
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-
> bounces at mailinglists.sqlite.org] On Behalf Of Domingo Alvarez Duarte
> Sent: Tuesday, 8 December, 2015 03:17
> To: SQLite mailing list
> Subject: Re: [sqlite] NOP INSERT still writes to the DB/journal
> 
> If I understood correctly when no transaction is specified an implicit
> transaction is created so there is no point to create a transaction for
> only
> one statement.
> 
> Cheers !
> >  Tue Dec 08 2015 5:51:35 am CET CET from "Simon Slavin"
> ><slavins at bigfraud.org>  Subject: Re: [sqlite] NOP INSERT still writes to
> the
> >DB/journal
> >
> >  On 8 Dec 2015, at 12:19am, Patrick Donnelly <batrick at batbytes.com>
> wrote:
> >
> >
> >>There are still writes:
> >>
> 
> >  Because you have not defined any transactions, each of your INSERT
> >commands it getting wrapped in its own transaction. A transaction has to
> >involve writes to disk.
> >
> > Try this ...
> >
> > BEGIN
> > INSERT INTO t1 ...
> > END
> >
> > See whether the INSERT command still involves as much writing.
> >
> > Simon.
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users at mailinglists.sqlite.org
> > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> >
> >
> >
> 
> 
> 
> 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



Reply via email to