]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge in all changes from trunk.
authordrh <drh@noemail.net>
Wed, 28 Jan 2015 12:00:40 +0000 (12:00 +0000)
committerdrh <drh@noemail.net>
Wed, 28 Jan 2015 12:00:40 +0000 (12:00 +0000)
FossilOrigin-Name: 17c69be80542c5f84e21d60df3edc49422b087d9

18 files changed:
1  2 
main.mk
manifest
manifest.uuid
src/btree.c
src/delete.c
src/main.c
src/pager.c
src/pager.h
src/pragma.c
src/sqlite.h.in
src/sqliteInt.h
src/tclsqlite.c
src/test1.c
src/test_config.c
src/wal.c
test/permutations.test
test/releasetest.tcl
tool/mkpragmatab.tcl

diff --cc main.mk
Simple merge
diff --cc manifest
index 96dcf87dd3f3dba4b6f13c4c96b493068a3b482d,5e1d55e7c773c2cf3724c9ad65ffe37e19ab4bb0..e60c8e7d073a7824deecb25fb4ddcec3e008cf82
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Update\sthis\sbranch\swith\slatest\strunk\schanges.
- D 2014-12-08T07:50:31.222
 -C Fix\sharmless\scompiler\swarnings.
 -D 2015-01-27T21:24:33.191
++C Merge\sin\sall\schanges\sfrom\strunk.
++D 2015-01-28T12:00:40.078
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
- F Makefile.in 6c4f961fa91d0b4fa121946a19f9e5eac2f2f809
+ F Makefile.in 5407a688f4d77a05c18a8142be8ae5a2829dd610
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
- F Makefile.msc 10720782f88648bf2b5dcedf4c1524b067d43e47
- F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0
- F README.md 64f270c43c38c46de749e419c22f0ae2f4499fe8
+ F Makefile.msc 2b1cb8881bdefcb0a8ed41c34c81cfa630374222
+ F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858
+ F README.md d58e3bebc0a4145e0f2a87994015fdb575a8e866
  F VERSION d846487aff892625eb8e75960234e7285f0462fe
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F addopcodes.awk 9eb448a552d5c0185cf62c463f9c173cedae3811
@@@ -26,7 -26,7 +26,7 @@@ F autoconf/missing d7c9981a81af13370d4e
  F autoconf/tea/Makefile.in d55bcc63832caf0309c2ff80358756116618cfca
  F autoconf/tea/README 3e9a3c060f29a44344ab50aec506f4db903fb873
  F autoconf/tea/aclocal.m4 52c47aac44ce0ddb1f918b6993e8beb8eee88f43
- F autoconf/tea/configure.in 93d43c79e936fb16556e22498177d7e8571efa04
 -F autoconf/tea/configure.ac 93d43c79e936fb16556e22498177d7e8571efa04
++F autoconf/tea/configure.ac 93d43c79e936fb16556e22498177d7e8571efa04 w autoconf/tea/configure.in
  F autoconf/tea/doc/sqlite3.n e1fe45d4f5286ee3d0ccc877aca2a0def488e9bb
  F autoconf/tea/license.terms 13bd403c9610fd2b76ece0ab50c4c5eda933d523
  F autoconf/tea/pkgIndex.tcl.in 3ef61715cf1c7bdcff56947ffadb26bc991ca39d
@@@ -123,23 -123,8 +123,23 @@@ F ext/misc/totype.c 4a167594e791abeed95
  F ext/misc/vfslog.c fe40fab5c077a40477f7e5eba994309ecac6cc95
  F ext/misc/vtshim.c babb0dc2bf116029e3e7c9a618b8a1377045303e
  F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212
 +F ext/ota/README.txt 78d4a9f78f567d4bf826cf0f02df6254902562ca
 +F ext/ota/ota.c c11a85af71dccc45976622fe7a51169a481caa91
 +F ext/ota/ota1.test d76b9ec77437759e9da0ff4abe9c070bb9f4eae1
 +F ext/ota/ota10.test ab815dff9cef7248c504f06b888627d236f25e9c
 +F ext/ota/ota2.test 4568c2671d19dbde789fb9091d727a2e94880128
 +F ext/ota/ota3.test 71bd8cc0cf8d7e7d9bb11a1fcc238320a5a9d8c8
 +F ext/ota/ota4.test 60f897f329a6782ef2f24862640acf3c52e48077
 +F ext/ota/ota5.test ad0799daf8923ddebffe75ae8c5504ca90b7fadb
 +F ext/ota/ota6.test 82f1f757ec9b2ad07d6de4060b8e3ba8e44dfdd3
 +F ext/ota/ota7.test 1fe2c5761705374530e29f70c39693076028221a
 +F ext/ota/ota8.test cd70e63a0c29c45c0906692827deafa34638feda
 +F ext/ota/ota9.test d3eee95dd836824d07a22e5efcdb7bf6e869358b
 +F ext/ota/otafault.test be02466863015a583cc0ceb6aca871a5e6f7a71b
 +F ext/ota/sqlite3ota.c 84cab0f965144772068ec0183252ae5e5278f0be
 +F ext/ota/sqlite3ota.h ce378c0c503f625611713133f9c79704ea4ee7a4
  F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
