]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest enhancements from trunk.
authordrh <drh@noemail.net>
Wed, 16 Mar 2016 19:34:45 +0000 (19:34 +0000)
committerdrh <drh@noemail.net>
Wed, 16 Mar 2016 19:34:45 +0000 (19:34 +0000)
FossilOrigin-Name: a7978ab6d26b865f55c6b3e86ba3a24777a3c1f0

16 files changed:
1  2 
manifest
manifest.uuid
src/btree.c
src/btree.h
src/build.c
src/pager.c
src/pager.h
src/parse.y
src/sqliteInt.h
src/test_config.c
src/vacuum.c
src/vdbe.c
src/vdbeaux.c
src/wal.c
test/wal2.test
tool/addopcodes.tcl

diff --cc manifest
index 5f653c9660c3da99e438d6632bbedc5ed039f800,000b9dec541ce2296dfdef5c645014367d411cd7..9c0d1f72b0cf95e8eca480c697fc1f319d02d889
+++ b/manifest
@@@ -1,10 -1,10 +1,10 @@@
- C Merge\sversion\s3.11.0
- D 2016-02-15T17:44:45.399
- F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
 -C Avoid\sa\sfew\sunnecessary\sfstat()s\son\sjournal\sfiles.
 -D 2016-03-16T19:10:46.537
++C Merge\sthe\slatest\senhancements\sfrom\strunk.
++D 2016-03-16T19:34:45.426
+ F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc 30f075dc4f27a07abb76088946b2944178d85347
+ F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66
  F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
- F VERSION 866588d1edf0ccb5b0d33896974338f97564f719
+ F VERSION c6b1f51809551d60ad001e6d87cf3ab2c7f54b6f
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -284,28 -287,28 +287,28 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 1fbb01c26c64528088f1df8015992fefda387889
- F src/analyze.c fbf0e80d83cc893734e872f932f249a056b86e11
- F src/attach.c c16c2648a577fa3def2adfa48c28901376389bc5
+ F src/alter.c 1bb0709b3048e24217b80ec6bd78a3e99a47c01b
+ F src/analyze.c ab57b6763dd4c6170a20673d14882c033affd188
+ F src/attach.c 771153bd1f4ab0b97a44a13dde2c7e5e1efeba22
  F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
- F src/backup.c 2869a76c03eb393ee795416e2387005553df72bc
- F src/bitvec.c 1a78d450a17c5016710eec900bedfc5729bf9bdf
+ F src/backup.c f60f0aa55d25d853ffde53d0b0370a7bb7ee41ce
+ F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63
  F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
- F src/btree.c 2cca792e04bda429d4ecf873b1a777141aa25c18
- F src/btree.h 3c4f3fc066071991907e19ccf3fac5ac4a36bfc1
 -F src/btree.c 6eee126fe9d1f57118de9be2be840a4c6e691828
 -F src/btree.h a5008b9afe56e8e54ade6c436a910f112defcca9
 -F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
 -F src/build.c 213cbf84e99dd834e6ea46615633656d7ef79321
++F src/btree.c dab12f0a78eefdcd2b17433f5554676d713e5899
++F src/btree.h 248919b5863d041e3931702f922bae62cf613004
 +F src/btreeInt.h ca40607c2c9d4b4b7ded98e3d707b15c2f17f1bf
- F src/build.c 88ec1b5da653719c825e67bb643ecb7d9216b502
- F src/callback.c ed6c2a4a712eb7287ff64e20e3c23265dfb8a7ce
- F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f
++F src/build.c 12ad19cfe14c55b24d3f9738edb368edde497475
+ F src/callback.c 2e76147783386374bf01b227f752c81ec872d730
+ F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
- F src/date.c ca17321bc17cca8f40e0843edea4fafff974998e
- F src/dbstat.c b2ec6793eef97aebb4d171d490a4ffdfa9f2475c
+ F src/date.c 0b73e681c11fca867fec554750c07fe0d4e417c1
+ F src/dbstat.c c845548d4346e606e2f2b7d2e714ace2b8a7dd1b
  F src/delete.c 48802aa3ee6339f576d074336d3ae1b5f40e240f
