On 1/31/17, Ward WIllats <sqlite-us...@wardco.com> wrote:
> 1. The operational assumption (delete need pages) I've asserted here is
> correct, and

That is correct.  While the delete is underway, you need to have both
the old and new content of every modified database page stored on
disk, in case a rollback is required.

Actually, that is not 100% true.  The "new" value of pages added to
the freelist leaf pages is not saved since it does not matter if the
content of a freelist leaf page changes due to a power failure
followed by a recovery.  But even on a full table delete, not every
page becomes a freelist leaf page, so you still need some space.

That said, if you are in WAL mode, the new page content might be
stored in WAL pages that have already been allocated, if space is
available in the WAL file.  You can increase the chance that space
will be available in the WAL file if you run "PRAGMA wal_checkpoint"
just prior to running your big DELETE.

>
> This is sqlite 3.10.1.

Version 3.16.2 is faster, fully compatible, and contains new features.  :-)
-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to