- F ext/rtree/rtree.c 57bec53e1a677ab74217fe1f20a58c3a47261d6b
+ F ext/rtree/rtree.c 14e6239434d4e3f65d3e90320713f26aa24e167f
  F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
  F ext/rtree/rtree1.test 541bbcab74613907fea08b2ecdcdd5b7aa724cc9
  F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
@@@ -167,7 -152,7 +167,7 @@@ F ext/userauth/userauth.c 5fa3bdb492f48
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 4b47576110101e349ebe152008ad7e87dd6764b3
 -F main.mk e392561ffe17fc4dad945eef852400d5bf2911a0
++F main.mk 9d3b0b164e5e1eda8af9ac60520c315699dccbc3
  F mkopcodec.awk c2ff431854d702cdd2d779c9c0d1f58fa16fa4ea
  F mkopcodeh.awk c6b3fa301db6ef7ac916b14c60868aeaec1337b5
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
@@@ -188,20 -173,20 +188,20 @@@ F src/auth.c b56c78ebe40a2110fd361379f7
  F src/backup.c 7ddee9c7d505e07e959a575b18498f17c71e53ea
  F src/bitvec.c 19a4ba637bd85f8f63fc8c9bae5ade9fb05ec1cb
  F src/btmutex.c 49ca66250c7dfa844a4d4cb8272b87420d27d3a5
- F src/btree.c 7071995e9ab92173f43e9d1b8560a8db64a31e9a
- F src/btree.h e31a3a3ebdedb1caf9bda3ad5dbab3db9b780f6e
- F src/btreeInt.h 3363e18fd76f69a27a870b25221b2345b3fd4d21
- F src/build.c 67bb05b1077e0cdaccb2e36bfcbe7a5df9ed31e8
 -F src/btree.c 4c098bb6e8678e4596983862abf78f7a0fcb807e
++F src/btree.c 73cfa1752138438088a20f17f7bc501ba3b999b4
+ F src/btree.h 94277c1d30c0b75705974bcc8b0c05e79c03d474
+ F src/btreeInt.h a3d0ae1d511365e1a2b76ad10960dbe55c286f34
+ F src/build.c f5cfd7b32216f695b995bbc7c1a395f6d451d11f
  F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0
- F src/complete.c c4ba6e0626bb94bc77a0861735f3382fcf7cc818
- F src/ctime.c df19848891c8a553c80e6f5a035e768280952d1a
- F src/date.c 93594514aae68de117ca4a2a0d6cc63eddf26744
- F src/delete.c 2d2c4ff24bda5d28000d0aeb05960ee2883a2d3a
- F src/expr.c 00da3072f362b06f39ce4052baa1d4ce2bb36d1c
+ F src/complete.c 198a0066ba60ab06fc00fba1998d870a4d575463
+ F src/ctime.c 98f89724adc891a1a4c655bee04e33e716e05887
+ F src/date.c e4d50b3283696836ec1036b695ead9a19e37a5ac
 -F src/delete.c bd1a91ddd247ce13004075251e0b7fe2bf9925ef
++F src/delete.c e68b70ac41dcf6e92a813d860fa984fcd9aec042
+ F src/expr.c abe930897ccafae3819fd2855cbc1b00c262fd12
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c da985ae673efef2c712caef825a5d2edb087ead7
+ F src/fkey.c e0444b61bed271a76840cbe6182df93a9baa3f12
  F src/func.c 6d3c4ebd72aa7923ce9b110a7dc15f9b8c548430
- F src/global.c 6ded36dda9466fc1c9a3c5492ded81d79bf3977d
+ F src/global.c 12561d70a1b25f67b21154622bb1723426724f75
  F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5
  F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
@@@ -209,11 -194,11 +209,11 @@@ F src/insert.c fef86ab8218cf0d926db9328
  F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
  F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
  F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
- F src/loadext.c de741e66e5ddc1598d904d7289239696e40ed994
- F src/main.c eac81ee5cb0f94b496c15f20fcbabe4530b9a8c1
+ F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660
 -F src/main.c 05bf368c934cc73d02906030846eb4d1818c10f7
++F src/main.c 296f12a2a3f5f97c814c9ca02772dbfc3d4c7275
  F src/malloc.c 740db54387204c9a2eb67c6d98e68b08e9ef4eab
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
- F src/mem1.c faf615aafd8be74a71494dfa027c113ea5c6615f
+ F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987
  F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
  F src/mem3.c 61c9d47b792908c532ca3a62b999cf21795c6534
  F src/mem5.c 61eeb90134f9a5be6c2e68d8daae7628b25953fb