- F src/expr.c fbf0706199aea23c54efe36b6932d8307c4eb872
+ F src/expr.c c329d581e5d631153456369684d7d4bcd94c907d
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c 08edad1fce30f761f14b3997e89bad58f9f7f4e0
- F src/func.c 86e55fee35b9577e485f47d9dd5c1d34cd513288
- F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260
+ F src/fkey.c 5cb42d9a59e2a590776fd3fc8ff6f61d40df3c6e
+ F src/func.c 552d300265aed09eea21f68ac742a440550c0062
+ F src/global.c 884d4c7eba9f5fc25c96a23b21520da19b7713e2
  F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
  F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
@@@ -332,33 -334,33 +334,33 @@@ F src/os.c f89e3ca1c2e3d5015b847aec6037
  F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
  F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
  F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
- F src/os_unix.c 821ed110197175165cf2f50b0930c7ff9a24504c
- F src/os_win.c ccf29ddded3e41e506b6bd98c1171aa0963b23f2
+ F src/os_unix.c 4bde11921a2bebcf2167efc8540ddabc814189dc
+ F src/os_win.c cbf8c442a0d818d05bcf40b093cb3ebad435b9be
  F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
- F src/pager.c dff5eb9a3add702b28ef5efb54de761e1ba7aa44
- F src/pager.h 6dec8fe4803d485401125c31b3ab1cd051eac6e6
- F src/parse.y 2d29daf0c040e2db8e19c549ce011b1921a10c45
- F src/pcache.c 73895411fa6b7bd6f0091212feabbe833b358d23
 -F src/pager.c 38718a019ca762ba4f6795425d5a54db70d1790d
 -F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56
 -F src/parse.y 5ea8c81c5c41b27887f41b4a7e1c58470d7d3821
++F src/pager.c 476884ce8d8e845daf88f1b12b8ca446bac5fdc5
++F src/pager.h bb26afd6fa33f684832895ede771f6459e513e5a
++F src/parse.y a74adac187a88fb949739aae203939241c06e62b
+ F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df
  F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545
  F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051
- F src/pragma.c 80ee77226d0008d9188356a6cbbe6010866e1bee
+ F src/pragma.c 04baa9343771f913f1c86b2720f768be8a3ad52a
  F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c
- F src/prepare.c c12b786713df3e8270c0f85f988c5359d8b4d87c
+ F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e
  F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26
  F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
- F src/resolve.c 9f7ce3a3c087afb7597b7c916c99126ff3f12f0c
+ F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20
  F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e
- F src/select.c ff80004a9a6ece891a8d9327a88e7b6e2588ee6d
- F src/shell.c 0367440658104bf2ce8d8a9a5a713a4b11c9acbe
- F src/sqlite.h.in f80c6ebd85588fc514bfedf3ecb00cec269cb410
+ F src/select.c 6dd2097bb158efe3b8d68683dcc3b4a49e907a34
+ F src/shell.c 5e0ab1e708dc294330ccd8230536e1801f60822e
+ F src/sqlite.h.in 0235586b3fb639e85998d495c90f007657fd82af
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d
- F src/sqliteInt.h 125f2cbdf7b391b321efa2522a5dfbd2a12180ea
- F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
 -F src/sqliteInt.h 84c673f27b77dfbd367cb3ed1de8b6f3b73102dc
++F src/sqliteInt.h 636044ff0d0f6716d69a58eb0bf35c9748681d75
+ F src/sqliteLimit.h 7b28cf72cbd52f178bfc97ea266445e351f2cd24
  F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba
- F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e
- F src/tclsqlite.c 13debcc6a5ca1217486f8903768c01114fbe8b58
- F src/test1.c 4f1b42699068b7806af3111786f5ad760c2c1ff7
+ F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9
+ F src/tclsqlite.c 4bf3bea9b03aeac176ac114700f35f76a1de4c8a
+ F src/test1.c 52965bd684ddcd7f22328ebd7d50fd0b6e51f0d4
  F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b
  F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f
  F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e
@@@ -370,12 -372,13 +372,13 @@@ F src/test9.c bea1e8cf52aa93695487baded
  F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8
  F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12
  F src/test_backup.c 2e6e6a081870150f20c526a2e9d0d29cda47d803
