]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode
authordan <dan@noemail.net>
Wed, 5 Dec 2018 17:20:47 +0000 (17:20 +0000)
committerdan <dan@noemail.net>
Wed, 5 Dec 2018 17:20:47 +0000 (17:20 +0000)
(wal instead of wal2) under some circumstances.

FossilOrigin-Name: bf309107dfc4d2abd68b9339c68aeaaffd278096bb2a5912e4a0b0c124fd6345

1  2 
manifest
manifest.uuid
src/pager.c
src/wal.c
src/wal.h

diff --cc manifest
index 965f4e37e1fea693e4cad4f7fab9ac18cace3df5,f47ab23d2fc6d54e7125e3de1ea9127f92827c7c..428b56e5c5fee07d7eb0031f86023b39d92726e3
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Fixes\sfor\ssnapshots\sAPI\son\sthis\sbranch.\sAlso\sensure\sthat\sthe\ssnapshots\sAPI\ncannot\sbe\sused\swith\swal2\smode\sdatabases\s(for\snow\sanyhow).
- D 2018-12-05T16:45:38.015
+ C Fix\sa\sproblem\scausing\s"PRAGMA\sjournal_mode"\sto\sreport\sthe\swrong\sjournal\smode\n(wal\sinstead\sof\swal2)\sunder\ssome\scircumstances.
 -D 2018-12-05T17:14:03.651
++D 2018-12-05T17:20:47.797
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F Makefile.in a050c8670ea0d7b37b2192306cbb50d392acd9902b84e9b56f3444d006f97a6c
@@@ -495,12 -491,12 +495,12 @@@ F src/os.c 8aeb0b0f40f8f5b0da03fe497066
  F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
 -F src/os_unix.c 711480e9152f221098ec2b0d4ef94dc798f08af649c34f5cd4dc2bbf40c4f556
 +F src/os_unix.c 1aa113b261a0ad44fd410a001f6e39bfc1ebd4279b2fb8c2d636a7620d76a45a
  F src/os_win.c 85d9e532d0444ab6c16d7431490c2e279e282aa0917b0e988996b1ae0de5c5a0
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 224f8ad64b8243cd92f79e4c28d94507c114a745a755545bc1d153f577d7e433
 -F src/pager.c dc6d0acb3f89b4dcb801c86a0e722c1bde116e058c7216ff74341812a38bbdd9
 -F src/pager.h 3abf6d65199fd0680b26a047c6167a96a4d6ead7535e02522b79f0fb27a3edec
 -F src/parse.y 6840fe7c0b5eb4dd25ee5d075213bc8255ed4c0678d71bfb6744d0520d91c179
++F src/pager.c bd11bf6971789994b4c1972019f16caf6e5ed5a59165d65f0147535aab191703
 +F src/pager.h d8cf37b3415c742d1f267ae2e0e6495826a72d403cbdbefdab2e2f5ff2a1dde7
 +F src/parse.y 9e69c380ac16423a1f373cde66d1be0d14a789f93464705a48dcc812d04d9210
  F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c bf9fcea656dce1cd2cca6b77a1d1d3552050d55a31c98bf0d9f405930a83bc95
@@@ -593,8 -589,8 +593,8 @@@ F src/vdbesort.c 90aad5a92608f2dd771c96
  F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392
  F src/vtab.c 70188a745dc4e57d26e942681ff4b2912b7c8249ad5de3f60f0677b4337bcfaa
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 171d066ccb727aeb439d14fbe1b91a488f2efd9fcdb5d3d245f6120d575d6c5f
- F src/wal.h b42fc8081cd1765d4d4dd99b33f2db2f71128f4e25ff8c08d1a346f5af62e27a
 -F src/wal.c c01f62932ae8458e77aed8846e819e167a52224c0a13f972c9e7d90354205911
 -F src/wal.h d2a69695c84137f76e19a247a342cb02ab0131001b6f58153d94b71195bbd84d