@@@ -228,46 -214,46 +229,46 @@@ F src/os.c 8fd25588eeba74068d41102d2681
  F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
  F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
  F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
- F src/os_unix.c fb587121840f690101336879adfa6d0b2cd0e8c7
- F src/os_win.c a9e500dd963fb1f67d7860e58b5772abe6123862
- F src/os_win.h 09e751b20bbc107ffbd46e13555dc73576d88e21
- F src/pager.c 47f13c194a980ed55dd4825f286d40d49c4a7093
- F src/pager.h c6157af66a9999797629968921133f67716f8f9f
- F src/parse.y 5dfead8aed90cb0c7c1115898ee2266804daff45
- F src/pcache.c ace1b67632deeaa84859b4c16c27711dfb7db3d4
+ F src/os_unix.c aefeaf915aaef9f81aa2645e0d5d06fa1bd83beb
+ F src/os_win.c 8223e7db5b7c4a81d8b161098ac3959400434cdb
+ F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
 -F src/pager.c 4120a49ecd37697e28f5ed807f470b9c0b88410c
 -F src/pager.h c3476e7c89cdf1c6914e50a11f3714e30b4e0a77
++F src/pager.c 90b164ac8fefed940cd50fad6938cd18b55af8f3
++F src/pager.h 19d83e2782fe978976cb1acf474d09d9a6124ac3
+ F src/parse.y c5d0d964f9ac023e8154cad512e54b0b6058e086
+ F src/pcache.c d210cf90d04365a74f85d21374dded65af67b0cb
  F src/pcache.h b44658c9c932d203510279439d891a2a83e12ba8
- F src/pcache1.c facbdd3ecc09c8f750089d941305694301328e98
- F src/pragma.c 294c31d79dfcb6f9cea49528b19e5f8b25e3d5ec
- F src/prepare.c b7b7bf020bd4c962f7c8aed5a3c542c7dfe9f9c7
- F src/printf.c 9e75a6a0b55bf61cfff7d7e19d89834a1b938236
+ F src/pcache1.c 1e77432b40b7d3288327d9cdf399dcdfd2b6d3bf
 -F src/pragma.c ba149bbbc90783f84815636c509ced8eac11bbcf
++F src/pragma.c 92eba8211c341cbaee420dc1b91087096199befa
+ F src/prepare.c 173a5a499138451b2561614ecb87d78f9f4644b9
+ F src/printf.c 05edc41450d0eb2c05ef7db113bf32742ae65325
  F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
  F src/resolve.c f6c46d3434439ab2084618d603e6d6dbeb0d6ada
  F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
- F src/select.c f377fb8a5c73c10678ea74f3400f7913943e3d75
- F src/shell.c 45d9c9bd7cde07845af957f2d849933b990773cf
- F src/sqlite.h.in 8f704473c8301f3c9cc044d10020bb3d5955dfc3
+ F src/select.c 1f2087523007c42900ffcbdeaef06a23ad9329fc
+ F src/shell.c efd35900484377d2159189968c3445afefee3e41
 -F src/sqlite.h.in 9dfc99d6533d36d6a549c4f3f01cacc8be956ada
++F src/sqlite.h.in a16fe2a826ee58e7cb0cd19bc68d33ba29ac941c
  F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
  F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
- F src/sqliteInt.h 9d7b1d5adfcc026971957d440b796f2b26b82d0c
 -F src/sqliteInt.h eaf210295b551d4e40e622aec1b2261c0b28f844
++F src/sqliteInt.h 25b73f7edb325b827522f7d9c3273f7c7d6d4cd6
  F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
  F src/status.c 81712116e826b0089bb221b018929536b2b5406f
- F src/table.c f142bba7903e93ca8d113a5b8877a108ad1a27dc
- F src/tclsqlite.c 8cf7d53aa1e1393b79457e4d49a29c18fa8403bd
- F src/test1.c fed17ded5498378fea274f2de0fa7b0b89f855f7
- F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712
- F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c
- F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df
+ F src/table.c e7a09215315a978057fb42c640f890160dbcc45e
 -F src/tclsqlite.c b8014393a96a9781bb635c8b1f52fc9b77a2bfcf
 -F src/test1.c 00a74fbc6604e1bcd240726a9ff8d0cc123374e7
++F src/tclsqlite.c b321464aba1fff1ed9317ebc82a1a94887f97af8
++F src/test1.c bc1e8e0ea360ebd4be247f041432130f9d480c54
+ F src/test2.c 577961fe48961b2f2e5c8b56ee50c3f459d3359d
+ F src/test3.c 64d2afdd68feac1bb5e2ffb8226c8c639f798622
+ F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e
  F src/test5.c 5a34feec76d9b3a86aab30fd4f6cc9c48cbab4c1
  F src/test6.c 41cacf3b0dd180823919bf9e1fbab287c9266723