- F src/test_blob.c e5a7a81d61a780da79101aeb1e60d300af169e07
+ F src/test_bestindex.c 29af3cc3b963ffe5760c85d142b9b3e5302c1e3d
+ F src/test_blob.c b2551a9b5573232db5f66f292307c37067937239
  F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f
- F src/test_config.c 3e8a3b5c307a454cd3b7d1c41a39d66988f06f3a
 -F src/test_config.c 0dee90328e3dedf8ba002ee94b6a7e7ea7726fe4
++F src/test_config.c cd88b616e98347bc6bbe84918ae3f4b8c1267590
  F src/test_demovfs.c 0de72c2c89551629f58486fde5734b7d90758852
  F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
- F src/test_fs.c a61f54247fdb843761d709879c3bcd1989b2050c
+ F src/test_fs.c f10f840ca4f8c72e4837908bd8347ac4bcab074b
  F src/test_func.c 37453d346cfcf118774efd5bf6187f7e6a7e3254
  F src/test_hexio.c abfdecb6fa58c354623978efceb088ca18e379cd
  F src/test_init.c 66b33120ffe9cd853b5a905ec850d51151337b32
@@@ -405,32 -408,32 +408,32 @@@ F src/test_vfstrace.c bab9594adc976cbe6
  F src/test_windirent.c 8f5fada630348558d5745b334702f301da1ffc61
  F src/test_windirent.h b12055cab6227f7be10f5c19296f67c60cc5e2a5
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
- F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0
- F src/tokenize.c 813934be70597edfbb685ae08fc4c8b549cf5a1e
- F src/treeview.c dc39ccf04e9331237388b9cb73289c9d87ea050b
+ F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
+ F src/tokenize.c 3d338cdd00d916ce8a05c397001d64ed58e6fe1c
+ F src/treeview.c e4b41a37530a191579d3c53142cc44ee2eb99373
  F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280
- F src/update.c a7eeeaffad59c6506f01303a071dac11de8269ca
- F src/utf.c 10cc2519e82e3369344d0969ad4b1a333dc86d18
- F src/util.c 49ce0a65306c1c51d61cb5bc214c71cb62452de6
- F src/vacuum.c 983cc3754718ef169a6ea9aef86798bd28106f21
- F src/vdbe.c 642df098ce2ad75212a26c50f3e90aeb28bb6421
+ F src/update.c 56b3db7edff0110360a12b76af97c39ebe3ea8b8
+ F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
+ F src/util.c 34ef7be420f82415ec48131404995ddb6ee7502f
 -F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52
 -F src/vdbe.c 8cf45bb8da77d39f55d108e759d15a57acd0255c
++F src/vacuum.c c1a94413f8fa9d9b2cbe3af9a89377f777be676c
++F src/vdbe.c 1ea96d12f6b6abe9fe431fdb038b67e95c569778
  F src/vdbe.h c743791f723049db94f009e3e30958952bc2d512
- F src/vdbeInt.h 4b69d5451bcadd473e745af53ef1e8abfdce0a79
- F src/vdbeapi.c 9324f6baee1a1b2284c6543e98f916888a81e459
- F src/vdbeaux.c 7a77e8be791e36d6c2440f60ebf81329d310c77d
+ F src/vdbeInt.h f88d3115e9bde33b01d81f0dd26d8dd51f995991
+ F src/vdbeapi.c 95b1f8e527240a18a9aea41a655b013bf07a7009
 -F src/vdbeaux.c 2c15cf88de4df97428318c8cfac0dea873dae451
++F src/vdbeaux.c 1e45699bde381272cdf4d06f2061084dd934040a
  F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db
- F src/vdbemem.c 68fcfac37dc6601d98c32cc5adee4d39f2c1b7b4
- F src/vdbesort.c ef3c6d1f1a7d44cf67bb2bee59ea3d1fe5bad174
+ F src/vdbemem.c 9b0cb32cc267ef026515f15a3594d5ff91fe4dfc
+ F src/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062
  F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484
- F src/vtab.c bef51b4f693d82b4b0184457faa8625654534091
+ F src/vtab.c fd69fd398e23e57ea4ea377d8a44b6998fc569c7
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 68eb8a4a280680fab05715dda90af50709e1dcb2
 -F src/wal.c 10deb6b43887662691e5f53d10b3c171c401169b
 -F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
