]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
More precise determination of when an in-memory journal needs to be
authordrh <drh@noemail.net>
Fri, 28 Jul 2017 18:16:14 +0000 (18:16 +0000)
committerdrh <drh@noemail.net>
Fri, 28 Jul 2017 18:16:14 +0000 (18:16 +0000)
spilled to disk.

FossilOrigin-Name: 6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b

manifest
manifest.uuid
src/memjournal.c

index 600d9d81fe9daac0cd2eb2178864476a9d8821d2..175be09fce62b27439956115c99804cceac16280 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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
index bc9a0c0efbd563b0fd28f517a340548b61246020..f1962427287da6dbea23eb3d0dca3eaed01b61fa 100644 (file)
@@ -1 +1 @@
-94a2004756ffe027b3495be91366750135c294a9c460edc9a1b4b9422dcc33bd
\ No newline at end of file
+6a505bdd9347783d3d8105cb8185aa787801bad0c855b623cfd780fb406f0e7b
\ No newline at end of file
index 31ab5ef93f192be1983b49b2cf4b09117102d1e8..3b0e7a67286f668ace9c8026655997b936731d53 100644 (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