]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest enhancements and fixes from trunk.
authordrh <drh@noemail.net>
Fri, 8 Mar 2019 16:06:26 +0000 (16:06 +0000)
committerdrh <drh@noemail.net>
Fri, 8 Mar 2019 16:06:26 +0000 (16:06 +0000)
FossilOrigin-Name: 543ecb30d67bdf7639ea5d57d091e8c0981d4b5042bb6f9cedd1264bbcbef0de

24 files changed:
1  2 
ext/session/sqlite3session.c
main.mk
manifest
manifest.uuid
src/btree.c
src/btree.h
src/btreeInt.h
src/build.c
src/func.c
src/main.c
src/os_unix.c
src/pager.c
src/parse.y
src/pragma.h
src/select.c
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
src/update.c
src/vdbe.c
src/vdbeaux.c
test/permutations.test
test/wal2recover2.test
tool/mkpragmatab.tcl

Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 5d18c9e0472a4cdeaecde934fed35db2c09b2606,5ac993e83bb84aa7c6b5589eccf0c7ed474c17de..0d3699e1ea6ff20881448649dbb096c3e70998b5
+++ b/manifest
@@@ -1,12 -1,12 +1,12 @@@
- C Merge\sdocumentation\schanges\sfrom\sbranch\sbegin-concurrent-wal2\sinto\sthis\sbranch.
- D 2019-01-11T15:26:13.449
+ C Merge\sthe\slatest\senhancements\sand\sfixes\sfrom\strunk.
 -D 2019-03-08T15:57:31.459
++D 2019-03-08T16:06:26.415
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
- F Makefile.in d8b254f8bb81bab43c340d70d17dc3babab40fcc8a348c8255881f780a45fee6
+ F Makefile.in 66810b3d52e54518bb167571f3062c9e81ccd7b5ad286b22b328f73a5b7d8c2e
  F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc 3c4c7e94419ff28cb68850188c9d153b343aed4c5ebed5965426232ed67ff9d9
+ F Makefile.msc 2898744d5431972b298938d60ae8f58ad29dbff64229205806e7bb5ded81ba6c
  F README.md 377233394b905d3b2e2b33741289e093bc93f2e7adbe00923b2c5958c9a9edee
- F VERSION 453e2f4529ca208196d5567db28d549d7151f79efd33f6e6cfe6e613e583a0be
+ F VERSION 288d756b1b7be03ecdbf1795c23af2c8425f2e46ba6979a14ef53360308f080d
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
  F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
@@@ -397,10 -401,8 +402,10 @@@ F ext/rtree/tkt3363.test 142ab96eded44a
  F ext/rtree/util/randomshape.tcl 54ee03d0d4a1c621806f7f44d5b78d2db8fac26e0e8687c36c4bd0203b27dbff
  F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
  F ext/rtree/visual01.txt e9c2564083bcd30ec51b07f881bffbf0e12b50a3f6fced0c222c5c1d2f94ac66
- F ext/session/changeset.c 4ccbaa4531944c24584bf6a61ba3a39c62b6267a
- F ext/session/changesetfuzz.c 255826ee367781ec4c29a36c7c63e9ee6387dc03a8346cf240feb8d597958b0e
 +F ext/session/changebatch1.test 9ceaa8f7b2a505933e250fbe6cbc550e4ce1e59d
 +F ext/session/changebatchfault.test be49c793219bf387ad692a60856b921f0854ad6d
+ F ext/session/changeset.c d046906a0c9a37862fcd5dbfda5eb08dea361b9abdd959b34358a63fa246164f
+ F ext/session/changesetfuzz.c 01023c41cfb02e191d144ea8bfdc46443393b62d13873f5fa044fc9886e60142
  F ext/session/changesetfuzz1.test 2e1b90d888fbf0eea5e1bd2f1e527a48cc85f8e0ff75df1ec4e320b21f580b3a
  F ext/session/session1.test 0b2f88995832ea040ae8e83a1ad4afa99c00b85c779d213da73a95ea4113233e
  F ext/session/session2.test 284de45abae4cc1082bc52012ee81521d5ac58e0
@@@ -427,19 -429,17 +432,19 @@@ F ext/session/sessionfault2.test dd593f
  F ext/session/sessioninvert.test ae1a003a9ab1f8d64227dbb5c3a4c97e65b561b01e7b2953cf48683fb2724169
  F ext/session/sessionrebase.test ccfa716b23bd1d3b03217ee58cfd90c78d4b99f53e6a9a2f05e82363b9142810
  F ext/session/sessionstat1.test 218d351cf9fcd6648f125a26b607b140310160184723c2666091b54450a68fb5