++F src/wal.c 12931b1b6d91651c932b0a80571c649bb862a187
 +F src/wal.h 327e94c3e366154f52a8d9be9be0ea790cc4e08c
  F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
- F src/where.c 984084584c10c41e46c89ac027a5cca991bc37e6
- F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a
- F src/wherecode.c 791a784bbf8749d560fdb0b990b607bc4f44a38d
- F src/whereexpr.c de117970b29471177a6901d60ad83a194671dc03
+ F src/where.c fe7925faafbe9a458972035c0bb4753d672f04ed
+ F src/whereInt.h 93297d56edd137b7ea004490690fb6e2ce028a34
+ F src/wherecode.c 863aedf086131743763c1960637fde904eadc442
+ F src/whereexpr.c fb87944b1254234e5bba671aaf6dee476241506a
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@@ -538,12 -543,8 +543,12 @@@ F test/collate9.test 3adcc799229545940d
  F test/collateA.test b8218ab90d1fa5c59dcf156efabb1b2599c580d6
  F test/colmeta.test 2c765ea61ee37bc43bbe6d6047f89004e6508eb1
  F test/colname.test 08948a4809d22817e0e5de89c7c0a8bd90cb551b
- F test/conflict.test 841bcf7cabbfca39c577eb8411ea8601843b46a8
- F test/conflict2.test a82dd3b9b41fceb5dd6ff0707c5c7ffba208d538
 +F test/concfault.test 500f17c3fcfe7705114422bcc6ddd3c740001a43
 +F test/concurrent.test 634b6a88f1942f5d68cc89d4d5efa2b11ba7913c
 +F test/concurrent2.test 77d655c6af93e77803b5c926555a838bb21f922f
 +F test/concurrent3.test 0a5f7e3036d1eccf0782d7153ac21f5f222e9468
+ F test/conflict.test 029faa2d81a0d1cafb5f88614beb663d972c01db
+ F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c
  F test/conflict3.test dec0634c0f31dec9a4b01c63063e939f0cd21b6b
  F test/contrib01.test 2a1cbc0f2f48955d7d073f725765da6fbceda6b4
  F test/corrupt.test 141c39ea650c1365e85a49e402fa05cb9617fb97
@@@ -942,8 -944,9 +948,8 @@@ F test/pager4.test a122e9e6925d5b23b31e
  F test/pagerfault.test ae9ee0db5a30aecda9db8290ce3dd12e5f7bbaa1
  F test/pagerfault2.test caf4c7facb914fd3b03a17b31ae2b180c8d6ca1f
  F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8
- F test/pageropt.test 6b8f6a123a5572c195ad4ae40f2987007923bbd6
+ F test/pageropt.test 84e4cc5cbca285357f7906e99b21be4f2bf5abc0
  F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305
 -F test/parser1.test 222b5cbf3e2e659fec1bf7d723488c8b9c94f1d0
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
@@@ -1299,18 -1303,18 +1306,18 @@@ F test/vtabI.test 751b07636700dbdea328e
  F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 5253bff2355a9a3f014c15337da7e177ab0ef8ad
- F test/wal.test 0148c8b3421a25fdb4d9c160e84a681d0646371b
- F test/wal2.test dc801f6d3f8f39d1534ffbd15a715b0b287508db
+ F test/wal.test 613efec03e517e1775d86b993a54877d2e29a477
 -F test/wal2.test 25ae059e900dbb584e0775627e45415ba5940df1
++F test/wal2.test e3493f2245cb90139c5dbd6ca8c2946ec2049404
  F test/wal3.test 5dd734147f1f8f958c5261a1f2775d346d7013ce
  F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
- F test/wal5.test 88b5d9a6a3d1532497ee9f4296f010d66f07e33c
+ F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9
  F test/wal6.test a9d6aa635b9d63607dabdc11406f5f96ca986635
  F test/wal64k.test 163655ecd2cb8afef4737cac2a40fdd2eeaf20b8
  F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd
