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.

Reply via email to