- F src/test7.c 72b732baa5642f795655ba1126ea032af46ecfd2
- F src/test8.c 54ccd7b1df5062f0ecbf50a8f7b618f8b1f13b20
+ F src/test7.c 9c89a4f1ed6bb13af0ed805b8d782bd83fcd57e3
+ F src/test8.c 610e3d523018ca63b08081795e76794a2121ec38
  F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60
  F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8
  F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12
  F src/test_backup.c 3875e899222b651e18b662f86e0e50daa946344e
  F src/test_blob.c 1f2e3e25255b731c4fcf15ee7990d06347cb6c09
  F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f
- F src/test_config.c 7d50e35f5e94235863c9bac448f63b0d141119e5
 -F src/test_config.c e7b2e1634324d746aa5e1c7e0929470e8be27953
++F src/test_config.c a55a18bbbb117eab92e4343f7ee753b25e0aee49
  F src/test_demovfs.c 69b2085076654ebc18014cbc6386f04409c959a9
  F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
  F src/test_fs.c ced436e3d4b8e4681328409b8081051ce614e28f
@@@ -295,31 -281,31 +296,31 @@@ F src/test_stat.c 9898687a6c2beca733b0d
  F src/test_superlock.c 2b97936ca127d13962c3605dbc9a4ef269c424cd
  F src/test_syscall.c 2e21ca7f7dc54a028f1967b63f1e76155c356f9b
  F src/test_tclvar.c f4dc67d5f780707210d6bb0eb6016a431c04c7fa
- F src/test_thread.c 1e133a40b50e9c035b00174035b846e7eef481cb
- F src/test_vfs.c f84075a388527892ff184988f43b69ce69b8083c
+ F src/test_thread.c af391ec03d23486dffbcc250b7e58e073f172af9
+ F src/test_vfs.c 5a14c63da9579ba148138c1fb233100f2eb58ebb
  F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
- F src/threads.c 6de09362b657f19ba83e5fa521ee715787ce9fee
- F src/tokenize.c cc9016e5007fc5e76789079616d2f26741bcc689
+ F src/threads.c 6bbcc9fe50c917864d48287b4792d46d6e873481
+ F src/tokenize.c e00458c9938072b0ea711c850b8dcf4ddcb5fe18
 -F src/trigger.c 25571661fdeae8c7f975ff40ffec205520a3f92f
 +F src/trigger.c 6dcdf46a21acf4d4e011c809b2c971e63f797a1a
  F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
  F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
- F src/util.c 3b627daa45c7308c1e36e3dbaa3f9ce7e5c7fa73
+ F src/util.c 98a7627ca48ad3265b6940915a1d08355eb3fc7e
  F src/vacuum.c 9b30ec729337dd012ed88d4c292922c8ef9cf00c
- F src/vdbe.c 1a9e671c9cfc259e4d2affc71f7df4a4c00a842c
+ F src/vdbe.c ddfc977981cd6324668aa6b114045eb1c677421a
  F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
  F src/vdbeInt.h 9bb69ff2447c34b6ccc58b34ec35b615f86ead78
- F src/vdbeapi.c 07acb615d1e4170e71fc1b0d087f3c53a1ad8e83
- F src/vdbeaux.c 6f7f39c3fcf0f5923758df8561bb5d843908a553
+ F src/vdbeapi.c 4bc511a46b9839392ae0e90844a71dc96d9dbd71
+ F src/vdbeaux.c 97911edb61074b871ec4aa2d6bb779071643dee5
 -F src/vdbeblob.c 4af4bfb71f6df7778397b4a0ebc1879793276778
 +F src/vdbeblob.c 317c71482ed73b0966db2d1c4e20839be3e9fe79
  F src/vdbemem.c 31d8eabb0cd78bfeab4e5124c7363c3e9e54db9f
- F src/vdbesort.c 42c166f7ca78cb643c7f4e4bdfa83c59d363d1a6
+ F src/vdbesort.c 6d64c5448b64851b99931ede980addc3af70d5e2
  F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010
  F src/vtab.c c08ec66f45919eaa726bf88aa53eb08379d607f9
- F src/wal.c 632d9afe19e11cc49a8b74ff52ec2a415568b958
 -F src/wal.c 85353539f2d9d0c91ebd057c32525b1e1aa3335e
 -F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
++F src/wal.c 0d9591fdec673f8402cc604b81dfeec4a150b3d0
 +F src/wal.h 0d3ba0c3f1b4c25796cb213568a84b9f9063f465
  F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804