- F ext/session/sessionwor.test 07f0b304dc4df5454906069140bf6ec67edcaa3c548f3683354003cf2c22b64a
+ F ext/session/sessionwor.test 67b5ab91d4f93ce65ff1f58240ac5ddf73f8670facc1ffa49cef56293d52818d
 -F ext/session/sqlite3session.c 4c79daf65e89c78dd62fd97a1b2eac3e53be700b29914101453a0d951f7ba9c8
 -F ext/session/sqlite3session.h 54d6356f5769d3695e5f63d719c6ee27671b2614973a2b675a3ff4d30d574233
 -F ext/session/test_session.c 98797aba475a799376c9a42214f2d1debf2d0c3cb657d9c8bbf4f70bf3fb4aec
 +F ext/session/sqlite3changebatch.c d5553b79e012ee2cb06c0a96bdf9dfe19e66354390ea0036cc46c4953142d517
 +F ext/session/sqlite3changebatch.h e72016998c9a22d439ddfd547b69e1ebac810c24
- F ext/session/sqlite3session.c 994b1b691f3e1ab72a9d3949c2ca7dca4db3d9dd5ece5e34f74953411b8d36f9
++F ext/session/sqlite3session.c 5b8750c4e1d90fd64a0ce670705251ef82b0de033fc5557d3f3d967ea67120e9
 +F ext/session/sqlite3session.h ef72e7738edcaf8d1a29e74480cac3b3171781870d248160b2d9147b8dac0d6b
 +F ext/session/test_session.c 60e15d5db8ae7a0f521e70a7504ba1f74fc50548a25a5397808f487bc6a92b5d
  F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
  F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
  F ext/userauth/userauth.c f81aa5a3ecacf406f170c62a144405858f6f6de51dbdc0920134e629edbe2648
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk a4b21dfef7c928f1036633e8983d421df9b9443f8116eb9c1daac1110f97e814
 -F main.mk 1e9231ef6493eb108d49d854cf86421435e0c0517ac5bbe76c2a1f949b978021
++F main.mk f2c36023e214aaa61f9995de9cae5beb6f2e574bff6438001db603ad2df08aa1
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -451,38 -451,38 +456,38 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 082286f89160ca2302d51650e173b745ef78c42b6a7ebc3262d9cb166596c7ca
+ F src/alter.c cb691d6cd330312b7951c9d3bc0bc29804bbe80beac1cdd137d824b119b6f28a
  F src/analyze.c 58db66344a5c58dcabb57f26696f6f2993956c830446da40b444051d2fdaf644
- F src/attach.c 92b51739a885da8bd84bc9a05485f1e48148bce5c15432f059b45af98fff75cd
+ F src/attach.c 3f9b0f6c79500cc40f4e543bc130a0b4ee13f52b45cbb6735608776cbdb79f0e
  F src/auth.c 0fac71038875693a937e506bceb492c5f136dd7b1249fbd4ae70b4e8da14f9df
  F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab
 -F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 +F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c 33cceb8e62798dda3e2ac64411018283d237037d1c8a86c0c12589727bfb6f1a
- F src/btree.h 1ed41c71481a1196a520064f2282bc13d768bbd8ae2850e319a3048f8ee7cb3d
- F src/btreeInt.h 6c65e6c96f561596f6870c79a64d4706af81613881d7947e3f063e923f14115f
- F src/build.c 1c36fd26eba15fa4a81cd04d0008d87828a2da378c3f136306863a49b3663da3
 -F src/btree.c 7e3d0fde47b678d52694cfc6f9889c34d3a7f04577b20984c53795abe0cb8c0d
 -F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3
 -F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f
 -F src/build.c 3acec29b23948042173301a8befebae01a98344debf66cbd4467c8b9077707b8
++F src/btree.c 021c960a9eac0630ef9b34e5277c47218d07e25141f1da43e33472be2e63ec28
++F src/btree.h f5c65a8c7ce7d3c493ab5ee4d35ea95610422362d3d207993b05804d2bbcc17c
++F src/btreeInt.h 9d7f00ca9402f5e881e30eeba1e65814be8544284d59bd843419b6f73b761730
++F src/build.c b85d9265dee3d6f8ec7ed3e39636f8bf6efd55c02717f07373e117b7d0c10b84
  F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
  F src/ctime.c 109e58d00f62e8e71ee1eb5944ac18b90171c928ab2e082e058056e1137cc20b
  F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957
  F src/dbpage.c 135eb3b5e74f9ef74bde5cec2571192c90c86984fa534c88bf4a055076fa19b7
