From: dan Date: Mon, 9 Jan 2017 06:33:50 +0000 (+0000) Subject: Upgrade this branch to 3.16 plus the various fixes that appeared after its X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e32c7c2b645e0945eeb4c8c3da680d20735d71bc;p=thirdparty%2Fsqlite.git Upgrade this branch to 3.16 plus the various fixes that appeared after its release. FossilOrigin-Name: d0e212d08f82dfb5e42a156b3e2bb03dd8e21258 --- e32c7c2b645e0945eeb4c8c3da680d20735d71bc diff --cc manifest index b94ce9afa9,67b3b622ee..d78d211a93 --- a/manifest +++ b/manifest @@@ -1,10 -1,10 +1,10 @@@ - C Merge\sversion\s3.14\splus\ssome\ssubsequent\spatches\s(including\sthe\spage-cache\nperformance\spatch)\sfrom\strunk. - D 2016-08-11T19:12:25.266 - F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088 -C Ensure\sthat\s"PRAGMA\scase_sensitive_like"\sand\s"PRAGMA\sshrink_memory"\sset\sthe\nnumber\sof\soutput\scolumns\sto\s0\s(as\sthey\sare\sstatements\sthat\sreturn\sno\sdata). -D 2017-01-06T13:49:40.112 ++C Upgrade\sthis\sbranch\sto\s3.16\splus\sthe\svarious\sfixes\sthat\sappeared\safter\sits\nrelease. ++D 2017-01-09T06:33:50.719 + F Makefile.in 41bd4cad981487345c4a84081074bcdb876e4b2e F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 - F Makefile.msc d66d0395c38571aab3804f8db0fa20707ae4609a + F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 - F VERSION 25e2e333adeff5965520bc8db999c658898c972d + F VERSION cddd8d88dc8202afa0ebc96da61fc4acbd1e96a5 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 @@@ -309,7 -312,7 +312,7 @@@ F ext/userauth/userauth.c 5fa3bdb492f48 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 - F main.mk 67e7995f96dcb48ec0ece72901ba2cd2a2b50437 -F main.mk 2cf5f0362c5687fd8e912c3a327b49a2e8ba0f9b ++F main.mk a85772b3c9f3ba0a0f85e9f1c4e1151c5779c860 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 @@@ -321,36 -324,37 +324,37 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a - F src/alter.c cc28ab933ae615b22add0d609794ffb6596b42ea - F src/analyze.c 37fedc80ac966ce1745811746e68e4d8fa64c7fe - F src/attach.c 771153bd1f4ab0b97a44a13dde2c7e5e1efeba22 - F src/auth.c 5c8e0f37f785f935f589496801edd19840485853 - F src/backup.c 17cd25a36d49330df2bacd2cadf2a61f3b525976 - F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63 - F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 - F src/btree.c 8872dcc869d648ccc0b95834fc7e81cf49c456f7 - F src/btree.h c23154635a447f37308865ce09b5d1dd2e9deef0 - F src/btreeInt.h ca40607c2c9d4b4b7ded98e3d707b15c2f17f1bf - F src/build.c e3b41d597d4f6f24cee6bde1e64c648b1c3983ca + F src/alter.c 3b23977620ce9662ac54443f65b87ba996e36121 + F src/analyze.c 3c4a63ff7a55faefecf6eb1589932fdbc06b2415 + F src/attach.c 8c476f8bd5d2afe11d925f890d30e527e5b0ce43 + F src/auth.c 930b376a9c56998557367e6f7f8aaeac82a2a792 + F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b + F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 + F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca -F src/btree.c d2c100618784bd89c089fcef03ff6e789768ecae -F src/btree.h 2349a588abcd7e0c04f984e15c5c777b61637583 -F src/btreeInt.h 10c4b77c2fb399580babbcc7cf652ac10dba796e -F src/build.c 9e799f1edd910dfa8a0bc29bd390d35d310596af ++F src/btree.c 5e5bf5079aae45b91e71eb087f3eddd28deafafe ++F src/btree.h 9306cfe42eed20cf2d0e407172704f5193af26cc ++F src/btreeInt.h bade42398d4dcadd2263c6d17886e812e2471e87 ++F src/build.c efef69bbc7d0729a9b1e6d71f1047d0c5e1cdb5b F src/callback.c 2e76147783386374bf01b227f752c81ec872d730 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e - F src/ctime.c e77f3dc297b4b65c96da78b4ae4272fdfae863d7 - F src/date.c 95c9a8d00767e7221a8e9a31f4e913fc8029bf6b - F src/dbstat.c 4f6f7f52b49beb9636ffbd517cfe44a402ba4ad0 - F src/delete.c 4aba4214a377ce8ddde2d2e609777bcc8235200f - F src/expr.c 9c5eca8602f6c496e8d4eefefe2aae3d831dd510 - F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb - F src/fkey.c bc4145347595b7770f9a598cff1c848302cf5413 - F src/func.c 29cc9acb170ec1387b9f63eb52cd85f8de96c771 - F src/global.c c45ea22aff29334f6a9ec549235ac3357c970015 - F src/hash.c 55b5fb474100cee0b901edaf203e26c970940f36 + F src/ctime.c 9f2296a4e5d26ebf0e0d95a0af4628f1ea694e7a + F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e + F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d + F src/delete.c c8bc10d145c9666a34ae906250326fdaa8d58fa5 + F src/expr.c f06f41e5e5daca10fb090e70a2502dcc0dbc992b + F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 + F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae + F src/func.c c67273e1ec08abbdcc14c189892a3ff6eeece86b + F src/global.c 4a34512d82fc5aa13c802db06bcfff5e1d3de955 + F src/hash.c 63d0ee752a3b92d4695b2b1f5259c4621b2cfebd F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4 F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da - F src/insert.c 8f4e9fcbd8e95e85f15647ba8b413b18d556ec2b + F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 + F src/insert.c 7af46a3be2656f5e13791464625d93d6b07b8612 F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e - F src/loadext.c dd7a2b77902cc66c22555aef02e1a682554b7aec - F src/main.c 16c1b2114eae8804caf3a8de8cb47bf2c6d83ad3 - F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec + F src/loadext.c 5d6642d141c07d366e43d359e94ec9de47add41d + F src/main.c e207b81542d13b9f13d61e78ca441f9781f055b0 + F src/malloc.c f3fad34cd570022abca558c573f1761fb09a8212 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 @@@ -368,28 -372,28 +372,28 @@@ F src/os.c add02933b1dce7a39a005b00a2f5 F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343 F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85 F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 - F src/os_unix.c be9ca0f901a2b6c1bc93dc338f4863675180c189 - F src/os_win.c 520f23475f1de530c435d30b67b7b15fe90874b0 + F src/os_unix.c 30e2c43e4955db990e5b5a81e901f8aa74cc8820 + F src/os_win.c cf90abd4e50d9f56d2c20ce8e005aff55d7bd8e9 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a - F src/pager.c bd4867fbbe328bbb5f0669d60e3c16ac03dd776f - F src/pager.h 3ae6549ec75fe9f36b426a274788a31b1b2b2203 - F src/parse.y e87265f23548aed30b331fb86b4712e1c13c4673 - F src/pcache.c 5583c8ade4b05075a60ba953ef471d1c1a9c05df -F src/pager.c 9dc72d23eebbdf992bd69f2ab954d0d3a27c7340 -F src/pager.h d1e944291030351f362a0a7da9b5c3e34e603e39 -F src/parse.y 29153738a7322054359320eb00b5a4cd44389f20 ++F src/pager.c e5b8c9a975e0c208bc8886bf83b8780b6e578ac5 ++F src/pager.h 0105583b49a9126b9d137f98ec57caefc64f51d4 ++F src/parse.y bb387a078f2f7f78e5362479bfef4a05b9fd40b8 + F src/pcache.c 51070ec9b8251bbf9c6ea3d35fd96a458752929e F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490 - F src/pcache1.c 4bb7a6a5300c67d0b033d25adb509c120c03e812 - F src/pragma.c c8b499756658cb8b82cfdbb5845c22cf11f297aa - F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c - F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e - F src/printf.c a5f0ca08ddede803c241266abb46356ec748ded1 - F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 - F src/resolve.c 0392c6686586b1d4dac9a4106959f03ddd70e9aa + F src/pcache1.c e3967219b2a92b9edcb9324a4ba75009090d3953 + F src/pragma.c 0e7a7c6f1c6fd8ff50c0fff65b8bb80174bc49c5 + F src/pragma.h 61aa5389118594bebb28120a6720401aee34ce1a + F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a + F src/printf.c ff10a9b9902cd2afe5f655f3013c6307d969b1fd + F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 + F src/resolve.c bb070cf5f23611c44ab7e4788803684e385fc3fb F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac - F src/select.c f3c6e9065fb34f6a23af27ec7f1f717ffbfc2ee4 - F src/shell.c 79dda477be6c96eba6e952a934957ad36f87acc7 - F src/sqlite.h.in 0f7580280d1b009b507d8beec1ff0f197ba0cc99 + F src/select.c 4437d9d5d56b6ffdedabf394c7fe3a07ff521ce9 + F src/shell.c 6095531aa900decdaa765e0f3993fba7153c92c1 + F src/sqlite.h.in 29bda4bee01248a5650567d7a22fac39bad1b542 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae - F src/sqliteInt.h cf506e205f4b15618f5f0787e45d40fafc8ff42c -F src/sqliteInt.h 9fdfb8789b27a621f3401468bc1705c32308f877 ++F src/sqliteInt.h 0081f4d95b49a1accc29e5c96cf35296d0f68098 F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247 F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1 F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9 @@@ -407,13 -411,14 +411,14 @@@ F src/test_async.c 195ab49da082053fdb0f F src/test_autoext.c 915d245e736652a219a907909bb6710f0d587871 F src/test_backup.c bf5da90c9926df0a4b941f2d92825a01bbe090a0 F src/test_bestindex.c d23f80d334c59662af69191854c76b8d3d0c8c96 - F src/test_blob.c a0f7ad49a0c9d4b72f693fe2a71c58d7e507174d + F src/test_blob.c 6a4c7920d1d9c6cc0f7aa50c89c4f80016aeda83 F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274 - F src/test_config.c 0e3fbf51a9e56a50b80d52bba032e295fae76848 -F src/test_config.c 83179ea845479b5be9a651d014649e3f2722a1fe ++F src/test_config.c f3b4459a0c65933783030fb4a05073571f8fa897 + F src/test_delete.c 8499d4d323f2ec8e28301deb3d6ddd8eef8b8139 F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e F src/test_devsym.c 4e58dec2602d8e139ca08659f62a62450587cb58 - F src/test_fs.c ac62ce7d5c0c23aa6932891cad5746945564c91c - F src/test_func.c a2b4993da973b0ea60dd5d51a7066238ede8c329 + F src/test_fs.c e16cbe68d3b107e00a907c20a9a02629870eb69b + F src/test_func.c a4fdab3363b436c1b12660e9362ce3f3782b7b5e F src/test_hexio.c 1d4469ca61ab202a1fcec6543f584d2407205e8d F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664 F src/test_intarray.c 988fc61cb0ff539f4172c0d95f15287c92516f64 @@@ -439,35 -444,35 +444,35 @@@ F src/test_tclvar.c df9fe1213c2634687a9 F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858 F src/test_vfs.c f0186261a24de2671d080bcd8050732f0cb64f6e F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698 - F src/test_windirent.c 8f5fada630348558d5745b334702f301da1ffc61 - F src/test_windirent.h b12055cab6227f7be10f5c19296f67c60cc5e2a5 + F src/test_windirent.c 600398db0198ca1c77ca183831bf456746b6f5c4 + F src/test_windirent.h 7edc57e2faa727026dbd5d010dd0e2e665d5aa01 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c - F src/tokenize.c 78c8085bc7af1922aa687f0f4bbd716821330de5 - F src/treeview.c c56d6ddbed564efda746236b35bcbb8238daac4b - F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280 - F src/update.c 4f05ea8cddfa367d045e03589756c02199e8f9bd + F src/tokenize.c 5c2f516876fc27fbd7753913f032f49eb89e83b5 + F src/treeview.c 4e44ade3bfe59d82005039f72e09333ce2b4162c + F src/trigger.c c9f0810043b265724fdb1bdd466894f984dfc182 + F src/update.c 1da7c462110bffed442a42884cb0d528c1db46d8 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c - F src/util.c 810ec3f22e2d1b62e66c30fe3621ebdedd23584d - F src/vacuum.c ca88e6d3f5270533dea68e21008493b10023c214 - F src/vdbe.c 75556e9cd0fefd200515133af759205e48e9fb33 - F src/vdbe.h 67bc551f7faf04c33493892e4b378aada823ed10 - F src/vdbeInt.h c59381049af5c7751a83456c39b80d1a6fde1f9d - F src/vdbeapi.c c3f6715a99995c11748ecad91d25e93fd9fc390b - F src/vdbeaux.c e46568111862599cf475e7cdcbc1322551064906 - F src/vdbeblob.c 83d2d266383157b02e2b809350bb197e89d7895b - F src/vdbemem.c 1ecaa5ee0caff07255f25d04e8dc88befb6f88d1 - F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c + F src/util.c a88b0466fddf445ce752226d4698ca3faada620a -F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16 -F src/vdbe.c 88bd6c32b333580d2661ac3afe33369757fb1522 ++F src/vacuum.c ebcf45799c7a82729a496ef5b65c5d3b2715ef8e ++F src/vdbe.c 0254dc5bfb4d00b5ccc359332eeef26eb66dc5ee + F src/vdbe.h b0866e4191f096f1c987a84b042c3599bdf5423b + F src/vdbeInt.h 281cb70332dc8b593b8c7afe776f3a2ba7d4255e + F src/vdbeapi.c d6ebaa465f070eb1af8ba4e7b34583ece87bdd24 -F src/vdbeaux.c 35c9a9908174e5a26c96d15e1f98214814a39147 ++F src/vdbeaux.c d1e423b8a659705cbad5a502a219fba22f306048 + F src/vdbeblob.c f4f98ea672b242f807c08c92c7faaa79e5091b65 + F src/vdbemem.c 3b5a9a5b375458d3e12a50ae1aaa41eeec2175fd + F src/vdbesort.c eda25cb2d1727efca6f7862fea32b8aa33c0face F src/vdbetrace.c 41963d5376f0349842b5fc4aaaaacd7d9cdc0834 - F src/vtab.c 6b3cfaff7e4397739d6b48511e777ca58c6d06d4 + F src/vtab.c c4bbe0f870f52036553f8098aee0703997f0577a F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 - F src/wal.c 8605bf47b9d0c0202b14b36cadb4de22ab1d4f84 - F src/wal.h 520cb6942a265ac3d172e634266329a46e8c5b70 - F src/walker.c 2d2cc7fb0f320f7f415215d7247f3c584141ac09 - F src/where.c 5c9df42d50888be8274a5a0eb062eb0629869bd3 - F src/whereInt.h e5b939701a7ceffc5a3a8188a37f9746416ebcd0 - F src/wherecode.c 99707d11907c71d289ee9553d2d1a22f1fd8ba41 - F src/whereexpr.c 98ce9f3b8d92b6f741b9f3498f9619695739256e -F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344 -F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71 ++F src/wal.c 2858e71b30d521c80949fa10ed6b116367865594 ++F src/wal.h 8659519a248ef0f33e575b20ab04211cebe1f430 + F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0 + F src/where.c 6bbf9284f4f15a6fa48663d033870cc0d7f5ee66 + F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d + F src/wherecode.c e04ac8f24c3ac8621df6c3be3ac8c7d4fa893745 + F src/whereexpr.c 87ecdf24beba4498e4380b31c4131febb0a6ceaa F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@@ -528,10 -533,10 +533,11 @@@ F test/backup_malloc.test 0c9abdf74c51e F test/badutf.test d5360fc31f643d37a973ab0d8b4fb85799c3169f F test/badutf2.test f5bc7f2d280670ecd79b9cf4f0f1760c607fe51f F test/bc_common.tcl b5e42d80305be95697e6370e015af571e5333a1c +F test/bc_test1.c e0a092579552e066ed4ce7bcdaecfa69c4aacc8d F test/bestindex1.test 0cf1bd2d7b97d3a3a8c10736125274f64765c4ee F test/bestindex2.test 4a06b8922ab2fd09434870da8d1cdf525aaf7060 - F test/bestindex3.test dd5fa4f483cd0356549203c4522f8c9e21cb1fc0 + F test/bestindex3.test 578b6a52dab819e63f28e3640e04b32c85aed320 + F test/bestindex4.test 4cb5ff7dbaebadb87d366f51969271778423b455 F test/between.test 34d375fb5ce1ae283ffe82b6b233e9f38e84fc6c F test/bigfile.test aa74f4e5db51c8e54a1d9de9fa65d01d1eb20b59 F test/bigfile2.test 1b489a3a39ae90c7f027b79110d6b4e1dbc71bfc @@@ -1311,8 -1337,8 +1341,9 @@@ F test/triggerB.test 56780c031b454abac2 F test/triggerC.test 302d8995f5ffe63bbc15053abb3ef7a39cf5a092 F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650 F test/triggerE.test 15fa63f1097db1f83dd62d121616006978063d1f + F test/triggerF.test 55b1eb13433997faac3a4948c1d8252f6c8c636b F test/tt3_checkpoint.c 9e75cf7c1c364f52e1c47fd0f14c4340a9db0fe1 +F test/tt3_core.c 8cd89ead95410f70e7fb02c79f1e040f9c5ad5cf F test/tt3_index.c 39eec10a35f57672225be4d182862152896dee4a F test/tt3_lookaside1.c 0377e202c3c2a50d688cb65ba203afeda6fafeb9 F test/tt3_stress.c c57d804716165811d979d4a719e05baccd79277f @@@ -1427,12 -1455,12 +1460,12 @@@ F test/wordcount.c 06efb84b7c48a4973c2c F test/zeroblob.test 3857870fe681b8185654414a9bccfde80b62a0fa F test/zerodamage.test e59a56443d6298ecf7435f618f0b27654f0c849e F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5 - F tool/GetTclKit.bat 629d87562e0487c386db630033931d12d62e6372 + F tool/GetTclKit.bat f94784e3bdc2f50c539266f5467cbf1f27612cb3 F tool/Replace.cs 02c67258801c2fb5f63231e0ac0f220b4b36ba91 - F tool/addopcodes.tcl a776c2060ccb3367c470779eb2b91268a0a56fde - F tool/build-all-msvc.bat 3e4e4043b53f1aede4308e0d2567bbd773614630 x -F tool/addopcodes.tcl 10c889c4a65ec6c5604e4a47306fa77ff57ae189 ++F tool/addopcodes.tcl f2e9aba2c2c718624fa14059198456d9e519b925 + F tool/build-all-msvc.bat 018c1b273458a90c8ba633c6f0c5654cfcb138bf x F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367 - F tool/cg_anno.tcl 692ce4b8693d59e3a3de77ca97f4139ecfa641b0 x + F tool/cg_anno.tcl f95b0006c52cf7f0496b506343415b6ee3cdcdd3 x F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2 F tool/dbhash.c a06228aa21ebc4e6ea8daa486601d938499238a5 F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2 @@@ -1515,7 -1543,7 +1548,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 2c61b7ab1808d5576a21fea84c3f414db51abfa5 ed406d31ff54ee3de8db91690a966e5c561f8f94 - R 6144d43db42087097a2449fa8c85b94a - U drh - Z 204e3a86f7529a03a274de60935ccb45 -P 609ac1c73f7c2b48a571c178a72383996a9538fe -R 812971df62a9791f0bfb0122470a2213 ++P d9f8918c5b7b6c8540b3f433142e1b4aa4433885 6696cd1878be4bd44a24841b04163e52d847711e ++R 47f5758f699f0ce7270fcc21bb40e26e + U dan -Z ebefd6b7654323e8a23a6cf648753c0a ++Z 398299ab95e9ac138577a5fdad763428 diff --cc manifest.uuid index 51761e50c2,865cc47649..a10503843d --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - d9f8918c5b7b6c8540b3f433142e1b4aa4433885 -6696cd1878be4bd44a24841b04163e52d847711e ++d0e212d08f82dfb5e42a156b3e2bb03dd8e21258 diff --cc src/pager.c index 240bbb5f63,5813b4db47..a7e83242dd --- a/src/pager.c +++ b/src/pager.c @@@ -2083,10 -2064,11 +2114,10 @@@ static int pager_end_transaction(Pager } #endif - sqlite3BitvecDestroy(pPager->pInJournal); - pPager->pInJournal = 0; + pagerFreeBitvecs(pPager); pPager->nRec = 0; if( rc==SQLITE_OK ){ - if( pagerFlushOnCommit(pPager, bCommit) ){ + if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){ sqlite3PcacheCleanAll(pPager->pPCache); }else{ sqlite3PcacheClearWritable(pPager->pPCache); @@@ -5380,105 -5364,27 +5429,37 @@@ static int getPageNormal int flags /* PAGER_GET_XXX flags */ ){ int rc = SQLITE_OK; - PgHdr *pPg = 0; - u32 iFrame = 0; /* Frame to read from WAL file */ - const int noContent = (flags & PAGER_GET_NOCONTENT); - - /* It is acceptable to use a read-only (mmap) page for any page except - ** page 1 if there is no write-transaction open or the ACQUIRE_READONLY - ** flag was specified by the caller. And so long as the db is not a - ** temporary or in-memory database. */ - const int bMmapOk = (pgno>1 && USEFETCH(pPager) - && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY)) - #ifdef SQLITE_HAS_CODEC - && pPager->xCodec==0 - #endif - ); + PgHdr *pPg; + u8 noContent; /* True if PAGER_GET_NOCONTENT is set */ + sqlite3_pcache_page *pBase; - /* Optimization note: Adding the "pgno<=1" term before "pgno==0" here - ** allows the compiler optimizer to reuse the results of the "pgno>1" - ** test in the previous statement, and avoid testing pgno==0 in the - ** common case where pgno is large. */ - if( pgno<=1 && pgno==0 ){ - return SQLITE_CORRUPT_BKPT; - } + assert( pPager->errCode==SQLITE_OK ); assert( pPager->eState>=PAGER_READER ); assert( assert_pager_state(pPager) ); - assert( noContent==0 || bMmapOk==0 ); - assert( pPager->hasHeldSharedLock==1 ); +#ifndef SQLITE_OMIT_CONCURRENT + /* If this is an CONCURRENT transaction and the page being read was + ** present in the database file when the transaction was opened, + ** mark it as read in the pAllRead vector. */ + if( pPager->pAllRead && pgno<=pPager->dbOrigSize ){ + rc = sqlite3BitvecSet(pPager->pAllRead, pgno); + if( rc!=SQLITE_OK ) goto pager_acquire_err; + } +#endif + - /* If the pager is in the error state, return an error immediately. - ** Otherwise, request the page from the PCache layer. */ - if( pPager->errCode!=SQLITE_OK ){ - rc = pPager->errCode; - }else{ - if( bMmapOk && pagerUseWal(pPager) ){ - rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame); - if( rc!=SQLITE_OK ) goto pager_acquire_err; - } - - if( bMmapOk && iFrame==0 ){ - void *pData = 0; - - rc = sqlite3OsFetch(pPager->fd, - (i64)(pgno-1) * pPager->pageSize, pPager->pageSize, &pData - ); - - if( rc==SQLITE_OK && pData ){ - if( pPager->eState>PAGER_READER || pPager->tempFile ){ - pPg = sqlite3PagerLookup(pPager, pgno); - } - if( pPg==0 ){ - rc = pagerAcquireMapPage(pPager, pgno, pData, &pPg); - }else{ - sqlite3OsUnfetch(pPager->fd, (i64)(pgno-1)*pPager->pageSize, pData); - } - if( pPg ){ - assert( rc==SQLITE_OK ); - *ppPage = pPg; - return SQLITE_OK; - } - } - if( rc!=SQLITE_OK ){ - goto pager_acquire_err; - } - } - - { - sqlite3_pcache_page *pBase; - pBase = sqlite3PcacheFetch(pPager->pPCache, pgno, 3); - if( pBase==0 ){ - rc = sqlite3PcacheFetchStress(pPager->pPCache, pgno, &pBase); - if( rc!=SQLITE_OK ) goto pager_acquire_err; - if( pBase==0 ){ - pPg = *ppPage = 0; - rc = SQLITE_NOMEM_BKPT; - goto pager_acquire_err; - } - } - pPg = *ppPage = sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pBase); - assert( pPg!=0 ); - } - } - - if( rc!=SQLITE_OK ){ - /* Either the call to sqlite3PcacheFetch() returned an error or the - ** pager was already in the error-state when this function was called. - ** Set pPg to 0 and jump to the exception handler. */ + if( pgno==0 ) return SQLITE_CORRUPT_BKPT; + pBase = sqlite3PcacheFetch(pPager->pPCache, pgno, 3); + if( pBase==0 ){ pPg = 0; - goto pager_acquire_err; + rc = sqlite3PcacheFetchStress(pPager->pPCache, pgno, &pBase); + if( rc!=SQLITE_OK ) goto pager_acquire_err; + if( pBase==0 ){ + rc = SQLITE_NOMEM_BKPT; + goto pager_acquire_err; + } } + pPg = *ppPage = sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pBase); assert( pPg==(*ppPage) ); assert( pPg->pgno==pgno ); assert( pPg->pPager==pPager || pPg->pPager==0 ); diff --cc src/pager.h index 03f1bd5c84,dd57f598bd..60a844c713 --- a/src/pager.h +++ b/src/pager.h @@@ -172,9 -172,8 +172,9 @@@ int sqlite3PagerOpenSavepoint(Pager *pP int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint); int sqlite3PagerSharedLock(Pager *pPager); + #ifndef SQLITE_OMIT_WAL - int sqlite3PagerCheckpoint(Pager *pPager, int, int*, int*); + int sqlite3PagerCheckpoint(Pager *pPager, sqlite3*, int, int*, int*); int sqlite3PagerWalSupported(Pager *pPager); int sqlite3PagerWalCallback(Pager *pPager); int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); diff --cc src/parse.y index afa37c84a8,c9dbc767cd..fa2aef17a7 --- a/src/parse.y +++ b/src/parse.y @@@ -100,18 -91,6 +91,13 @@@ struct LimitVal */ struct TrigEvent { int a; IdList * b; }; - /* - ** An instance of this structure holds the ATTACH key and the key type. - */ - struct AttachKey { int type; Token key; }; - +/* +** Generate a syntax error +*/ +static void parserSyntaxError(Parse *pParse, Token *p){ + sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", p); +} + /* ** Disable lookaside memory allocation for objects that might be ** shared across database connections. @@@ -901,10 -901,10 +917,10 @@@ expr(A) ::= VARIABLE(X). assert( t.n>=2 ); spanSet(&A, &t, &t); if( pParse->nested==0 ){ - sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); + parserSyntaxError(pParse, &t); A.pExpr = 0; }else{ - A.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &t); + A.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); if( A.pExpr ) sqlite3GetInt32(&t.z[1], &A.pExpr->iTable); } } diff --cc src/wal.h index 0c1fb52a51,4f6d01dad6..5243bca162 --- a/src/wal.h +++ b/src/wal.h @@@ -130,17 -131,9 +131,18 @@@ int sqlite3WalHeapMemory(Wal *pWal) #ifdef SQLITE_ENABLE_SNAPSHOT int sqlite3WalSnapshotGet(Wal *pWal, sqlite3_snapshot **ppSnapshot); void sqlite3WalSnapshotOpen(Wal *pWal, sqlite3_snapshot *pSnapshot); + int sqlite3WalSnapshotRecover(Wal *pWal); #endif +#ifndef SQLITE_OMIT_CONCURRENT +/* Tell the wal layer that we want to commit a concurrent transaction */ +int sqlite3WalLockForCommit(Wal *pWal, PgHdr *pPg, Bitvec *pRead); + +/* Upgrade the state of the client to take into account changes written +** by other connections */ +int sqlite3WalUpgradeSnapshot(Wal *pWal); +#endif /* SQLITE_OMIT_CONCURRENT */ + #ifdef SQLITE_ENABLE_ZIPVFS /* If the WAL file is not empty, return the number of bytes of content ** stored in each frame (i.e. the db page-size when the WAL was created). diff --cc tool/addopcodes.tcl index 1922c7d22a,a6c58f1a25..eae40b3818 --- a/tool/addopcodes.tcl +++ b/tool/addopcodes.tcl @@@ -37,8 -37,8 +37,10 @@@ set extras UMINUS UPLUS REGISTER + EXCLUSIVE + CONCURRENT + VECTOR + SELECT_COLUMN ASTERISK SPAN SPACE