- F src/where.c e914fdb9159bb36af4a673193bbda08aaf9e5a73
+ F src/where.c d46de821bc604a4fd36fa3928c086950e91aafb1
  F src/whereInt.h d3633e9b592103241b74b0ec76185f3e5b8b62e0
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@@ -780,8 -769,8 +784,9 @@@ F test/orderby4.test 4d39bfbaaa3ae64d02
  F test/orderby5.test 8f08a54836d21fb7c70245360751aedd1c2286fb
  F test/orderby6.test 8b38138ab0972588240b3fca0985d2e400432859
  F test/orderby7.test 3d1383d52ade5b9eb3a173b3147fdd296f0202da
- F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3
+ F test/orderby8.test 23ef1a5d72bd3adcc2f65561c654295d1b8047bd
+ F test/oserror.test 14fec2796c2b6fe431c7823750e8a18a761176d7
 +F test/ota.test 3a8d97cbf8f7210dc6a638797c4e4cd674036927
  F test/ovfl.test 4f7ca651cba5c059a12d8c67dddd49bec5747799
  F test/pager1.test 1acbdb14c5952a72dd43129cabdbf69aaa3ed1fa
  F test/pager2.test 67b8f40ae98112bcdba1f2b2d03ea83266418c71
@@@ -794,10 -783,11 +799,11 @@@ F test/pageropt.test 6b8f6a123a5572c195
  F test/pagesize.test 1dd51367e752e742f58e861e65ed7390603827a0
  F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d
  F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025
- F test/percentile.test b98fc868d71eb5619d42a1702e9ab91718cbed54
- F test/permutations.test 7828a776c70fccf83d2e35d0e1efc191b3e0c646
- F test/pragma.test 49ac8a73c0daa574824538fed28727d1259fe735
+ F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
 -F test/permutations.test f9cc1dd987986c9d4949211c7a4ed55ec9aecba1
++F test/permutations.test 1c2fd1e06f1000c93400bb49df4fff97bccff9e6
+ F test/pragma.test aa16dedfe01c02c8895169012f7dfde9c163f0d5
  F test/pragma2.test aea7b3d82c76034a2df2b38a13745172ddc0bc13
+ F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c
  F test/printf.test ec9870c4dce8686a37818e0bf1aba6e6a1863552
  F test/printf2.test b4acd4bf8734243257f01ddefa17c4fb090acc8a
  F test/progress.test a282973d1d17f08071bc58a77d6b80f2a81c354d
@@@ -813,8 -803,7 +819,7 @@@ F test/randexpr1.test eda062a97e60f9c38
  F test/rdonly.test dd30a4858d8e0fbad2304c2bd74a33d4df36412a
  F test/regexp1.test 497ea812f264d12b6198d6e50a76be4a1973a9d8
  F test/reindex.test 44edd3966b474468b823d481eafef0c305022254
- F test/releasetest.mk 2eced2f9ae701fd0a29e714a241760503ccba25a
- F test/releasetest.tcl a4279c890698584feb2ffc86735857a4e4474180
 -F test/releasetest.tcl 13f401c10dd4fe1a2fb811ae6ed27fd7d1300d3c
++F test/releasetest.tcl b290782d0697b4e83d671da192cd9a7f71e2f6c1
  F test/resolver01.test 33abf37ff8335e6bf98f2b45a0af3e06996ccd9a
  F test/rollback.test 458fe73eb3ffdfdf9f6ba3e9b7350a6220414dea
  F test/rollback2.test fc14cf6d1a2b250d2735ef16124b971bce152f14
@@@ -1199,18 -1195,18 +1211,18 @@@ F tool/fragck.tcl 5265a95126abcf6ab357f
  F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
  F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
  F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
- F tool/lemon.c 3ff0fec22f92dfb54e62eeb48772eddffdbeb0d6
+ F tool/lemon.c 1864c4fe4a72b1bb28f1792b60504804fe82c5d2
  F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
  F tool/logest.c eef612f8adf4d0993dafed0416064cf50d5d33c6
- F tool/mkautoconfamal.sh 5dc5010e2e748a9e1bba67baca5956a2c2deda7b
+ F tool/mkautoconfamal.sh d1a2da0e15b2ed33d60af35c7e9d483f13a8eb9f
  F tool/mkkeywordhash.c dfff09dbbfaf950e89af294f48f902181b144670
  F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
- F tool/mkpragmatab.tcl 7c9f48bfe61ba0e4018868bf34b2450026c24ae1
 -F tool/mkpragmatab.tcl 07a5124cf2dbafa1b375eefcf8ac4227028b0f8b
++F tool/mkpragmatab.tcl b80cb9d1faf69e7757a6a66f7188c0f84d06ee8f
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
- F tool/mksqlite3c-noext.tcl 88a1e3b0c769773fb7a9ebb363ffc603a4ac21d8
- F tool/mksqlite3c.tcl e72c0c97fe1a105fa9616483e652949be2199fe6
+ F tool/mksqlite3c-noext.tcl 9ef48e1748dce7b844f67e2450ff9dfeb0fb4ab5
+ F tool/mksqlite3c.tcl cfde806851c413db7689b9cb74a4eeb92539c601
  F tool/mksqlite3h.tcl ba24038056f51fde07c0079c41885ab85e2cff12