- F test/wal8.test 75c42e1bc4545c277fed212f8fc9b7723cd02216
+ F test/wal8.test d9df3fba4caad5854ed69ed673c68482514203c8
  F test/wal9.test 378e76a9ad09cd9bee06c172ad3547b0129a6750
 -F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe
 +F test/wal_common.tcl 37902864b63794e9bf59393b8887e21a9cbd4db8
- F test/walbak.test b9f68e39646375c2b877be906babcc15d38b4877
+ F test/walbak.test 018d4e5a3d45c6298d11b99f09a8ef6876527946
  F test/walbig.test f437473a16cfb314867c6b5d1dbcd519e73e3434
  F test/walblock.test be48f3a75eff0b4456209f26b3ce186c2015497d
  F test/walcksum.test bb234a1bb42248b3515d992b719708015c384278
@@@ -1366,11 -1370,12 +1373,12 @@@ F test/without_rowid5.test 89b1c587bd92
  F test/without_rowid6.test 1f99644e6508447fb050f73697350c7ceca3392e
  F test/wordcount.c 2a0a6c0d0e8e8bbbac1f06d72a6791828c37c0cf
  F test/zeroblob.test 3857870fe681b8185654414a9bccfde80b62a0fa
- F test/zerodamage.test cf6748bad89553cc1632be51a6f54e487e4039ac
+ F test/zerodamage.test 2d725c214b883e25ae6bb85ef228ecdfa03c6a7b
  F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5
  F tool/GetTclKit.bat 629d87562e0487c386db630033931d12d62e6372
- F tool/addopcodes.tcl 783164304cdbf2b473e119b2c4db0c01b92a2b84
- F tool/build-all-msvc.bat 31866578036cd1d962628059b0760d407c3ce4d8 x
+ F tool/Replace.cs 02c67258801c2fb5f63231e0ac0f220b4b36ba91
 -F tool/addopcodes.tcl 2b089684eb8b7d0db64cf9d8e6d2fe1b6d279e8d
++F tool/addopcodes.tcl a776c2060ccb3367c470779eb2b91268a0a56fde
+ F tool/build-all-msvc.bat 3e4e4043b53f1aede4308e0d2567bbd773614630 x
  F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367
  F tool/cg_anno.tcl 692ce4b8693d59e3a3de77ca97f4139ecfa641b0 x
  F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
@@@ -1381,13 -1386,13 +1389,13 @@@ F tool/fuzzershell.c 94019b185caceffc9f
  F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
  F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
  F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
- F tool/lemon.c 799e73e19a33b8dd7767a7fa34618ed2a9c2397d
- F tool/lempar.c 3ec1463a034b37d87d782be5f6b8b10a3b1ecbe7
+ F tool/lemon.c 251f5c3f21b553240cbdd42dd187a51bb2372cd3
+ F tool/lempar.c d5114c7d13aa3af1e27ff3d02e4dea6eadec7ddf
  F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862
  F tool/logest.c eef612f8adf4d0993dafed0416064cf50d5d33c6
- F tool/mkautoconfamal.sh c78caa3214f25dc28ea157b5a82abb311f209906
+ F tool/mkautoconfamal.sh e855df211ecbcc7131dee817110ff386cfb112f7
 -F tool/mkkeywordhash.c f7f3b342211ac6a14258b9726d5b97cf4f548f22
 +F tool/mkkeywordhash.c f5ecfd09b56b8badc644554ed38c86056152b893
- F tool/mkmsvcmin.tcl d57e6efc9428605f5418d0b235721ddf7b5d9c0b
+ F tool/mkmsvcmin.tcl 2f12f7fa8858bbe61cf81820a2da96c79ed1ca8d
  F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
  F tool/mkopcodeh.tcl 385c62d78c38b2d92146dcb5abd319dbbc33506d
  F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
@@@ -1428,9 -1433,31 +1436,30 @@@ F tool/varint.c 5d94cb5003db9dbbcbcc5df
  F tool/vdbe-compress.tcl 5926c71f9c12d2ab73ef35c29376e756eb68361c
  F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
