]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Experimental changes to test defaulting to fullfsync for WAL mode
authoradam <adam@noemail.net>
Tue, 9 Nov 2010 00:47:45 +0000 (00:47 +0000)
committeradam <adam@noemail.net>
Tue, 9 Nov 2010 00:47:45 +0000 (00:47 +0000)
FossilOrigin-Name: 77b343cfc3bef9b1a99e98fec6073626dab05657

manifest
manifest.uuid
src/pager.c
src/pragma.c
src/prepare.c

index 62cf24b18e3d4417f1549f585991dd8b6c111be2..9d783b39e9ef1de1370baf0f38fdf41441f9de9a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Integrated\sproxy\slocking\sfile\ssupport\sfor\sWAL\sjournal\smode\sand\sdouble\sfree\sfix
-D 2010-11-09T00:43:59
+C Experimental\schanges\sto\stest\sdefaulting\sto\sfullfsync\sfor\sWAL\smode
+D 2010-11-09T00:47:46
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in c58f7d37ad0f9b28655ba4e28c6cb0f879569cd7
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -159,14 +159,14 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
 F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
 F src/os_unix.c 79cf726c9a0bcc4691a01389031513c10bf15bed
 F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7
-F src/pager.c a5f5d9787b11dfb0b6082e6f5846d00b459a8e19
+F src/pager.c 58befaf9251febd8d70a91d65e994f602b838cf0
 F src/pager.h ef8c8f71ab022cc2fff768a1175dd32355be9dcd
 F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
 F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
 F src/pcache1.c e921e8a1d52c93abde63cb6dad1fa39770410c52
-F src/pragma.c 3dbb254a99d7a5ccaff8eb1f8689556ff82fe6d0
-F src/prepare.c 23b5da0608820c9f76aa61d4955ebdbd23ffda36
+F src/pragma.c bbc722cbf73faeadcc650075609e7ceeaffedce2
+F src/prepare.c 70d261ec8e3b7a55dd3a1470e953be0ac3da34af
 F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
 F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
@@ -851,7 +851,10 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P e01c5f3eda7fe6e6afe9c3894384f09b58173da1
-R 0f46b01a6860ee53146a14c10ec341dc
+P fd4d38fa66de85676189ff4922fb1bf5f8cac9c4
+R c98bc3ea3fd9fcd44a0bbad595d43ad1
+T *branch * apple-osx-exp
+T *sym-apple-osx-exp *
+T -sym-apple-osx *
 U adam
-Z d51fce1db464c676813e4eba90c98e2f
+Z 06fc038b80ed13bd5b68fa3606bfbfea
index 2d60ca9cf60001f0a6b66d814be07e1de9f0a52f..558e98458272fa114691c24e6df11afbe8261e00 100644 (file)
@@ -1 +1 @@
-fd4d38fa66de85676189ff4922fb1bf5f8cac9c4
\ No newline at end of file
+77b343cfc3bef9b1a99e98fec6073626dab05657
\ No newline at end of file
index f0b5b77544ddcb4b022321fc4d862ec81f747286..74040bced317ed97cfc8d4ae04f7cbd2c3ac7ca9 100644 (file)
@@ -779,7 +779,7 @@ static const unsigned char aJournalMagic[] = {
 ** rollback journal. Otherwise false.
 */
 #ifndef SQLITE_OMIT_WAL
-static int pagerUseWal(Pager *pPager){
+int pagerUseWal(Pager *pPager){
   return (pPager->pWal!=0);
 }
 #else
@@ -5649,8 +5649,8 @@ int sqlite3PagerCommitPhaseOne(
     if( pagerUseWal(pPager) ){
       PgHdr *pList = sqlite3PcacheDirtyList(pPager->pPCache);
       if( pList ){
-        rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1, 
-            (pPager->fullSync ? pPager->sync_flags : 0)
+       // rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1, (pPager->fullSync ? pPager->sync_flags : 0)
+        rc = pagerWalFrames(pPager, pList, pPager->dbSize, 1, 0        
         );
       }
       if( rc==SQLITE_OK ){
index 9a02e97b69919f496343414b81361363f4384333..712a20628a4b486bfa1184aaa1c6d40ec00777e7 100644 (file)
@@ -569,6 +569,10 @@ void sqlite3Pragma(
       iDb = 0;
       pId2->n = 1;
     }
+    if (eMode == PAGER_JOURNALMODE_WAL) {
+      db->flags |= SQLITE_FullFSync;
+      sqlite3VdbeAddOp2(v, OP_Expire, 0, 0);
+    }
     for(ii=db->nDb-1; ii>=0; ii--){
       if( db->aDb[ii].pBt && (ii==iDb || pId2->n==0) ){
         sqlite3VdbeUsesBtree(v, ii);
index 2daf9b0ba4db5dcb9c7494e9b1b9475701ec5dc4..dd10efc306e05d636c05d42a4ae298360b05a7ef 100644 (file)
@@ -126,6 +126,8 @@ int sqlite3InitCallback(void *pInit, int argc, char **argv, char **NotUsed){
   return 0;
 }
 
+extern int pagerUseWal(Pager *p);
+
 /*
 ** Attempt to read the database schema and initialize internal
 ** data structures for a single database file.  The index of the
@@ -303,7 +305,12 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
     rc = SQLITE_ERROR;
     goto initone_error_out;
   }
-
+#ifndef SQLITE_OMIT_WAL
+  if( pagerUseWal((Pager *)pDb->pBt) ){
+    db->flags |= SQLITE_FullFSync;
+  }
+#endif
+  
   /* Ticket #2804:  When we open a database in the newer file format,
   ** clear the legacy_file_format pragma flag so that a VACUUM will
   ** not downgrade the database and thus invalidate any descending