From: drh Date: Thu, 14 Jan 2016 15:03:12 +0000 (+0000) Subject: Merge the latest enhancements and fixes from trunk. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=afd6cf1041ebc9e91f276e892a61f2baa20ddd84;p=thirdparty%2Fsqlite.git Merge the latest enhancements and fixes from trunk. FossilOrigin-Name: d85774e0dcb6cb1958ecd85891ef785e4692f67b --- afd6cf1041ebc9e91f276e892a61f2baa20ddd84 diff --cc manifest index 2b4a950a84,1354db7a40..2d1d662d0c --- a/manifest +++ b/manifest @@@ -1,8 -1,8 +1,8 @@@ - C Import\sthe\sversion\snumber\schange\sto\s3.11.0. - D 2016-01-11T13:03:34.322 - F Makefile.in 7b85d6e4ef59420a075d21525a58b69a97e554f1 -C Yet\sanother\schange\sto\sFTS5\strying\sto\sget\sit\sto\smerge\ssuccessfully\sinto\ssessions. -D 2016-01-14T14:33:36.733 -F Makefile.in cfa1ac03c4b414992fd53f24d978b45b0c21de55 ++C Merge\sthe\slatest\senhancements\sand\sfixes\sfrom\strunk. ++D 2016-01-14T15:03:12.742 ++F Makefile.in 8b135f17f5b3693bb2b4d0eab7a1bbec5bdf53e4 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 - F Makefile.msc e45d8b9b56dfa3f2cd860b2c28bd9d304513b042 + F Makefile.msc 1dc36cfd3c047c9685e539257e158485f16ef035 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 F VERSION 866588d1edf0ccb5b0d33896974338f97564f719 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 @@@ -279,9 -281,9 +284,9 @@@ F src/auth.c b56c78ebe40a2110fd361379f7 F src/backup.c 2869a76c03eb393ee795416e2387005553df72bc F src/bitvec.c 1a78d450a17c5016710eec900bedfc5729bf9bdf F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 - F src/btree.c cefa8e087e73b2892845b2af2dc980fafd1ac13a -F src/btree.c 5d93e2477acb99d50a8b045f2e26a0be3d7751fe ++F src/btree.c 258d048e423c23398ee29a4fce043839e47ab483 F src/btree.h 68ef301795e00cdf1d3ab93abc44a43b7fe771e0 - F src/btreeInt.h b5f2651b41808f038dee9282c5dc0232ce6532d3 + F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 F src/build.c 9d497ff4bf3c82cecb520436e0e9963785627583 F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0 F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f @@@ -299,9 -301,9 +304,9 @@@ F src/hash.h c8f3c31722cf3277d037139097 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 F src/insert.c 6b45cc86967da11aa024d034745f93f66d53f650 F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d -F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e +F src/legacy.c 9c17d86e06522c261307f0eb6bcb1254c8b04a59 F src/loadext.c 84996d7d70a605597d79c1f1d7b2012a5fd34f2b - F src/main.c 54f3a646cdcffc5cb03b4ce2ca6da77ff75da39f -F src/main.c 6d589f27980c4aec014ae9a081d611e7e5ebc115 ++F src/main.c d2c79dfc18e2372566aaa95a4f15a452d3cd4206 F src/malloc.c 8f787669e79de26efc42272b5797bc00fff527c6 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b @@@ -320,11 -322,11 +325,11 @@@ F src/os.c 5822c2b843a77219bba1e28887cd F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os_common.h abdb9a191a367793268fe553d25bab894e986a0e F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa - F src/os_unix.c cda640ef84f27ede61c313a5dbf09c6fc08c82ac -F src/os_unix.c b509b49b40a269e7b75ab511b6e92b2dc9444359 -F src/os_win.c 386fba30419e8458b13209781c2af5590eab2811 ++F src/os_unix.c 9d109ca95589889ef84a067d60067f2b4d752b96 +F src/os_win.c d5f32f015c52888b76c8919a8b3fa5c532dff497 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca - F src/pager.c 25186b68d3180891dfa849bb9c0b7cd5d370fce3 - F src/pager.h a038f5d7d5b17a8463e312d45f92b17e6928339e -F src/pager.c f4e9ac39fbb1e0fde97af85c0f4e00eb90764b67 -F src/pager.h 1c2a49143dfba9e69cc8159ef019f472ed8d260b ++F src/pager.c 65095e5ea2f9bf458b29288f5a9e626b15874fee ++F src/pager.h fe401b665cf964539ac389387de36caeebe606dc F src/parse.y caad1e98edeca6960493d0c60d31b76820dd7776 F src/pcache.c 73895411fa6b7bd6f0091212feabbe833b358d23 F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545 @@@ -336,13 -338,12 +341,13 @@@ F src/printf.c af589a27b7d40f6f4f704e9e F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c a83b41104e6ff69855d03cd0aaa09e93927ec39f F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e - F src/select.c d84c091185bc160c349e8bf460ebd084dbd77e64 - F src/shell.c ed71dc7679e6f087a3f1ea3f9dae4b0fae7209c3 - F src/sqlite.h.in 52db0e5240e6c3d355937cdc187b61999d884aff + F src/select.c 5b0f2aa9f73ec7b65d1711d485471854d5bad23c + F src/shell.c dcd7a83645ef2a58ee9c6d0ea4714d877d7835c4 -F src/sqlite.h.in 214476a62012e578f42133a9a3b4f97a9aa421a3 ++F src/sqlite.h.in ab6b985903cff07b173cade4a320a16d4636fbd3 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad +F src/sqlite3_private.h a81a9c5f97c095cc3e86914a05f8fabe0011f4a1 F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d -F src/sqliteInt.h b8ccd34a919e4b6bab8c4164046330002aa9a27a +F src/sqliteInt.h da2c7b0ddb1c351ad07bd4eccfb7764bc42ab92a F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e @@@ -402,21 -403,21 +407,21 @@@ F src/update.c 17332f9fe818cbc0444c36a8 F src/utf.c 32d7f82aa921322f3e1c956f4b58f019ebd2c6b3 F src/util.c e802e8e311a0d6c48cd1b3e89db164f6f0248d70 F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 - F src/vdbe.c 5678e9375dca62a33726c7565e2e61ce701ea365 -F src/vdbe.c 6572d00eefeaa0b14b325fdf3a409920ec3fee82 ++F src/vdbe.c fac06dbf029fea99370a9f28ea567cf3f2ce5dce F src/vdbe.h efb7a8c1459e31f3ea4377824c6a7e4cb5068637 F src/vdbeInt.h 42eefa4f9e7432b9968d321b44e48821ec13b189 -F src/vdbeapi.c 020681b943e77766b32ae1cddf86d7831b7374ca -F src/vdbeaux.c f2e6b4fae037db04323be8de7bcd266375746471 +F src/vdbeapi.c b13f483b1375467c367de486edf2be05234e27bb - F src/vdbeaux.c 7b65a9fd7475c0dd9603d2c733311692efe48157 ++F src/vdbeaux.c c9936e48a10ce7b0fb54b38a9969f8f3aa8000e7 F src/vdbeblob.c fdc4a81605ae7a35ae94a55bd768b66d6be16f15 F src/vdbemem.c fdd1578e47bea61390d472de53c565781d81e045 - F src/vdbesort.c a7ec02da4494c59dfd071126dd3726be5a11459d + F src/vdbesort.c 0971557e5d3c289e46f56a52aed2197c13251de7 F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0 F src/vtab.c 2a8b44aa372c33f6154208e7a7f6c44254549806 - F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb - F src/wal.c 82dec8065d6c3d95706e193be19ef50acfb9b126 - F src/wal.h 074df251e14dffb0ea9ce958a4328dff1a68c9d7 - F src/walker.c 2e14d17f592d176b6dc879c33fbdec4fbccaa2ba - F src/where.c c6d3d2f6af57d574a7365ee2b225a5024f2a6bec + F src/vxworks.h 974e7d9a98f602d6310d563e1dc4e08f9fc48e47 -F src/wal.c d21b99fd1458159d0b1ecdccc8ee6ada4fdc4c54 -F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c ++F src/wal.c 9bd7a20c656171200725462a37183e53c549afda ++F src/wal.h 29c2a284ddd9c665199273dadc7255a227092291 + F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354 + F src/where.c bb69654f841ae7af0a20cc6fb8f0ac57901c31be F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a F src/wherecode.c dfbfe198e418b01f208b489e088edd230c91a4e7 F src/whereexpr.c eebba8340c90de73b3d3bbe8c43b84559b8e6e2c @@@ -1284,34 -1284,34 +1289,34 @@@ F test/vtabI.test 751b07636700dbdea328e F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 F test/vtab_shared.test ea8778d5b0df200adef2ca7c00c3c37d4375f772 -F test/wal.test 65bfc68f3f09dcbc62cee9f794e560428d96cec7 -F test/wal2.test 1f841d2048080d32f552942e333fd99ce541dada -F test/wal3.test b1d425f68a1f61d12563f0fa1ee6fca7d5afabf4 -F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c -F test/wal5.test 88b5d9a6a3d1532497ee9f4296f010d66f07e33c -F test/wal6.test 4421cd5a2fa99d29cc91ef12fb23bed171ed3a4c +F test/wal.test 40cc49c5e9aac2bb8b058b0e430576d68bb02e2a +F test/wal2.test 703b87c21c1e3e169d607158de414c7c2655b93e +F test/wal3.test 80c314c403888c968bb80f3ce1be84f6e6ccfe2c +F test/wal4.test 5755887f321baa4c55de0b91066fa7d0cafcac9d +F test/wal5.test 03043461be964ff80df96d629a7f8db1a95e1b37 +F test/wal6.test c7d532c76f9e16aec657e529184c52a6e834dae4 F test/wal64k.test 163655ecd2cb8afef4737cac2a40fdd2eeaf20b8 -F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd -F test/wal8.test 75c42e1bc4545c277fed212f8fc9b7723cd02216 +F test/wal7.test 18cf68ab8010ae0a2baaa48e5b59567a9503e63e +F test/wal8.test c35dd183708148120928dca908641c361f58062c F test/wal9.test 378e76a9ad09cd9bee06c172ad3547b0129a6750 -F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe -F test/walbak.test b9f68e39646375c2b877be906babcc15d38b4877 -F test/walbig.test f437473a16cfb314867c6b5d1dbcd519e73e3434 +F test/wal_common.tcl 15f152fd55703975878741beca6cfa4209d5b3b3 +F test/walbak.test 67339b9e54db0cdaaf21287349bc8056e2919f96 +F test/walbig.test 3ca3d94751b80054eed5bda20a1339ae1f619483 F test/walblock.test be48f3a75eff0b4456209f26b3ce186c2015497d -F test/walcksum.test 9afeb96240296c08c72fc524d199c912cfe34daa -F test/walcrash.test 451d79e528add5c42764cea74aa2750754171b25 -F test/walcrash2.test a0edab4e5390f03b99a790de89aad15d6ec70b36 -F test/walcrash3.test e426aa58122d20f2b9fbe9a507f9eb8cab85b8af -F test/walfault.test 1f8389f7709877e9b4cc679033d71d6fe529056b -F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483 -F test/walmode.test 4022fe03ae6e830583672caa101f046438a0473c -F test/walnoshm.test 84ca10c544632a756467336b7c3b864d493ee496 +F test/walcksum.test 932d12a2a36fb2765560d35e7eaa1e5f0b198385 +F test/walcrash.test 011e05e9170da888851cb9ec4276bb1894ad32e3 +F test/walcrash2.test 6eb6842d34cc5955726264c80566963c32a9cbea +F test/walcrash3.test 279640ffafa23f7564529ccd69bfb97849ccae9d +F test/walfault.test f4160abd02d583d06d7ea9554e7a3f749f6b3410 +F test/walhook.test 5d2bdb04fd3e220e2f96e6b566d57e00020bdaec +F test/walmode.test aa45339b4afa435dde5d88e71a95459cc221a3f4 +F test/walnoshm.test 559b878f3aab838971d820329ca35f1caa7b038e - F test/waloverwrite.test 8702964967c2f28204f0b4f27af65da81999fc99 + F test/waloverwrite.test a0d2ae0783187374c1e6a9571e0916152977cb81 -F test/walpersist.test 8c6b7e3ec1ba91b5e4dc4e0921d6d3f87cd356a6 -F test/walro.test 34422d1d95aaff0388f0791ec20edb34e2a3ed57 -F test/walshared.test 0befc811dcf0b287efae21612304d15576e35417 -F test/walslow.test e7be6d9888f83aa5d3d3c7c08aa9b5c28b93609a -F test/walthread.test de8dbaf6d9e41481c460ba31ca61e163d7348f8e +F test/walpersist.test abd956d66e2f36d2d9d05d3a969f48be6d2ddbec +F test/walro.test 256ea9380825a34be43e8ff02bd1e240f1f62e8c +F test/walshared.test 04590b10c677f75318701818c50bc0dda5da64ab +F test/walslow.test 658066419a92d3bd85be71a11ce477af4ffe9153 +F test/walthread.test c13f5a12fbd9d81e58f49875dc9dd8a52a84cf03 F test/where.test 9902a3d84e9bc80357a2c54ed0e76c0d6d04a867 F test/where2.test af78c55589cbc82d793449493adba0dc3d659f23 F test/where3.test 1ad55ba900bd7747f98b6082e65bd3e442c5004e @@@ -1412,7 -1412,7 +1417,7 @@@ F tool/vdbe_profile.tcl 246d0da094856d7 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 79125ec9d2cdb96d65ceeb19c2862665f9267d4e 8e807bfaa197027d0cb73532baa96755ce71ea12 - R 8a28642ac87c13bb3a942a0053e03587 -P f791fc7009d68941c60d7bf953bab19d86112133 -R 52083946c40dd4f44744cbc0b447540f ++P 132772d1c415c63fa5bdcc298ad9a3746bfb56bb 8dedff3b9ac3e6bf9c131fee19f7d26dc1ebd61f ++R 5d8ea44daaa28f196e28392ae5b9ab36 U drh - Z 1a554c8e6a29b796fc323cbce89b151a -Z 9b36451b3b0b6d81cfd6f7c438e3b3aa ++Z 5cdb85bf33874a22991e0ac32854bf2a diff --cc manifest.uuid index 3390955a90,92616336df..a47c43081c --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 132772d1c415c63fa5bdcc298ad9a3746bfb56bb -8dedff3b9ac3e6bf9c131fee19f7d26dc1ebd61f ++d85774e0dcb6cb1958ecd85891ef785e4692f67b diff --cc src/main.c index 46e9622272,2998f54c77..cf93e5bb12 --- a/src/main.c +++ b/src/main.c @@@ -3543,16 -3424,11 +3543,19 @@@ int sqlite3_file_control(sqlite3 *db, c }else if( op==SQLITE_FCNTL_VFS_POINTER ){ *(sqlite3_vfs**)pArg = sqlite3PagerVfs(pPager); rc = SQLITE_OK; + }else if( op==SQLITE_FCNTL_JOURNAL_POINTER ){ + *(sqlite3_file**)pArg = sqlite3PagerJrnlFile(pPager); + rc = SQLITE_OK; }else if( fd->pMethods ){ rc = sqlite3OsFileControl(fd, op, pArg); +#ifndef SQLITE_OMIT_WAL + if( (rc==SQLITE_OK)&&(op==SQLITE_FCNTL_LAST_ERRNO)&&(*(int *)pArg==0) ){ + sqlite3_file *pWalFd = sqlite3PagerWalFile(pPager); + if( pWalFd&&(pWalFd->pMethods) ){ + rc = sqlite3OsFileControl(pWalFd, op, pArg); + } + } +#endif }else{ rc = SQLITE_NOTFOUND; } diff --cc src/pager.c index 6429f3ed86,2c904d2df1..389623c247 --- a/src/pager.c +++ b/src/pager.c @@@ -6718,14 -6692,17 +6718,29 @@@ sqlite3_file *sqlite3PagerFile(Pager *p return pPager->fd; } ++#if !defined(SQLITE_OMIT_WAL) +/* + ** Return the file handle for the WAL journal file associated + ** with the pager. This might return NULL if the file has + ** not yet been opened. + */ +sqlite3_file *sqlite3PagerWalFile(Pager *pPager){ + return ((pPager->pWal) ? sqlite3WalFile(pPager->pWal) : (NULL)); +} ++#endif ++ ++ + /* + ** Return the file handle for the journal file (if it exists). + ** This will be either the rollback journal or the WAL file. + */ + sqlite3_file *sqlite3PagerJrnlFile(Pager *pPager){ + #if SQLITE_OMIT_WAL + return pPager->jfd; + #else + return pPager->pWal ? sqlite3WalFile(pPager->pWal) : pPager->jfd; + #endif + } /* ** Return the full pathname of the journal file. diff --cc src/pager.h index 5da3a6e93b,3552a876e7..0f7dcf5520 --- a/src/pager.h +++ b/src/pager.h @@@ -188,7 -188,7 +188,8 @@@ int sqlite3PagerMemUsed(Pager*) const char *sqlite3PagerFilename(Pager*, int); sqlite3_vfs *sqlite3PagerVfs(Pager*); sqlite3_file *sqlite3PagerFile(Pager*); +sqlite3_file *sqlite3PagerWalFile(Pager *pPager); + sqlite3_file *sqlite3PagerJrnlFile(Pager*); const char *sqlite3PagerJournalname(Pager*); int sqlite3PagerNosync(Pager*); void *sqlite3PagerTempSpace(Pager*); diff --cc src/wal.c index 4d37a2ee3c,7cf2cabffb..b464defd45 --- a/src/wal.c +++ b/src/wal.c @@@ -2623,16 -2617,7 +2625,6 @@@ Pgno sqlite3WalDbsize(Wal *pWal) return 0; } - /* - ** Return the file for this Wal journal (or zero, if unknown). - */ - sqlite3_file *sqlite3WalFile(Wal *pWal){ - if( pWal ){ - return pWal->pWalFd; - } - return 0; - } -- /* ** This function starts a write transaction on the WAL. **