- F tool/warnings.sh ef6ebc6fd8d2dc35db3b622015c16a023d4fef4f
+ F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 332c8036ca8a97087ced210e322c8a91be2a9036 3d862f207e3adc00f78066799ac5a8c282430a5f
- R 9f4b18ab870754b66439546da1781522
+ F vsixtest/App.xaml b76d3b48860e7454775c47ea38ffea9c4abe3e85
+ F vsixtest/App.xaml.cpp c465147f50871165c60ca16955219f6c5812d6d8
+ F vsixtest/App.xaml.h 4a9768e2983d05600ad1e1c2f1b00a132967da9f
+ F vsixtest/Assets/LockScreenLogo.scale-200.png e820c9a3deb909197081b0bf3216c06e13905f0a
+ F vsixtest/Assets/SplashScreen.scale-200.png cab70988ca71bebec7bfeb3b6dbafe17b9ab0b4a
+ F vsixtest/Assets/Square150x150Logo.scale-200.png e17b40817db7a239fc239d83efcc951fb824e3ff
+ F vsixtest/Assets/Square44x44Logo.scale-200.png 2f166237094dea94d952d10b9eeae81806844f1c
+ F vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png 5f6a6d391b95a3061ccca6e6fdd6955ede63b4ed
+ F vsixtest/Assets/StoreLogo.png 0828b7257db74a4ecd5eeb6b7b4971f0fdc4d9d1
+ F vsixtest/Assets/Wide310x150Logo.scale-200.png 04ddefe5bc5f43ae12a7433f6f236ddab101ac42
+ F vsixtest/MainPage.xaml 34f49897e3ca533a7e74506ba0759b66eebce151
+ F vsixtest/MainPage.xaml.cpp 7f31fc6de751b64676c0924c97a5485d950a91d7
+ F vsixtest/MainPage.xaml.h cc05cca10d50a003f6c6e4448b701cdd07f52f29
+ F vsixtest/Package.appxmanifest 6b6db1eb7df3a315c5d681059754d5f0e0c47a93
+ F vsixtest/pch.cpp cb823cfac36f1a39a7eb0acbd7e9a0b0de8f23af
+ F vsixtest/pch.h 9cab7980f2ac4baa40807d8b5e52af32a21cf78c
+ F vsixtest/vsixtest.sln 77cadbe4e96c1fe1bf51cd77de9e9b0a12ada547
+ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
+ F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
+ F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
+ F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
 -P 96ea9909429f0b3b4a67002e8340ae3f7dc0b73f f3c0579e931799088e9a83757e25bae229120697
 -R 2179dd350d027a0023ff0b4d274ede19
 -T +closed f3c0579e931799088e9a83757e25bae229120697
++P c393ddc71a041a711f8eaa6fbd75371309df5602 dbf84705913c0845ca4e75eb30c91536c754efeb
++R 3420699ed150f0495aa008889aa429d7
  U drh
- Z 52763a5aa163700843aa5557e6ee950b
 -Z 6f4affaf464559d5d4fad621b1dda7eb
++Z f7d70ad9abdb6c936c1532c0be39b5b1
diff --cc manifest.uuid
index 821734f87f09ac01b995fe2cb03a1da677f180f3,9fc448cbd893210e0f345f38c4d501849b5a24c7..c96f1acb646955fbb327625299741f6b5e85bcea
@@@ -1,1 -1,1 +1,1 @@@
- c393ddc71a041a711f8eaa6fbd75371309df5602
 -dbf84705913c0845ca4e75eb30c91536c754efeb
++a7978ab6d26b865f55c6b3e86ba3a24777a3c1f0
diff --cc src/btree.c
Simple merge
diff --cc src/btree.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/pager.h
Simple merge
diff --cc src/parse.y
index 085bf1e35f619826b30fc95fe563f51ede76984b,20492edb80ecf60d94a3df71444533767eaf414d..ea9e856e64d751ec54d3d6e5f5ded57ee1390a93
  %syntax_error {
    UNUSED_PARAMETER(yymajor);  /* Silence some compiler warnings */
    assert( TOKEN.z[0] );  /* The tokenizer always gives us a token */
 -  sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
 +  parserSyntaxError(pParse, &TOKEN);
  }
  %stack_overflow {
-   UNUSED_PARAMETER(yypMinor); /* Silence some compiler warnings */
    sqlite3ErrorMsg(pParse, "parser stack overflow");
  }
  