- F src/dbstat.c 3c8bd4e77f0244fd2bd7cc90acf116ad2f8e82d70e536637f35ac2bc99b726f9
- F src/delete.c 209cd8345b15d1843abeff2d91a6d9c765cf32ff4abcb24411c38fe08e18baab
- F src/expr.c 18ce84bab19ef59eff99a54d83ebefd28dc10d17e617f35c730ff7c8bc2b6ee7
+ F src/dbstat.c c12833de69cb655751487d2c5a59607e36be1c58ba1f4bd536609909ad47b319
+ F src/delete.c d08c9e01a2664afd12edcfa3a9c6578517e8ff8735f35509582693adbe0edeaf
+ F src/expr.c f2d0ecf68213770be4fad83128ce02e67667deebaa0a44061313f7e4f2a4ae28
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c aaf28be73ab21e1e8bf4ac6b94269ebc8c93238d1e6997cb44b527b622e8ae6f
- F src/func.c 8efa2c813b3f6a831a070311b5bcbc97993b79cbcd274bdb49bde56ccd3d37bc
- F src/global.c 8291eee0782b83124de14ec0389ec9fd6ae1873358a6b0d9469fe17a46ad803b
+ F src/fkey.c bd0138acdc008c1845ccf92f8e73787880562de649471804801c06fed814c765
 -F src/func.c 2ccf4ae12430b1ae7096be5f0675887e1bd0732828af0ac0f7496339b7c6edee
++F src/func.c 88df51f4be9d0af49aaac61fc25a690ebfc0ac6ced0103bc6c11a62d5c920fde
+ F src/global.c 0dea3065ea72a65ae941559b6686aad6516d4913e76fa4f79a95ff7787f624ec
  F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a
  F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
  F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 1e0001758cd174177886cdfe23d69c6d6775f1c4e7fe946a041f1ef56ae85bc5
- F src/legacy.c 134ab3e3fae00a0f67a5187981d6935b24b337bcf0f4b3e5c9fa5763da95bf4e
+ F src/insert.c 4ce12b5ba3bcbfa17ec37ce960d499fc287b6289df2c00b31201f716a3c7df45
+ F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c e6f10875d52aca3b7e57ce1ec174aeafc9b6c00b43000cd30d791f9cb490b7a6
- F src/main.c 65f0e265a9f4f3b975f731247d035e15c4f805748d12c8a9ddd7a2d8d73a4789
- F src/malloc.c 07295435093ce354c6d9063ac05a2eeae28bd251d2e63c48b3d67c12c76f7e18
 -F src/main.c 27d7265625ea6eaccdfe7c53ef41adc179c9357a077702a860c1a3b0a037a16f
++F src/main.c 2d3ee4859df528385bc072e418fdb30af91648234e20d4e6abfda7d789704e46
+ F src/malloc.c 0f9da2a66b230a5785af94b9672126845099b57b70a32c987d04ac28c69da990
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
  F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
@@@ -501,33 -501,33 +506,33 @@@ 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 45f00fb32a5d8ab1a3fe4eaaad800b6e4171fb5c83a0a19587d7dfea479561bd
 -F src/os_unix.c 2b9604eb5c12f40a0613e832b6267f5814f84479d570d482ba6f98d7affa7c1c
++F src/os_unix.c 4a5a0f9ae99679067b524ec00e0cf93d59d6c8597505d85021d87faca95871f2
  F src/os_win.c 85d9e532d0444ab6c16d7431490c2e279e282aa0917b0e988996b1ae0de5c5a0
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 24dbb25d447629bc8167dcf16dcb449a6eb2067393935d97ff42377798e44979
 -F src/pager.c 3469df53e0d6acd4f40d77f1f414079e1c0b17e5ca2a782e7ccd91262a8ce67e
 -F src/pager.h 3abf6d65199fd0680b26a047c6167a96a4d6ead7535e02522b79f0fb27a3edec
 -F src/parse.y 741a270b7f2f85bc5d026d06fb5a9ccba5335304ff2831e1cb44b36cd0da6006
++F src/pager.c 9b9e64c449027f35bae342ee83589df56bcd2e085b5cad4e41b5a3176a16ebda
 +F src/pager.h d8cf37b3415c742d1f267ae2e0e6495826a72d403cbdbefdab2e2f5ff2a1dde7
