]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Separate multiplexor overflow pages for -wal and -journal files into
authordrh <drh@noemail.net>
Fri, 24 Feb 2012 16:13:55 +0000 (16:13 +0000)
committerdrh <drh@noemail.net>
Fri, 24 Feb 2012 16:13:55 +0000 (16:13 +0000)
separate namespaces when in 8+3 filename mode.

FossilOrigin-Name: d6850667ea61172ea0ebea4a22b6b306f74775fa

manifest
manifest.uuid
src/test_multiplex.c

index 2b9beab8326ee9898f72a5fc7ac30ab426f55d0a..70063c0c1a81c24f1afc5fd8c717159b9943356b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\smultiplexor\sso\sthat\sit\sworks\swith\sWAL\smode\sand\s8+3\sfilenames.
-D 2012-02-24T15:57:13.518
+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
 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 31fb992ab388a23813c0cb003dc3c0463aa149ac
+F src/test_multiplex.c 87fcd0b643487e045ca31e61ac9e439eb2fdf376
 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 3130275c64a60c5cfacbd11123305e6d99ea866d
-R a63fc7ff56ad9219f116d84627834be8
+P a9fcb46bc08c29aebaf3bc999f45846c3c320f68
+R 711b08b1e1970a07421b68efd25cb3be
 U drh
-Z 13fd34b3ced0bed8422321ec5813b610
+Z 36a285e495a18fe31688fe55471fb8b5
index c4a60f684a17ac0eb01fbbd92b7db4b4551b3317..99d00872224cb00fdeae6f33e0062e560792665d 100644 (file)
@@ -1 +1 @@
-a9fcb46bc08c29aebaf3bc999f45846c3c320f68
\ No newline at end of file
+d6850667ea61172ea0ebea4a22b6b306f74775fa
\ No newline at end of file
index ecef3f08c7f7006262583d94e2a28c5d807c1476..bd1e1680621e5acf39833f6311515c2b6595ec74 100644 (file)
 #define sqlite3_mutex_notheld(X)  ((void)(X),1)
 #endif /* SQLITE_THREADSAFE==0 */
 
+/* Maximum chunk number */
+#define MX_CHUNK_NUMBER 299
+
 /* First chunk for rollback journal files */
 #define SQLITE_MULTIPLEX_JOURNAL_8_3_OFFSET 400
+#define SQLITE_MULTIPLEX_WAL_8_3_OFFSET 700
 
 
 /************************ Shim Definitions ******************************/
@@ -251,17 +255,22 @@ static void multiplexFilename(
 ){
   int n = nBase;
   memcpy(zOut, zBase, n+1);
-  if( iChunk!=0 && iChunk!=SQLITE_MULTIPLEX_JOURNAL_8_3_OFFSET ){
+  if( iChunk!=0 && iChunk<=MX_CHUNK_NUMBER ){
 #ifdef SQLITE_ENABLE_8_3_NAMES
     int i;
     for(i=n-1; i>0 && i>=n-4 && zOut[i]!='.'; i--){}
     if( i>=n-4 ) n = i+1;
-    if( flags & (SQLITE_OPEN_MAIN_JOURNAL|SQLITE_OPEN_WAL) ){
+    if( flags & SQLITE_OPEN_MAIN_JOURNAL ){
       /* The extensions on overflow files for main databases are 001, 002,
-       ** 003 and so forth.  To avoid name collisions, add 400 to the 
-       ** extensions of journal files so that they are 401, 402, 403, ....
-       */
+      ** 003 and so forth.  To avoid name collisions, add 400 to the 
+      ** extensions of journal files so that they are 401, 402, 403, ....
+      */
       iChunk += SQLITE_MULTIPLEX_JOURNAL_8_3_OFFSET;
+    }else if( flags & SQLITE_OPEN_WAL ){
+      /* To avoid name collisions, add 700 to the 
+      ** extensions of WAL files so that they are 701, 702, 703, ....
+      */
+      iChunk += SQLITE_MULTIPLEX_WAL_8_3_OFFSET;
     }
 #endif
     sqlite3_snprintf(4,&zOut[n],"%03d",iChunk);