Hi,
After running the following script in sqlite 3.8.7.1:
set dbfile {c:/temp/db.sqlite3}
file delete -force $dbfile
sqlite3 ::db $dbfile
::db eval {
PRAGMA journal_mode = WAL;
create table test2 (id, txt)
}
for {set i 0} {$i < 10000} {incr i} {
set t txt$i
::db eval {insert into test2 values($i,$t)}
}
::db eval {PRAGMA wal_checkpoint(FULL)}
puts a=[file size $dbfile]
::db eval {
delete from test2;
PRAGMA wal_checkpoint(FULL);
vacuum;
}
puts b=[file size $dbfile]
::db eval {vacuum}
puts c=[file size $dbfile]
::db close
puts d=[file size $dbfile]
I got as result:
a=177152
b=177152
c=177152
d=2048
Is there a way to shrink the file when it is still open in WAL mode?
Thank you
Ren?
Kernkraftwerk Goesgen-Daeniken AG
CH-4658 Daeniken, Switzerland
Diese Nachricht (inkl. Anhaenge) beinhaltet moeglicherweise vertrauliche oder
gesetzlich geschuetzte Daten oder Informationen. Zum Empfang derselben ist
(sind) ausschliesslich die genannte(n) Person(en) bestimmt. Falls Sie diese
Nachricht irrtuemlicherweise erreicht hat, sind Sie hoeflich gebeten, diese
unter Ausschluss jeder Reproduktion zu vernichten und den Absender umgehend zu
benachrichtigen. Besten Dank.