Tweaks to the way multiplexSubOpen() works, for backwards compatibility.

FossilOrigin-Name: bb40338887c912be70cb6fe3b760d87c14bb88a5
This commit is contained in:
drh 2011-12-16 05:50:39 +00:00
parent 0699966798
commit 8c24a369a5
3 changed files with 11 additions and 9 deletions

View File

@ -1,5 +1,5 @@
C Fix\sa\spotential\sinfinite\sloop\s(inserted\sby\sthe\sprevious\scheck-in)\non\sthe\smultiplexWrite()\smethod\sof\sthe\smultiplexor.
D 2011-12-16T05:09:46.415
C Tweaks\sto\sthe\sway\smultiplexSubOpen()\sworks,\sfor\sbackwards\scompatibility.
D 2011-12-16T05:50:39.331
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -214,7 +214,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F src/test_journal.c 03313c693cca72959dcaaf79f8d76f21c01e19ff
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
F src/test_malloc.c 8d416f29ad8573f32601f6056c9d2b17472e9ad5
F src/test_multiplex.c ccc5f2feae52c4fbef1a88205667a6bcf2078844
F src/test_multiplex.c 6e07b94e2fe430f7f4f0d7d67b5e58f504dea655
F src/test_multiplex.h e99c571bc4968b7a9363b661481f3934bfead61d
F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e
F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
@ -978,7 +978,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
P 5aefef04d6cc3b734c3f05e036b3869a52248f4d
R 8d7b158bf3a519193898c5ead6ba7790
P 022bf427c2edfe494ec7c222f436953ff56574a6
R 29ea54dcd671c93952fcbf93e86a1060
U drh
Z d8c8d1df41588adf9be8799f58ddd721
Z b9fbbc1fe20301c015fc0588c12a3621

View File

@ -1 +1 @@
022bf427c2edfe494ec7c222f436953ff56574a6
bb40338887c912be70cb6fe3b760d87c14bb88a5

View File

@ -306,10 +306,12 @@ static sqlite3_file *multiplexSubOpen(
*rc = multiplexSubFilename(pGroup, iChunk);
if( (*rc)==SQLITE_OK && (pSubOpen = pGroup->aReal[iChunk].p)==0 ){
int flags, bExists;
if( iChunk==0 ) createFlag = (pGroup->flags & SQLITE_OPEN_CREATE)!=0;
createFlag = (pGroup->flags & SQLITE_OPEN_CREATE)!=0;
flags = pGroup->flags;
if( createFlag ){
flags |= SQLITE_OPEN_CREATE;
}else if( iChunk==0 ){
/* Fall through */
}else if( pGroup->aReal[iChunk].z==0 ){
return 0;
}else{
@ -320,7 +322,7 @@ static sqlite3_file *multiplexSubOpen(
}
pSubOpen = sqlite3_malloc( pOrigVfs->szOsFile );
if( pSubOpen==0 ){
*rc = SQLITE_NOMEM;
*rc = SQLITE_IOERR_NOMEM;
return 0;
}
pGroup->aReal[iChunk].p = pSubOpen;