@@@ -146,18 -138,9 +145,18 @@@ trans_opt ::= TRANSACTION
  trans_opt ::= TRANSACTION nm.
  %type transtype {int}
  transtype(A) ::= .             {A = TK_DEFERRED;}
 -transtype(A) ::= DEFERRED(X).  {A = @X; /*A-overwrites-X*/}
 -transtype(A) ::= IMMEDIATE(X). {A = @X; /*A-overwrites-X*/}
 -transtype(A) ::= EXCLUSIVE(X). {A = @X; /*A-overwrites-X*/}
 +transtype(A) ::= DEFERRED(X).         {A = @X;}
 +transtype(A) ::= IMMEDIATE(X).        {A = @X;}
 +transtype(A) ::= ID(X). {
 +   Token *p = &X;
 +   if( p->n==9 && sqlite3_strnicmp(p->z,"exclusive",9)==0 ){
 +     A = TK_EXCLUSIVE;
 +   }else if( p->n==10 && sqlite3_strnicmp(p->z,"concurrent",10)==0 ){
-      A = TK_CONCURRENT;
++     A = TK_CONCURRENT;  /*A-overwrites-X*/
 +   }else{
 +     parserSyntaxError(pParse, p);
 +   }
 +}
  cmd ::= COMMIT trans_opt.      {sqlite3CommitTransaction(pParse);}
  cmd ::= END trans_opt.         {sqlite3CommitTransaction(pParse);}
  cmd ::= ROLLBACK trans_opt.    {sqlite3RollbackTransaction(pParse);}
@@@ -908,22 -876,21 +893,21 @@@ expr(A) ::= VARIABLE(X).     
      /* When doing a nested parse, one can include terms in an expression
      ** that look like this:   #1 #2 ...  These terms refer to registers
      ** in the virtual machine.  #N is the N-th register. */
+     spanSet(&A, &t, &t);
      if( pParse->nested==0 ){
-       parserSyntaxError(pParse, &X);
 -      sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t);
++      parserSyntaxError(pParse, &t);
        A.pExpr = 0;
      }else{
-       A.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &X);
-       if( A.pExpr ) sqlite3GetInt32(&X.z[1], &A.pExpr->iTable);
+       A.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &t);
+       if( A.pExpr ) sqlite3GetInt32(&t.z[1], &A.pExpr->iTable);
      }
    }else{
-     spanExpr(&A, pParse, TK_VARIABLE, &X);
+     spanExpr(&A, pParse, TK_VARIABLE, t);
      sqlite3ExprAssignVarNumber(pParse, A.pExpr);
    }
-   spanSet(&A, &X, &X);
  }