- F src/parse.y 8206217fe7fa96652aa1b8a797246e23b30a9d4c1a5175d9c12b13750f51dc2f
++F src/parse.y e53f90120fc1c47bfdf2a0894e6ffe0d06f757dbd61eacaaa1731334a1cf08fa
  F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
- F src/pcache1.c ddc9fc7d9861cf3a1f30660264b76b1ae9e1dce5dbba085cf001d5cb6b41cf8c
- F src/pragma.c c1bfbee754da581ab1f1c299d0522ed1e52e265f1100cad14be546e6d055e3cd
- F src/pragma.h 7003ea8e45e5da0a7cd6d35846214f9ae9ecf5be66b268415ceea5855324af11
- F src/prepare.c d0918fb8d00b1ebf19655e7f3d28464b3fc3c43c16d36dd06092de02244a5180
- F src/printf.c 0f1177cf1dd4d7827bf64d840768514ec76409abecaca9e8b577dbd065150381
+ F src/pcache1.c a72804486dfa8e4b6bc30d666c97ecf1155f91a4351fc6e48ea4097e4eb304fb
+ F src/pragma.c 4113abface06219131ada1f98dc2a0860f0f217f9608e1352f4504191064b355
 -F src/pragma.h a776bb9c915207e9d1117b5754743ddf1bf6a39cc092a4a44e74e6cb5fab1177
++F src/pragma.h fabf163fab9b289da9b15172d16e79bf91db49e81d70334583fca10214501c71
+ F src/prepare.c 78027c6231fbb19ca186a5f5f0c0a1375d9c2cec0655273f9bd90d9ff74a34b3
+ F src/printf.c 93a3d539019264683a444bc043c875e9a6cca43fe935ae7bf6cfff0af3bba118
 -F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
 +F src/random.c f27af4099afaea7284ade5c206224dcfdb2334cfd119d018b470d46356b3f27d
- F src/resolve.c 5f2f987aacba7548d10781f808e1b933f80abe0b6bc8e9922bc18b1d1faba339
+ F src/resolve.c 09419ad5c432190b69be7c0c326e03abb548a97c2c50675b81b459e1b382d1d2
  F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93
- F src/select.c 49f7cf2521c44db8918fd052ee551b6cd2a98580fc538e9c056eaa924a6ade35
- F src/shell.c.in 207da30342db0b6fac8b2487abd60b059a5ea80cc9494bd1db76a1dd4aae7cca
- F src/sqlite.h.in a8ac449be3b5f7edeaf9066bec560323a61fcd032f199f7f462444afda119151
 -F src/select.c 9263f5c30dd44c7ac2eb29f40a7ec64322a96885b71c00de6bc30b756c2e1c49
++F src/select.c baeeee1b5e102a765ecc36812f1ab4fbf719b58265e8cc7f6dace15cc8564643
+ F src/shell.c.in 01c0cc01391d00d247fdf640052d38c267fc16d975bc4f3154a02277c232dbeb
 -F src/sqlite.h.in 02be315feaf20c06028aacf3b032b5e7211e9aae066284eef77b081646b43ea0
++F src/sqlite.h.in 088c510823fb965e4c47b8ded19f97a17e5e368b52753c145bcbd1af49890afa
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 960f1b86c3610fa23cb6a267572a97dcf286e77aa0dd3b9b23292ffaa1ea8683
- F src/sqliteInt.h 066ad0db3ad85d9042657ca56e63f87b7d022d39bfd744501ec963cd6a5f692c
 -F src/sqliteInt.h f253c4ec15e577a293a462e5049f8ea1d0c7a31819b3a88acdd24698df8f4d0b
++F src/sqliteInt.h 7a67213db1f6217432948f3d898473f48ccfe9c1bc37a11b8d2b8c978fda517c
  F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b
  F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e
  F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34
- F src/tclsqlite.c e72862a271348d779672b45a730c33fd0c535e630ff927e8ce4a0c908d1d28c6
- F src/test1.c 457b9b838edecaceb536f626418de90b2f27fdccb36dad2673e5022a9c5e1c33
+ F src/tclsqlite.c cfe7f93daf9d8787f65e099efb67d7cdfc2c35236dec5d3f6758520bd3519424
 -F src/test1.c cfb303eeddd3670409af6b58d2ddb928b8e9e70822d681d3df88dfaabb7bea6a
++F src/test1.c cad83b2785073d6566f42ea22a7217988f63e9ae61d2034cc870291a50188a24
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
  F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6