- F tool/mksqlite3internalh.tcl b6514145a7d5321b47e64e19b8116cc44f973eb1
+ F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
  F tool/mkvsix.tcl 52a4c613707ac34ae9c226e5ccc69cb948556105
  F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
  F tool/omittest.tcl 34d7ac01fe4fd18e3637f64abe12c40eca0f6b97
@@@ -1241,7 -1237,7 +1253,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8
  F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
  F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 088a41eb8c18886a260cf53fa0cca3bd1958dc05 6aeece19a235344be2537e66a3fe08b1febfb5a0
- R 22c55b7623330ec4e5635caf9d27c83c
- U dan
- Z 93c0d69763bbc98aa3e78f69481d4c3f
 -P adc9283dd9bc3a6463f8c4fe23dd58a3712c349d
 -R 57729c2b510493b06603a65c6ea41133
 -U mistachkin
 -Z 7155fc25674fe331bcb8023f01301b6b
++P 69a312ad3fe5b39bc394b9ce958cb63d734518c7 e7d2ec048c88237c124fbe598f8f7e950d43d90f
++R 8ac69e11eda6b72259b7582e363c58d6
++U drh
++Z a99a35d018da82adaec9a86ad728c987
diff --cc manifest.uuid
index 3420b8955c07c7f4752e5989189bac0eb3525a5a,fe72374448823b31c5c02fe76159b8e89ad178ad..2bbf8096d16af84fd26ec5659f27f0d11c35fabf
@@@ -1,1 -1,1 +1,1 @@@
- 69a312ad3fe5b39bc394b9ce958cb63d734518c7
 -e7d2ec048c88237c124fbe598f8f7e950d43d90f
++17c69be80542c5f84e21d60df3edc49422b087d9
diff --cc src/btree.c
Simple merge
diff --cc src/delete.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/pager.c
Simple merge
diff --cc src/pager.h
Simple merge
diff --cc src/pragma.c
index 1eaa98ae299fb62b3acf729aedb74f2e5ddb543e,34830e33a6700907dad8d335848e6fee17f76d94..51c8d6feeda70b569d398937d8c3bc9770cc851c
  #define PragTyp_PAGE_COUNT                    22
  #define PragTyp_MMAP_SIZE                     23
  #define PragTyp_PAGE_SIZE                     24
 -#define PragTyp_SECURE_DELETE                 25
 -#define PragTyp_SHRINK_MEMORY                 26
 -#define PragTyp_SOFT_HEAP_LIMIT               27
 -#define PragTyp_STATS                         28
 -#define PragTyp_SYNCHRONOUS                   29
 -#define PragTyp_TABLE_INFO                    30
 -#define PragTyp_TEMP_STORE                    31
 -#define PragTyp_TEMP_STORE_DIRECTORY          32
 -#define PragTyp_THREADS                       33
 -#define PragTyp_WAL_AUTOCHECKPOINT            34
 -#define PragTyp_WAL_CHECKPOINT                35
 -#define PragTyp_ACTIVATE_EXTENSIONS           36
 -#define PragTyp_HEXKEY                        37
 -#define PragTyp_KEY                           38
 -#define PragTyp_REKEY                         39
 -#define PragTyp_LOCK_STATUS                   40
 -#define PragTyp_PARSER_TRACE                  41
 +#define PragTyp_PAGER_OTA_MODE                25
 +#define PragTyp_SECURE_DELETE                 26
 +#define PragTyp_SHRINK_MEMORY                 27
 +#define PragTyp_SOFT_HEAP_LIMIT               28
 +#define PragTyp_STATS                         29
 +#define PragTyp_SYNCHRONOUS                   30
 +#define PragTyp_TABLE_INFO                    31
 +#define PragTyp_TEMP_STORE                    32
 +#define PragTyp_TEMP_STORE_DIRECTORY          33
 +#define PragTyp_THREADS                       34
 +#define PragTyp_WAL_AUTOCHECKPOINT            35
 +#define PragTyp_WAL_CHECKPOINT                36
 +#define PragTyp_ACTIVATE_EXTENSIONS           37
 +#define PragTyp_HEXKEY                        38
 +#define PragTyp_KEY                           39
 +#define PragTyp_REKEY                         40
 +#define PragTyp_LOCK_STATUS                   41
 +#define PragTyp_PARSER_TRACE                  42
  #define PragFlag_NeedSchema           0x01
+ #define PragFlag_ReadOnly             0x02
  static const struct sPragmaNames {
    const char *const zName;  /* Name of pragma */
    u8 ePragTyp;              /* PragTyp_XXX value */
      /* iArg:      */ SQLITE_WriteSchema|SQLITE_RecoveryMode },
  #endif
  };
