From: dan Date: Wed, 5 Dec 2018 17:20:47 +0000 (+0000) Subject: Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=079ae546fe9dbcf05ab4b054d639f8702d0d9c1c;p=thirdparty%2Fsqlite.git Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. FossilOrigin-Name: bf309107dfc4d2abd68b9339c68aeaaffd278096bb2a5912e4a0b0c124fd6345 --- 079ae546fe9dbcf05ab4b054d639f8702d0d9c1c diff --cc manifest index 965f4e37e1,f47ab23d2f..428b56e5c5 --- a/manifest +++ 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 b72d33ac55,ebdf4ef09b..e0ac1d1348 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - d8c2d55fa4ec95c6506201edcd1cb2ef108a233bd87a6154f3593909977f7d3f -1d8d4f689653ce80157740e339f7f1b42479bf90d82b176d8202d0a49f428398 ++bf309107dfc4d2abd68b9339c68aeaaffd278096bb2a5912e4a0b0c124fd6345 diff --cc src/wal.c index 3236f62976,ee5d2e1779..244ff5c57c --- a/src/wal.c +++ 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 74753057f4,ccc2888f97..7e700692a4 --- a/src/wal.h +++ 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 */