@@@ -580,33 -580,33 +585,33 @@@ F src/test_windirent.h 90dfbe95442c9762
  F src/test_window.c cdae419fdcea5bad6dcd9368c685abdad6deb59e9fc8b84b153de513d394ba3f
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
- F src/tokenize.c c8af4feebd8bf5a4d60a14018d91f61013f658ec864dfce7661bae73d86b3191
+ F src/tokenize.c d3615f0cbe4db5949503bf5916f3cd4fa5de855d5b4ef560f3b6dd5629423a1e
  F src/treeview.c c6ff90da4cc1813ff2d9bb11f17d4d927db62c47e552faa1835edc47269d753d
- F src/trigger.c 77546bf525854aa4dc09f3a0450fa801c3e99d5f13a3eb2efd07bfe521e3b5d6
- F src/update.c ddae32c4f7d116c0e1e43291f9522b28656244b5013252cfa8b13b5afaf07ac4
+ F src/trigger.c bb034c08eca111e66a19cda045903a12547c1be2294b5570d794b869d9c44a73
 -F src/update.c 0b973357d88092140531e07ff641139c26fb4380b0b9f5ed98c5f7691b4604d1
++F src/update.c eafa026e092c3fbf762f71054e596b1abca8d1a38106ab8b7d1c22982290b45d
  F src/upsert.c 0dd81b40206841814d46942a7337786932475f085716042d0cb2fc7791bf8ca4
  F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5
- F src/util.c d9eb0a6c4aae1b00a7369eadd7ca0bbe946cb4c953b6751aa20d357c2f482157
+ F src/util.c 82a2e3f691a3b654be872e305dab1f455e565dedf5e6a90c818c1ab307c00432
 -F src/vacuum.c a9f389f41556c0ec310bc9169dc9476603c30a0a913ad92bfbc75c86886967ca
 -F src/vdbe.c 9043f11662191840ed2115f42e6c48af3c7b08958d2846c99f014ca348c099f2
 +F src/vacuum.c b95f6ab52334f7a13499e45e4374690736726bc0aaa7ee50e26a83f6bf0187c6
- F src/vdbe.c 3a60858cc1bd42b27ca9f71c095a095a5a454790385add16f9de3d89b904de33
++F src/vdbe.c df9ad6a35a7af3d7577765cfe178fb3e8e3e980d4e6b214abaacaeb92afbad1c
  F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237
  F src/vdbeInt.h a76d5eed62c76bcd8de7afd3147fac1bc40c5a870582664bcd7d071ef437c37f
- F src/vdbeapi.c 57a2d794a8833f269b878dbc24e955369bdb379af6c4e93ebc5ce1a20fa3daf4
- F src/vdbeaux.c 272c03011ea1b37266170803ff086ee51870a8f1bf3813701519b1884e59b1e1
+ F src/vdbeapi.c 7a052df80d7e2e55382076174633e888f21fe200feb5d49b1b441b4c38ab851a
 -F src/vdbeaux.c 4fa28b32452f6197dba7c8780dde11576b9a6d8ce6f35adbb69efc3e7d37fa0c
++F src/vdbeaux.c c98e40e41467f2b52263d12e063bce220c7b636bc5e26af8e24644166e4ca5a6
  F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
- F src/vdbemem.c 7b3305bc4a5139f4536ac9b5f61da0f915e49d2e3fdfa87dfdfa9d7aba8bc1e9
+ F src/vdbemem.c 3e89e087df928eba80e520824078dc563c579a0848b1557ac36845ec14392923
  F src/vdbesort.c 90aad5a92608f2dd771c96749beabdb562c9d881131a860a7a5bccf66dc3be7f
  F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392
- F src/vtab.c 70188a745dc4e57d26e942681ff4b2912b7c8249ad5de3f60f0677b4337bcfaa
+ F src/vtab.c 2462b7d6fd72b0b916477f5ef210ee49ab58cec195483ebdac0c8c5e3ec42cab
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 -F src/wal.c 8bfa18a1c5e04a21a8cb142cdb7f8236ad32300a2298565b6fe1cdd15beee3a6
 -F src/wal.h d2a69695c84137f76e19a247a342cb02ab0131001b6f58153d94b71195bbd84d
 +F src/wal.c c620be7513ae34dc3c8c3c066aafb192730b561073048f2cde738f556f6ea041
 +F src/wal.h c1a0f32c170634cf42908f8e978fa6bd8921f7364301fa34606cd171fce883b1