- /* Number of pragmas: 57 on by default, 72 total. */
 -/* Number of pragmas: 58 on by default, 71 total. */
++/* Number of pragmas: 58 on by default, 73 total. */
  /* End of the automatically generated pragma table.
  ***************************************************************************/
  
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/tclsqlite.c
index bb6b6680008beafab83d311403382a39b2074736,b1d4dc413c504e2720daf9cbd5ef423430f8ae65..5cdaa8cbb7a8920dff5bae2ac1802bf3f194df8f
@@@ -3747,8 -3756,6 +3756,9 @@@ static void init_all(Tcl_Interp *interp
      extern int Sqlitemultiplex_Init(Tcl_Interp*);
      extern int SqliteSuperlock_Init(Tcl_Interp*);
      extern int SqlitetestSyscall_Init(Tcl_Interp*);
++#if SQLITE_ENABLE_OTA
 +    extern int SqliteOta_Init(Tcl_Interp*);
++#endif
  
  #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
      extern int Sqlitetestfts3_Init(Tcl_Interp *interp);
      Sqlitemultiplex_Init(interp);
      SqliteSuperlock_Init(interp);
      SqlitetestSyscall_Init(interp);
++#if SQLITE_ENABLE_OTA
 +    SqliteOta_Init(interp);
++#endif
  
  #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
      Sqlitetestfts3_Init(interp);
diff --cc src/test1.c
Simple merge
Simple merge
diff --cc src/wal.c
index 726afbeb2a32f3cbe53ae20bfab357d5d850f293,f2738a6727db707f6765524b3d438c2373be6a63..fcffa0f281c3bc866961178368e6dd43e5c2b191
+++ b/src/wal.c
@@@ -3162,159 -3047,6 +3162,159 @@@ int sqlite3WalCheckpoint
    return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc);
  }
  
- #endif /* SQLITE_ENABLE_OTA */
 +#ifdef SQLITE_ENABLE_OTA
 +
 +/*
 +** Step the checkpoint object passed as the first argument.
 +*/
 +int sqlite3_ckpt_step(sqlite3_ckpt *pCkpt){
 +  int rc;
 +  WalCkpt *p = (WalCkpt*)pCkpt;
 +  sqlite3_mutex_enter(p->db->mutex);
 +  rc = walCheckpointStep(p);
 +  sqlite3_mutex_leave(p->db->mutex);
 +  return rc;
 +}
 +
 +/*
 +** Close the checkpoint object passed as the first argument. If the checkpoint
 +** was completed, zero the two output variables. Otherwise, set *paState to
 +** point to a buffer containing data that may be passed to a subsequent 
 +** call to ckpt_open() to resume the checkpoint. In this case *pnState is
 +** set to the size of the buffer in bytes. The buffer should be eventually
 +** freed by the caller using sqlite3_free().
 +*/
 +int sqlite3_ckpt_close(sqlite3_ckpt *pCkpt, u8 **paState, int *pnState){
 +  int rc;
 +  WalCkpt *p = (WalCkpt*)pCkpt;
 +  sqlite3 *db = p->db;
 +  Wal *pWal = p->pWal;
 +  sqlite3_mutex_enter(db->mutex);
 +  if( paState ){
 +    *paState = 0;
 +    *pnState = 0;
 +    if( p->rc==SQLITE_OK ){
 +      u8 *aState = sqlite3_malloc(sizeof(u32) * 3);
 +      if( aState==0 ){
 +        p->rc = SQLITE_NOMEM;
 +      }else{
 +        *pnState = sizeof(u32)*3;
 +        sqlite3Put4byte(&aState[0], p->nStep);
 +        sqlite3Put4byte(&aState[4], p->pWal->hdr.aCksum[0]);
 +        sqlite3Put4byte(&aState[8], p->pWal->hdr.aCksum[1]);
 +        *paState = aState;
 +      }
 +    }
 +  }
 +  rc = walCheckpointFinalize(p);
 +  walUnlockExclusive(pWal, WAL_CKPT_LOCK, 1);
 +  pWal->ckptLock = 0;
 +  sqlite3_free(p);
 +  memset(&pWal->hdr, 0, sizeof(WalIndexHdr));
 +  sqlite3_mutex_leave(db->mutex);
 +  return rc;
 +}
 +
 +/*
 +** Open an incremental checkpoint handle.
 +*/
 +int sqlite3WalCheckpointStart(
 +  sqlite3 *db,                    /* Database connection */
 +  Wal *pWal,                      /* Wal connection */
 +  u8 *aState, int nState,         /* Checkpoint state to restore */
 +  int (*xBusy)(void*),            /* Function to call when busy */
 +  void *pBusyArg,                 /* Context argument for xBusyHandler */
 +  int sync_flags,                 /* Flags to sync db file with (or 0) */
 +  sqlite3_ckpt **ppCkpt           /* OUT: Incremental checkpoint object */
 +){
 +  WalCkpt *p = 0;
 +  int isChanged = 0;
 +  int rc;
 +  int pgsz;
 +
 +  *ppCkpt = 0;
 +  if( pWal->readOnly ) return SQLITE_READONLY;
 +  WALTRACE(("WAL%p: checkpoint begins\n", pWal));
 +  rc = walLockExclusive(pWal, WAL_CKPT_LOCK, 1);
 +  if( rc ){
 +    /* Usually this is SQLITE_BUSY meaning that another thread or process
 +    ** is already running a checkpoint, or maybe a recovery.  But it might
 +    ** also be SQLITE_IOERR. */
 +    return rc;
 +  }
 +  pWal->ckptLock = 1;
 +
 +  /* Read the wal-index header. */
 +  rc = walIndexReadHdr(pWal, &isChanged);
 +  if( rc!=SQLITE_OK ) goto ckptstart_out;
 +  if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){
 +    sqlite3OsUnfetch(pWal->pDbFd, 0, 0);
 +  }
 +
 +  pgsz = walPagesize(pWal);
 +  p = sqlite3_malloc(sizeof(WalCkpt) + pgsz);
 +  if( p==0 ){
 +    rc = SQLITE_NOMEM;
 +    goto ckptstart_out;
 +  }
 +
 +  rc = walCheckpointStart(
 +      pWal, (u8*)&p[1], pgsz, xBusy, pBusyArg, sync_flags, p
 +  );
 +  p->db = db;
 +
 +  if( rc==SQLITE_OK && aState ){
 +    if( nState!=sizeof(u32)*3 ){
 +      rc = SQLITE_CORRUPT_BKPT;
 +    }else{
 +      int i;
 +      if( pWal->hdr.aCksum[0]!=sqlite3Get4byte(&aState[4])
 +       || pWal->hdr.aCksum[1]!=sqlite3Get4byte(&aState[8])
 +      ){
 +        rc = SQLITE_MISMATCH;
 +      }else{
 +        p->nStep = (int)sqlite3Get4byte(aState);
 +        sqlite3Put4byte(&aState[4], pWal->hdr.aCksum[0]);
 +        sqlite3Put4byte(&aState[8], pWal->hdr.aCksum[1]);
 +        for(i=0; rc==SQLITE_OK && i<p->nStep; i++){
 +          u32 dummy1, dummy2; 
 +          rc = walIteratorNext(p->pIter, &dummy1, &dummy2);
 +        }
 +      }
 +    }
 +  }
 +
 + ckptstart_out:
 +  if( rc!=SQLITE_OK ){
 +    if( p ) walIteratorFree(p->pIter);
 +    walUnlockExclusive(pWal, WAL_CKPT_LOCK, 1);
 +    pWal->ckptLock = 0;
 +    sqlite3_free(p);
 +    p = 0;
 +  }
 +  *ppCkpt = (sqlite3_ckpt*)p;
 +  return rc;
 +}
