]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix the xDelete implementation of the multiplexor VFS so that it correctly
authordrh <drh@noemail.net>
Mon, 27 Feb 2012 14:28:50 +0000 (14:28 +0000)
committerdrh <drh@noemail.net>
Mon, 27 Feb 2012 14:28:50 +0000 (14:28 +0000)
deletes overflow WAL files.

FossilOrigin-Name: e44e26771e5aa48f3bfa14d6db3e669b5b2a1e73

manifest
manifest.uuid
src/test_multiplex.c

index 70063c0c1a81c24f1afc5fd8c717159b9943356b..0b41ca500840f1583c0a54759371ff588c3c7ad9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Separate\smultiplexor\soverflow\spages\sfor\s-wal\sand\s-journal\sfiles\sinto\nseparate\snamespaces\swhen\sin\s8+3\sfilename\smode.
-D 2012-02-24T16:13:55.243
+C Fix\sthe\sxDelete\simplementation\sof\sthe\smultiplexor\sVFS\sso\sthat\sit\scorrectly\ndeletes\soverflow\sWAL\sfiles.
+D 2012-02-27T14:28:50.338
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -214,7 +214,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
 F src/test_journal.c a6a6baf343f79b942331f13378d045e7e270ae64
 F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
 F src/test_malloc.c cfe25d74333892ababde61196821a889b4756dee
-F src/test_multiplex.c 87fcd0b643487e045ca31e61ac9e439eb2fdf376
+F src/test_multiplex.c 0b3111a8c1b11963b2ca17a4b47219a5942bc9c0
 F src/test_multiplex.h e99c571bc4968b7a9363b661481f3934bfead61d
 F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e
 F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
@@ -990,7 +990,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P a9fcb46bc08c29aebaf3bc999f45846c3c320f68
-R 711b08b1e1970a07421b68efd25cb3be
+P d6850667ea61172ea0ebea4a22b6b306f74775fa
+R ea71d798aaf411fbd421b77e33a3053e
 U drh
-Z 36a285e495a18fe31688fe55471fb8b5
+Z 3207ff66d565aff181a5c8c10cee009f
index 99d00872224cb00fdeae6f33e0062e560792665d..e813cbd424b96874f1188670c56415397cb1699c 100644 (file)
@@ -1 +1 @@
-d6850667ea61172ea0ebea4a22b6b306f74775fa
\ No newline at end of file
+e44e26771e5aa48f3bfa14d6db3e669b5b2a1e73
\ No newline at end of file
index bd1e1680621e5acf39833f6311515c2b6595ec74..0bdbb0e75b25884ea66579a0acaa38f4c47a6965 100644 (file)
@@ -657,6 +657,15 @@ static int multiplexDelete(
         multiplexFilename(zName, nName, SQLITE_OPEN_MAIN_JOURNAL, --iChunk, z);
         rc = pOrigVfs->xDelete(pOrigVfs, z, syncDir);
       }
+      iChunk = 0;
+      do{
+        multiplexFilename(zName, nName, SQLITE_OPEN_WAL, ++iChunk, z);
+        rc = pOrigVfs->xAccess(pOrigVfs, z, SQLITE_ACCESS_EXISTS, &bExists);
+      }while( rc==SQLITE_OK && bExists );
+      while( rc==SQLITE_OK && iChunk>1 ){
+        multiplexFilename(zName, nName, SQLITE_OPEN_WAL, --iChunk, z);
+        rc = pOrigVfs->xDelete(pOrigVfs, z, syncDir);
+      }
     }
     sqlite3_free(z);
   }