- expr(A) ::= expr(E) COLLATE ids(C). {
-   A.pExpr = sqlite3ExprAddCollateToken(pParse, E.pExpr, &C, 1);
-   A.zStart = E.zStart;
+ expr(A) ::= expr(A) COLLATE ids(C). {
+   A.pExpr = sqlite3ExprAddCollateToken(pParse, A.pExpr, &C, 1);
    A.zEnd = &C.z[C.n];
  }
  %ifndef SQLITE_OMIT_CAST
diff --cc src/sqliteInt.h
Simple merge
Simple merge
diff --cc src/vacuum.c
Simple merge
diff --cc src/vdbe.c
index f737224c68800706a7f41368095769fdb12654ef,6f4ac5713d2c03e0b3fce36d4a26c3669255b964..7dc3f7aec9161bc19666f4fad3effbf12fc768ca
@@@ -3248,17 -3238,6 +3257,17 @@@ case OP_SetCookie: 
    pDb = &db->aDb[pOp->p1];
    assert( pDb->pBt!=0 );
    assert( sqlite3SchemaMutexHeld(db, pOp->p1, 0) );
-     break; 
 +#ifndef SQLITE_OMIT_CONCURRENT
 +  if( db->bConcurrent 
 +   && (pOp->p2==BTREE_USER_VERSION || pOp->p2==BTREE_APPLICATION_ID)
 +  ){
 +    rc = SQLITE_ERROR;
 +    sqlite3VdbeError(p, "cannot modify %s within CONCURRENT transaction",
 +        pOp->p2==BTREE_USER_VERSION ? "user_version" : "application_id"
 +    );
++    goto abort_due_to_error;
 +  }
 +#endif
    /* See note about index shifting on OP_ReadCookie */
    rc = sqlite3BtreeUpdateMeta(pDb->pBt, pOp->p2, pOp->p3);
    if( pOp->p2==BTREE_SCHEMA_VERSION ){
@@@ -6257,14 -6259,6 +6290,14 @@@ case OP_Expire: 
  */
  case OP_TableLock: {
    u8 isWriteLock = (u8)pOp->p3;
-     break;
 +#ifndef SQLITE_OMIT_CONCURRENT
 +  if( isWriteLock && db->bConcurrent && pOp->p2==1 ){
 +    rc = SQLITE_ERROR;
 +    sqlite3VdbeError(p, 
 +        "cannot modify database schema within CONCURRENT transaction");
++    goto abort_due_to_error;
 +  }
 +#endif
    if( isWriteLock || 0==(db->flags&SQLITE_ReadUncommitted) ){
      int p1 = pOp->p1; 
      assert( p1>=0 && p1<db->nDb );
diff --cc src/vdbeaux.c
index 71a3fedd7c48393ce56f55e6bf0cafee7bd8a2c5,9c75d1e078e10f4244eed71318a5899b41bb4e3d..a0d33a7e45998fd27acfe66465aa8eec352ae2f6
@@@ -2164,28 -2170,31 +2170,48 @@@ static int vdbeCommit(sqlite3 *db, Vdb
    for(i=0; rc==SQLITE_OK && i<db->nDb; i++){ 
      Btree *pBt = db->aDb[i].pBt;
      if( sqlite3BtreeIsInTrans(pBt) ){
+       /* Whether or not a database might need a master journal depends upon
+       ** its journal mode (among other things).  This matrix determines which
+       ** journal modes use a master journal and which do not */
+       static const u8 aMJNeeded[] = {
+         /* DELETE   */  1,
+         /* PERSIST   */ 1,
+         /* OFF       */ 0,
+         /* TRUNCATE  */ 1,
+         /* MEMORY    */ 0,
+         /* WAL       */ 0
+       };
+       Pager *pPager;   /* Pager associated with pBt */
        needXcommit = 1;
-       if( i!=1 ) nTrans++;
+       sqlite3BtreeEnter(pBt);
+       pPager = sqlite3BtreePager(pBt);
+       if( db->aDb[i].safety_level!=PAGER_SYNCHRONOUS_OFF
+        && aMJNeeded[sqlite3PagerGetJournalMode(pPager)]
+       ){ 
+         assert( i!=1 );
+         nTrans++;
+       }
 -      rc = sqlite3PagerExclusiveLock(pPager);
 +      rc = sqlite3BtreeExclusiveLock(pBt);
+       sqlite3BtreeLeave(pBt);
      }
    }
 +
 +#ifndef SQLITE_OMIT_CONCURRENT
 +  if( db->bConcurrent && (rc & 0xFF)==SQLITE_BUSY ){
 +    /* An SQLITE_BUSY or SQLITE_BUSY_SNAPSHOT was encountered while 
 +    ** attempting to take the WRITER lock on a wal file. Release the
 +    ** WRITER locks on all wal files and return early.  */
 +    for(i=0; i<db->nDb; i++){
 +      Btree *pBt = db->aDb[i].pBt;
 +      if( sqlite3BtreeIsInTrans(pBt) ){
 +        sqlite3BtreeEnter(pBt);
 +        sqlite3PagerDropExclusiveLock(sqlite3BtreePager(pBt));
 +        sqlite3BtreeLeave(pBt);
 +      }
 +    }
 +  }
 +#endif
 +
    if( rc!=SQLITE_OK ){
      return rc;
    }
diff --cc src/wal.c
Simple merge
diff --cc test/wal2.test
Simple merge
index aad1c4a0c27d35f8ff3cee48549b4f248bb43da8,9b34cf2e037f734669254cb98523cd6421b7925d..1922c7d22a4ca9802163b440c301d2e4a80c4182
@@@ -37,9 -37,8 +37,10 @@@ set extras 
    UMINUS
    UPLUS
    REGISTER
 +  EXCLUSIVE
 +  CONCURRENT
    ASTERISK
+   SPAN
    SPACE
    ILLEGAL
  }