++#endif /* SQLITE_ENABLE_OTA */
 +
 +/*
 +** Unless the wal file is empty, check that the 8 bytes of salt stored in
 +** the wal header are identical to those in the buffer indicated by the
 +** second argument. If they are not, return SQLITE_BUSY_SNAPSHOT. Otherwise,
 +** if the buffers match or the WAL file is empty, return SQLITE_OK.
 +*/
 +int sqlite3WalCheckSalt(Wal *pWal, sqlite3_file *pFd){
 +  int rc = SQLITE_OK;
 +  if( pWal->hdr.mxFrame>0 ){
 +    u8 aData[16];
 +    rc = sqlite3OsRead(pFd, aData, sizeof(aData), 24);
 +    if( rc==SQLITE_OK && memcmp(pWal->hdr.aSalt, aData, 8) ){
 +      rc = SQLITE_BUSY_SNAPSHOT;
 +    }
 +  }
 +  return rc;
 +}
 +
  /* Return the value to pass to a sqlite3_wal_hook callback, the
  ** number of frames in the WAL at the point of the last commit since
  ** sqlite3WalCallback() was called.  If no commits have occurred since
Simple merge
index d2a1bd2bb0c54606a3c0d655ae82eaff0d9b49b2,746fc9bb354cddfee376609419c113f9a7b77d0e..aa12433afe2fbd129c79cc2e8e9456b111189955
@@@ -109,6 -105,8 +105,9 @@@ array set ::Configs [strip_comments 
      -DSQLITE_ENABLE_MEMSYS5=1
      -DSQLITE_ENABLE_MEMSYS3=1
      -DSQLITE_ENABLE_COLUMN_METADATA=1
+     -DSQLITE_ENABLE_STAT4
++    -DSQLITE_ENABLE_OTA
+     -DSQLITE_MAX_ATTACHED=125
    }
    "Device-One" {
      -O2
Simple merge