- F src/walker.c fb94aadc9099ff9c6506d0a8b88d51266005bcaa265403f3d7caf732a562eb66
- F src/where.c 981412c27abb9378d3024eae6f3040abd3c16db722f5ef8a7d613141ea2aea78
+ F src/walker.c 7607f1a68130c028255d8d56094ea602fc402c79e1e35a46e6282849d90d5fe4
+ F src/where.c 8a207cb2ca6b99e1edb1e4bbff9b0504385a759cbf66180d1deb34d80ca4b799
  F src/whereInt.h 5f14db426ca46a83eabab1ae9aa6d4b8f27504ad35b64c290916289b1ddb2e88
- F src/wherecode.c 89d2ec668aec884dfa7ac500c6744e42ec0590fcd72fb740a8b48326a8412811
+ F src/wherecode.c ce7b21e1be2b981d62683fc59c4ca73a04a7ff2f1ebec23d41baf2da2349afd6
  F src/whereexpr.c 36b47f7261d6b6f1a72d774c113b74beddf6745aba1018e64b196e29db233442
- F src/window.c f4a9ac8396395a9e281e182dd32fc9b3b19f6762a9eef468137369def3ad9a2c
+ F src/window.c df2456386e0b1553a8d1fcf3a0ddc4c058fe2c650ea8c74b6bf8862082ddafc9
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
  F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d
@@@ -1203,7 -1197,8 +1212,7 @@@ F test/pagesize.test 5769fc62d8c890a83a
  F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
  F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
  F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test be93fcab2e205260ae296a76b45529f2a75e78a43480cabdbb77dee88c2e0ed2
 -F test/permutations.test c820cf868e8b3b922545797fb54ed150e771e28b64724990e1127cbd00b8b756
++F test/permutations.test 9ba49352e8932e76a8f70b6277c8c2fb4b00bace9ad473196ac5fc00511b9fc3
  F test/pg_common.tcl 301ac19c1a52fd55166d26db929b3b89165c634d52b5f8ad76ea8cb06960db30
  F test/pragma.test c267bf02742c823a191960895b3d52933cebd7beee26757d1ed694f213fcd867
  F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@@@ -1625,12 -1619,12 +1635,12 @@@ F test/wal2concurrent.test 7fc3e5700736
  F test/wal2fault.test 2e8e60cacd5bcd451618aeffd05f676894d17202d3e2986e288d36e2c5993249
  F test/wal2lock.test 0ef98d72dc6bcf7711dedd684760488400d9a9a6eec0dc5d3822060437793552
  F test/wal2recover.test ba8f4bc9397c838734619f9e759bd98b00e355347b3cf80a2e677610d231d5d8
- F test/wal2recover2.test dcfedc46a0080aa6d37c762863da2f5c0ec941c46a6cfe85b412e792c08a2ac2
 -F test/wal2recover2.test 0c46afc759e4392a3c12fba17432b880c93a13bf4246d1be5101b00bae4c5f01
++F test/wal2recover2.test 698bd0da28b84f470dc5dd50340401fdb50cf8d7894de27d55b61d22130bb1e1
  F test/wal2rewrite.test 6ca6f631ffcf871240beab5f02608913fd075c6d0d31310b026c8383c65c9f9c
  F test/wal2rollback.test 23adc4a099b23f6aaea8b04fdca1c35861d887dd80f8be7da2d5273eb777e428
 -F test/wal2savepoint.test 2c82bd6a6ee5066c156040d2e9c2415646fcf96116ae7ad127eaf0c0b4a85f22
 +F test/wal2savepoint.test 3793a0ae97011fca358f79775f5d7d9f85da75c8e67686e2e19713da0cb0d99c
  F test/wal2simple.test 96206c98bf64ab20ec00a1c0f6c709e258b98b39f2149889361f31966ce5a703
 -F test/wal2snapshot.test 7a5f4629a3c43a43c3440b8b2ea9f07de91a46b0b9eea5f08f62b5bf5b6468df
 +F test/wal2snapshot.test f6c3945bea572fd8745774e95b8dca1e5832c696e2251bb0db33391ee567fe60
  F test/wal3.test 2a93004bc0fb2b5c29888964024695bade278ab2
  F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
  F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9
@@@ -1756,7 -1751,7 +1767,7 @@@ F tool/mkmsvcmin.tcl cad0c7b54d7dd92bc8
  F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
  F tool/mkopcodeh.tcl 352a4319c0ad869eb26442bf7c3b015aa15594c21f1cce5a6420dbe999367c21
  F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
- F tool/mkpragmatab.tcl d5112b04ad7bd35a09a16fda9d968292fd00e11b0a5b32b0664ff6e444a5a9b3
 -F tool/mkpragmatab.tcl 49039adedafbc430d2959400da2e0e8f20ef8dcf6898e447c946e7d50ef5906b
