More precise determination of when an in-memory journal needs to be

spilled to disk.

FossilOrigin-Name: 6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b
This commit is contained in:
drh 2017-07-28 18:16:14 +00:00
parent 344f763f72
commit 9e61104c68
3 changed files with 16 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C Add\snew\sextended\serror\scodes\sfor\sthe\satomic\swrite\sfile-controls.
D 2017-07-28T13:18:35.469
C More\sprecise\sdetermination\sof\swhen\san\sin-memory\sjournal\sneeds\sto\sbe\nspilled\sto\sdisk.
D 2017-07-28T18:16:14.317
F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
@ -424,7 +424,7 @@ F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a
F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944
F src/memjournal.c 9b9e579226341e891a4657dc76fe2cec69734abcd23be0e42aa8764d88131f12
F src/memjournal.c 6f3d36a0a8f72f48f6c3c722f04301ac64f2515435fa42924293e46fc7994661
F src/msvc.h 4942752b6a253116baaa8de75256c51a459a5e81
F src/mutex.c 8e45800ee78e0cd1f1f3fe8e398853307f4a085c
F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85
@ -1639,7 +1639,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P f9213e4864d0542be5489e03cf40c47d9127a86bbbbbabd963aa08525d5dc97b
R df00eb2b7872527f1e0cbc6920cf1993
P 94a2004756ffe027b3495be91366750135c294a9c460edc9a1b4b9422dcc33bd
R 86ba3bf27ee71fb4aea5fe3f1aba5d47
U drh
Z ff0fbf0bcfb6efb6cc06622fd28cdbe1
Z 81ac04bf34607e329fe9d94777807b23

View File

@ -1 +1 @@
94a2004756ffe027b3495be91366750135c294a9c460edc9a1b4b9422dcc33bd
6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b

View File

@ -397,7 +397,15 @@ void sqlite3MemJournalOpen(sqlite3_file *pJfd){
int sqlite3JournalCreate(sqlite3_file *pJfd){
int rc = SQLITE_OK;
MemJournal *p = (MemJournal*)pJfd;
if( p->pMethod==&MemJournalMethods && (p->nSpill>0
if( p->pMethod==&MemJournalMethods && (
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
p->nSpill>0
#else
/* While this appears to not be possible without ATOMIC_WRITE, the
** paths are complex, so it seems prudent to leave the test in as
** a NEVER(), in case our analysis is subtly flawed. */
NEVER(p->nSpill>0)
#endif
#ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE
|| (p->flags & SQLITE_OPEN_MAIN_JOURNAL)
#endif