++F src/wal.c 43a7e48cea522cbb8eaf198b5f47ec4aea3bf89ae41c65a5fa56d77c6b2125e0
++F src/wal.h c398e0269e8f37495cedb63b5e288c2aac6f6d103d05fb55f4affec21311615d
  F src/walker.c fb94aadc9099ff9c6506d0a8b88d51266005bcaa265403f3d7caf732a562eb66
  F src/where.c 3818e8a736a05d2cb194e64399af707e367fbcc5c251d785804d02eaf121288e
  F src/whereInt.h f125f29fca80890768e0b2caa14f95db74b2dacd3a122a168f97aa7b64d6968f
@@@ -1796,7 -1782,7 +1796,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P fd707001f0afb1cf32cfeeda3ec7b5622eb49ddedf8fec1a7aa4c8841c77c37a 19c61ab79458936ff4dfca46cf4d1fb1ab16d7bdb5024f502eb4339ec4eef32c
- R 09f6147c8a217ef98a62e556b947a346
 -P 19c61ab79458936ff4dfca46cf4d1fb1ab16d7bdb5024f502eb4339ec4eef32c
 -R b8125f586e18293d9635394478d15d26
++P d8c2d55fa4ec95c6506201edcd1cb2ef108a233bd87a6154f3593909977f7d3f 1d8d4f689653ce80157740e339f7f1b42479bf90d82b176d8202d0a49f428398
++R e95ab795b28184fae76566055fff1a44
  U dan
- Z 846b44a376c01a8515808ab90c59f028
 -Z 00401c2c33715960f0bf723cc059ce5c
++Z 12c4c01a1addcde48575985e7f8b3cbb
diff --cc manifest.uuid
index b72d33ac55ea7c716ec202261fd4ac703ae62154,ebdf4ef09b812556e8473e4e5fb5fbf7e7e6d5ea..e0ac1d1348bdea449aad196127831a40bfa0038f
@@@ -1,1 -1,1 +1,1 @@@
- d8c2d55fa4ec95c6506201edcd1cb2ef108a233bd87a6154f3593909977f7d3f
 -1d8d4f689653ce80157740e339f7f1b42479bf90d82b176d8202d0a49f428398
++bf309107dfc4d2abd68b9339c68aeaaffd278096bb2a5912e4a0b0c124fd6345
diff --cc src/pager.c
Simple merge
diff --cc src/wal.c
index 3236f6297625111ade270bc46910d88d2c207003,ee5d2e177969803cec0dd54c8427779fda7cafb5..244ff5c57cade5eee6789b0bb216a5b802b76ec4
+++ b/src/wal.c
@@@ -4901,16 -4641,12 +4901,24 @@@ sqlite3_file *sqlite3WalFile(Wal *pWal)
    return pWal->apWalFd[0];
  }
  
 +/* 
 +** Return the values required by sqlite3_wal_info().
 +*/
 +int sqlite3WalInfo(Wal *pWal, u32 *pnPrior, u32 *pnFrame){
 +  int rc = SQLITE_OK;
 +  if( pWal ){
 +    *pnFrame = pWal->hdr.mxFrame;
 +    *pnPrior = pWal->nPriorFrame;
 +  }
 +  return rc;
 +}
 +
+ /* 
+ ** Return the journal mode used by this Wal object.
+ */
+ int sqlite3WalJournalMode(Wal *pWal){
+   assert( pWal );
+   return (isWalMode2(pWal) ? PAGER_JOURNALMODE_WAL2 : PAGER_JOURNALMODE_WAL);
+ }
  #endif /* #ifndef SQLITE_OMIT_WAL */
diff --cc src/wal.h
index 74753057f4c698e8400a5a294ac1298bce02c580,ccc2888f97554c59069b43e31e0bb12f1a39ad3d..7e700692a45cbd83159c7f3592d8c5ca954c6e51
+++ b/src/wal.h
@@@ -155,8 -147,8 +156,11 @@@ int sqlite3WalFramesize(Wal *pWal)
  /* Return the sqlite3_file object for the WAL file */
  sqlite3_file *sqlite3WalFile(Wal *pWal);
  
+ /* Return the journal mode (WAL or WAL2) used by this Wal object. */
+ int sqlite3WalJournalMode(Wal *pWal);
 +/* sqlite3_wal_info() data */
 +int sqlite3WalInfo(Wal *pWal, u32 *pnPrior, u32 *pnFrame);
 +
  #endif /* ifndef SQLITE_OMIT_WAL */
  #endif /* SQLITE_WAL_H */