++F tool/mkpragmatab.tcl b8c2663222cdd9431c40716db42aee451ad38f91b3c91c53d1512ce3de00d6c3
  F tool/mkshellc.tcl 1f45770aea226ac093a9c72f718efbb88a2a2833409ec2e1c4cecae4202626f5
  F tool/mksourceid.c d458f9004c837bee87a6382228ac20d3eae3c49ea3b0a5aace936f8b60748d3b
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
@@@ -1825,7 -1818,7 +1836,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 d0ab56a3be29d112c792efef8ae7ceacc43fa5773fe06bdc0e45bf9147f84bb4 41e742bd0f94894b096b30474fb548f58951756d1ea47d0afb717a54802888f4
- R 754f7adc7369f36751be495406429949
- U dan
- Z ba8af5f4e4c8fadeeb442666542b860b
 -P 3712d625d625f962c627c74222467ad4858be46feda570449f9cb640549c9ddd 97bdc090f30610cc5dd29101452d1647550387f9c6f742e50f1e07c3cf68a147
 -R b8ed3ee6ce35b69d0b38fb468fd57421
++P cf8a0c71cf1032bd4271cf889304def0fab82a76eac255d734652008fff6c9b6 bf20d4ffcb7b27b519502e2986cd0eb1d34d5fd273752fb27de9cdab75772acd
++R 6ccdcdbafce02e0440074c45c663306b
+ U drh
 -Z 8e2aced8e0df079655bef1815a75a319
++Z 5cdf6db5ff9fe665b95e90f4d2a578cc
diff --cc manifest.uuid
index bef88f815576db24626face366e101bfb6941f8c,dbe27a9c5a42fa381eeacc235b4f51ba25f126c9..4bcf830534affa127782e887ae3ebaf404b93955
@@@ -1,1 -1,1 +1,1 @@@
- cf8a0c71cf1032bd4271cf889304def0fab82a76eac255d734652008fff6c9b6
 -bf20d4ffcb7b27b519502e2986cd0eb1d34d5fd273752fb27de9cdab75772acd
++543ecb30d67bdf7639ea5d57d091e8c0981d4b5042bb6f9cedd1264bbcbef0de
diff --cc src/btree.c
index 056797667ccb8cf9a750266553e3761c1fdd8dae,6bd38486e30a0e0fcd64413aee37c59b85add652..77094da03acd952dafa079a1af7238220ff21e16
@@@ -7126,11 -6711,18 +7179,18 @@@ static void insertCell
      ** if it returns successfully */
      assert( idx >= 0 );
      assert( idx >= pPage->cellOffset+2*pPage->nCell+2 || CORRUPT_DB );
 -    assert( idx+sz <= (int)pPage->pBt->usableSize );
 +    assert( idx+sz <= (int)pBt->usableSize );
      pPage->nFree -= (u16)(2 + sz);
-     memcpy(&data[idx], pCell, sz);
      if( iChild ){
+       /* In a corrupt database where an entry in the cell index section of
+       ** a btree page has a value of 3 or less, the pCell value might point
+       ** as many as 4 bytes in front of the start of the aData buffer for
+       ** the source page.  Make sure this does not cause problems by not
+       ** reading the first 4 bytes */
+       memcpy(&data[idx+4], pCell+4, sz-4);
        put4byte(&data[idx], iChild);
+     }else{
+       memcpy(&data[idx], pCell, sz);
      }
      pIns = pPage->aCellIdx + i*2;
      memmove(pIns+2, pIns, 2*(pPage->nCell - i));
      pPage->nCell++;
      /* increment the cell count */
      if( (++data[pPage->hdrOffset+4])==0 ) data[pPage->hdrOffset+3]++;
-     assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell );
+     assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell || CORRUPT_DB );
 -#ifndef SQLITE_OMIT_AUTOVACUUM
 -    if( pPage->pBt->autoVacuum ){
 +    if( REQUIRE_PTRMAP ){
        /* The cell may contain a pointer to an overflow page. If so, write
        ** the entry for the overflow page into the pointer map.
        */
-       ptrmapPutOvflPtr(pPage, pCell, pRC);
+       ptrmapPutOvflPtr(pPage, pPage, pCell, pRC);
      }
 -#endif
    }
  }
  
