From: drh Date: Wed, 28 Jan 2015 12:00:40 +0000 (+0000) Subject: Merge in all changes from trunk. X-Git-Tag: version-3.8.11~252^2~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=120b3a4f6112149c58d6f2ddd7e8e9498d9b201a;p=thirdparty%2Fsqlite.git Merge in all changes from trunk. FossilOrigin-Name: 17c69be80542c5f84e21d60df3edc49422b087d9 --- 120b3a4f6112149c58d6f2ddd7e8e9498d9b201a diff --cc manifest index 96dcf87dd3,5e1d55e7c7..e60c8e7d07 --- a/manifest +++ 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 3420b8955c,fe72374448..2bbf8096d1 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 69a312ad3fe5b39bc394b9ce958cb63d734518c7 -e7d2ec048c88237c124fbe598f8f7e950d43d90f ++17c69be80542c5f84e21d60df3edc49422b087d9 diff --cc src/pragma.c index 1eaa98ae29,34830e33a6..51c8d6feed --- a/src/pragma.c +++ b/src/pragma.c @@@ -53,25 -53,25 +53,26 @@@ #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 */ @@@ -485,7 -477,7 +492,7 @@@ /* 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/tclsqlite.c index bb6b668000,b1d4dc413c..5cdaa8cbb7 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@@ -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); @@@ -3792,7 -3799,6 +3802,9 @@@ 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/wal.c index 726afbeb2a,f2738a6727..fcffa0f281 --- a/src/wal.c +++ b/src/wal.c @@@ -3162,159 -3047,6 +3162,159 @@@ int sqlite3WalCheckpoint return (rc==SQLITE_OK && eMode!=eMode2 ? SQLITE_BUSY : rc); } +#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 && inStep; 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; +} - #endif /* SQLITE_ENABLE_OTA */ + /* 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 diff --cc test/releasetest.tcl index d2a1bd2bb0,746fc9bb35..aa12433afe --- a/test/releasetest.tcl +++ b/test/releasetest.tcl @@@ -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