@@@ -7555,10 -7274,10 +7740,10 @@@ static int balance_quick(MemPage *pPare
      ** be marked as dirty. Returning an error code will cause a
      ** rollback, undoing any changes made to the parent page.
      */
 -    if( ISAUTOVACUUM ){
 +    if( REQUIRE_PTRMAP ){
        ptrmapPut(pBt, pgnoNew, PTRMAP_BTREE, pParent->pgno, &rc);
        if( szCell>pNew->minLocal ){
-         ptrmapPutOvflPtr(pNew, pCell, &rc);
+         ptrmapPutOvflPtr(pNew, pNew, pCell, &rc);
        }
      }
    
@@@ -7836,8 -7552,13 +8019,15 @@@ static int balance_nonroot
        memset(apOld, 0, (i+1)*sizeof(MemPage*));
        goto balance_cleanup;
      }
+     if( apOld[i]->nFree<0 ){
+       rc = btreeComputeFreeSpace(apOld[i]);
+       if( rc ){
+         memset(apOld, 0, (i)*sizeof(MemPage*));
+         goto balance_cleanup;
+       }
+     }
 +    setMempageRoot(apOld[i], pgnoRoot);
 +
      nMaxCells += 1+apOld[i]->nCell+apOld[i]->nOverflow;
      if( (i--)==0 ) break;
  
    ** updated. This happens below, after the sibling pages have been 
    ** populated, not here.
    */
 -  if( ISAUTOVACUUM ){
 +  if( REQUIRE_PTRMAP ){
-     MemPage *pNew = apNew[0];
-     u8 *aOld = pNew->aData;
+     MemPage *pOld;
+     MemPage *pNew = pOld = apNew[0];
      int cntOldNext = pNew->nCell + pNew->nOverflow;
-     int usableSize = pBt->usableSize;
      int iNew = 0;
      int iOld = 0;
  
diff --cc src/btree.h
Simple merge
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/func.c
index d8233835a2f68c767dd223771f44aec667e5bc80,03595b70d225a07a6ab16b56e8e07b37fcd089ba..0f816624c2d22cb5dc61acf9804c500b22b81a0d
@@@ -511,12 -514,11 +515,12 @@@ static void randomBlob
    int argc,
    sqlite3_value **argv
  ){
-   int n;
+   sqlite3_int64 n;
    unsigned char *p;
 +  sqlite3 *db = sqlite3_context_db_handle(context);
    assert( argc==1 );
    UNUSED_PARAMETER(argc);
-   n = sqlite3_value_int(argv[0]);
+   n = sqlite3_value_int64(argv[0]);
    if( n<1 ){
      n = 1;
    }
diff --cc src/main.c
Simple merge
diff --cc src/os_unix.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/parse.y
Simple merge
diff --cc src/pragma.h
Simple merge
diff --cc src/select.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/test1.c
Simple merge
diff --cc src/update.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
Simple merge
index e6280a5163cf14a4f351b99930730daf57c6466b,c3cadf8825af296a60a58c29e47f0638a342f80b..09d281032761bc44530b448f3d66fbe87538e170
@@@ -260,54 -259,7 +260,53 @@@ do_test 1.8.6 
    forcecopy test.db-wal2 test.db2-wal2
    sqlite3 db2 test.db2
    catchsql { SELECT * FROM sqlite_master } db2
- } {1 {database disk image is malformed}}
+ } {1 {malformed database schema (?)}}
  db2 close
  
 +#-------------------------------------------------------------------------
 +reset_db
 +do_execsql_test 1.0 {
 +  CREATE TABLE t1(a, b, c);
 +  CREATE INDEX t1a ON t1(a);
 +  CREATE INDEX t1b ON t1(b);
 +  CREATE INDEX t1c ON t1(c);
 +  PRAGMA journal_mode = wal2;
 +
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  PRAGMA journal_size_limit = 5000;
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +  INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +} {wal2 5000}
 +
 +do_test 2.1 {
 +  forcecopy test.db test.db2
 +  forcecopy test.db-wal2 test.db2-wal
 +  forcecopy test.db-wal test.db2-wal2
 +  
 +  hexio_write test.db2-wal 5000 1234567890
 +} {5}
 +
 +do_test 2.2 {
 +  sqlite3 db2 test.db2
 +  breakpoint
 +  execsql {
 +    SELECT count(*) FROM t1;
 +    PRAGMA integrity_check
 +  } db2
 +} {4 ok}
 +
 +do_test 2.3 {
 +  execsql {
 +    INSERT INTO t1 VALUES(randomblob(50), randomblob(50), randomblob(50));
 +    SELECT count(*) FROM t1;
 +    PRAGMA integrity_check
 +  } db2
 +} {5 ok}
 +
 +
  finish_test
Simple merge