]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge the latest trunk enhancements into the reuse-schema branch.
authordrh <>
Tue, 25 Jan 2022 16:28:57 +0000 (16:28 +0000)
committerdrh <>
Tue, 25 Jan 2022 16:28:57 +0000 (16:28 +0000)
FossilOrigin-Name: 6e4154d414afe2562b488149b10c175d1f15bd1d5060ee479d5ae9386a2e277e

18 files changed:
1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/alter.c
src/attach.c
src/build.c
src/pragma.c
src/prepare.c
src/shell.c.in
src/sqlite.h.in
src/sqliteInt.h
src/trigger.c
src/vdbe.c
src/vdbeaux.c
src/vdbeblob.c
src/vtab.c

diff --cc Makefile.in
Simple merge
diff --cc Makefile.msc
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 4587bf78d2a369d18cec67b506959f60e224eb1a,f8d24f4d54d051bfc26b611ed0585e0818ae2f11..5ae8b1c33f5bdf7bb0609e7c4aa4d4c9c55c6678
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Merge\sthe\slatest\strunk\schanges\sinto\sthe\sreuse-schema\sbranch.
- D 2022-01-17T20:01:45.258
 -C Minor\sadjustment\sto\serror\shandling\sin\ssqlite3FinishCoding().
 -D 2022-01-25T00:03:25.602
++C Merge\sthe\slatest\strunk\senhancements\sinto\sthe\sreuse-schema\sbranch.
++D 2022-01-25T16:28:57.562
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 432103ef6d3fda75aa6b06a13f8c4a222c4f11a708be9ece7ffbc0adea352fce
 -F Makefile.in 3271f3cffa0fb1e214816bbffbdb8a367f8d3b8415eda5346839cf427a138c70
++F Makefile.in 82069b51d0b276cb7074baa14a1b2a3780db9b8fae32e96e0c51642dc9f1c3f9
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc d956d19bcb9ffb0b65876bd7406e8e595b67fae8eaa4fab8b6ddab9c670e8507
 -F Makefile.msc eeb45109d245d1bc5d6ce78da818d62848307419f950b0de0a00ab0672b15081
++F Makefile.msc 920fec6fe02a08c807f964beb694d0f2f9fddce8b324684e317c0404b2fc7d69
  F README.md 2dd87a5c1d108b224921f3dd47dea567973f706e1f6959386282a626f459a70c
  F VERSION 392c2f83569705069415a5d98b1c138ec8fe8a56a663a0d94cea019e806537b2
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -473,7 -473,7 +474,7 @@@ F ext/userauth/userauth.c 7f00cded7dcaa
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 6b1db6adea5d81dc3a276c18382042a589a7836042dc24184e0683df96d8fc2b
 -F main.mk 3de4bca45fee4b843aaf74df8ffc639aa8ae3c52af997bbbd6927add30154fda
++F main.mk a5c6c5e8b48db691d862e4b5c2d38e0c164095aaa5c709f833793a808c1f1c44
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -485,25 -485,25 +486,25 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 99491075e8fa54c603079891ec21186c1f3107bd23bff483dcb140ee6f45ac42
 -F src/alter.c e8ac1df663bf4ec74920edd1299435f2a616d2404de0ac4013c151ea4e7a11f2
 -F src/analyze.c 7518b99e07c5494111fe3bd867f28f804b6c5c1ad0703ec3d116de9bab3fa516
 -F src/attach.c f26d400f3ffe2cdca01406bca70e5f58c5488bf165b4fc37c228136dfcf1b583
++F src/alter.c 8b4666867e919cae666dbd25384eeda184b5234ab36199662b32684cd4e6bfd0
 +F src/analyze.c b619f92ad33aa38c234d9620f576bceef56465088ed37f28c56d136a15c1a909
- F src/attach.c 173d0cadb5eeee2c5ac59400955a821fd80095bb248e21c99194dc84cc214078
++F src/attach.c f8ca7d5c85edad72f2f21a9ae0589a93c75376938b90bdb6de777ce6aae1fb3d
  F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
- F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
+ F src/backup.c 58880b9a9adf88f1a57cb3b0db6b891626ae76113ebd0f2417a87c2634edfc65
  F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
  F src/btree.c ddab31c38d5f16114bc68392430556b1063fe14e0020f9a56d2c35ddd58ba7e3
  F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
  F src/btreeInt.h ee9348c4cb9077243b049edc93a82c1f32ca48baeabf2140d41362b9f9139ff7
- F src/build.c 0be2d1e306cd0bdfde641446108fbb12e1cf8d2e01356e1f62bc805333bf020a
 -F src/build.c 9329120c4522d1ad881b9e62108870c8a5e994e31f4d813d0eb3de323d25e362
 -F src/callback.c 4c19af69835787bfe790ac560f3071a824eb629f34e41f97b52ce5235c77de1c
++F src/build.c e47080c4ccf6f480b5764de136850c17e028f4ebf24bfc6f27f0a8e37bc8c6eb
 +F src/callback.c f733593c95ed7ab24e0a0f57db6755b9bd433862d187766ec9f161ef7c79efeb
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 -F src/ctime.c 2cce39df1a13e05b7633e6d21b651f21492471f991dd7b323a4ee4e7b7f0b7f1
 +F src/ctime.c da293ceb565f07ad8ced251417913aec93030334d479dd4ce79946f7af464b0d
- F src/date.c ab8e01d928f201f5dee0bc6d54d6702fdcec96dff4d58c387447671f6a46d191
+ F src/date.c e25773f06a8f9043bfa1e5fa0bee93483c41933adfff0891752f00eadd12ab1c
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 861e08690fcb0f2ee1165eff0060ea8d4f3e2ea10f80dab7d32ad70443a6ff2d
- F src/delete.c 19814f621cde10b1771a0dea7fe25d3d7d39975b8d4be4888537d30860e7c08c
- F src/expr.c 827179c78d2ca7cc318392811de8151c60eacf7ce804b13e61bb7ef38f954846
+ F src/delete.c 52897a8516dc40753503c25eed0e305f09cc50ae474f22b0b4fd31d3b879cc08
+ F src/expr.c 9658bccd1598211ace848c8ca9480dbf8be08dfee1db5cf03897b34b7b6e8fef
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
  F src/fkey.c 5b73f7a7c00f06017531a5bd258cbc2c7a294e55a7f84a729fe27aa525242560
  F src/func.c 8fddc42bce95d17938252a543f86fe29e479366e80fbd112a1822913b6247776
@@@ -512,12 -512,12 +513,12 @@@ F src/hash.c 8d7dda241d0ebdafb6ffdeda31
  F src/hash.h 3340ab6e1d13e725571d7cee6d3e3135f0779a7d8e76a9ce0a85971fa3953c51
  F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c e528416ff5d86fc5d656ea6a26f03fde39836b6175f93048c32a03cb2ee16743
- F src/json.c 78fdec9af3a8bfb5ae685707b2701276fec1942b8f5f26689b2701debe32bcd2 w ext/misc/json1.c
+ F src/insert.c 1eea44389de3768ac98588c1410171cd53e7c6ad1af74049983dcbac82093de0
+ F src/json.c 78fdec9af3a8bfb5ae685707b2701276fec1942b8f5f26689b2701debe32bcd2
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 95db1fe62c5973f1c5d9c53f6083e21a73ece14cdd47eeca0639691332e85c4d
+ F src/loadext.c 657534339585ac234839e5187aa51d8802f292e0771c4f874b3af1f1223f81e2
 -F src/main.c 2b6b0dbfeb14d4bb57e368604b0736b2aa42b51b00339d399b01d6b1fc9b4960
 +F src/main.c 4c4bbf25bad9ec76e795e6b8dace2d43b09ff12fb498ce64a0101b371f4fa6e9
- F src/malloc.c ef796bcc0e81d845d59a469f1cf235056caf9024172fd524e32136e65593647b
+ F src/malloc.c fec841aa0a0400a6f7d20706178a5d8e8219a6bf562b6fe712c17f6c26813266
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
  F src/mem2.c c8bfc9446fd0798bddd495eb5d9dbafa7d4b7287d8c22d50a83ac9daa26d8a75
@@@ -545,24 -545,24 +546,24 @@@ F src/parse.y 04f61db1cdd7036c6d74baad1
  F src/pcache.c 084e638432c610f95aea72b8509f0845d2791293f39d1b82f0c0a7e089c3bb6b
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c 54881292a9a5db202b2c0ac541c5e3ef9a5e8c4f1c1383adb2601d5499a60e65
- F src/pragma.c 401df25173a16e13923af6e4cb6c5a2fb14106117ac0a4ec1f419f0e696d22f5
 -F src/pragma.c 7c024d690a3dc93f61830f11f900e4af2357f31d081b0c79099ca5e28919cba7
 -F src/pragma.h 87330ed2fbfa2a1274de93ca0ab850fba336189228cb256089202c3b52766fad
 -F src/prepare.c 1e23522c934d90ff42de1b9b4f782fdf0fb690b06b92d7480b471ccb2b5899ea
++F src/pragma.c 770a2ce23196a4d6b88026848ec2a347264fb2e23efc0a0a0ce58e55c99680a1
 +F src/pragma.h 270bff5fefbc3c56ddcb5627d706904ec289853a5ef65662f6fac810b5a1923f
- F src/prepare.c fef7f03101792f41e0a501bbbe0022a11b2d99b1e9385f5b1bd50120efa69f00
++F src/prepare.c 2616780f006766de548772fd52f2d89ac454ced3c8be985f93afebc225ab14fa
  F src/printf.c 975f1f5417f2526365b6e6d7f22332e3e11806dad844701d92846292b654ba9a
  F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
- F src/resolve.c 359bc0e445d427583d2ab6110433a5dc777f64a0ecdf8d24826d8b475233ead9
+ F src/resolve.c 24032ae57aec10df2f3fa2e20be0aae7d256bc704124b76c52d763440c7c0fe9
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c a4a23a70f0a24a1103ac9698f6be181a6ec7ff6c19e03e8899c43cb6d2af09d6
- F src/shell.c.in e955a97d569f501b985f635c820a56f1226f37401916c764ec6a84a69e6035c4
- F src/sqlite.h.in a342d69944ab83906e8d02dbe0e7696747df32b2a7a3cb9581fb5eaa06c07592
+ F src/select.c 5799f5b15e27bcb8262caec7821f3ef89575e539237db3141be0d26cf8efd22c
 -F src/shell.c.in e80a140e92e342e2f92d405a77155c8e3a67c9b1d0bdbacb92885960cd4fc8f2
 -F src/sqlite.h.in 31c2c8d737814369bd3b71f3849c4a97ef7ede0aa3ce976ecb11632fa5f1f863
++F src/shell.c.in f0826e538f3747b6ad0dfaf5f82cdfab73e2853d71efaf7c9569043b4ec15bc7
++F src/sqlite.h.in bfc9b0d3b9f53d45365f2af75bf6db09c2d3b2d58e23a5a30224bcfe1d97bd82
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h 01eb85e4f2759a5ee79c183f4b2877889d4ffdc49d27ae74529c9579e3c8c0ef
- F src/sqliteInt.h e8c397d046af304133ef025e9cc872daae6e5d4794c57d8f1144a88f45dc3288
+ F src/sqlite3ext.h 5d54cf13d3406d8eb65d921a0d3c349de6126b732e695e79ecd4830ce86b4f8a
 -F src/sqliteInt.h 33fbafb55b48f63b791c563378345ebdbbcb73e8fd63a1c22e4df05f435d4714
++F src/sqliteInt.h c09adfced3bede5c005c312c1e552e0adc34bb22ad66fb9d701e7be3602eb0a9
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
 -F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
 +F src/status.c d0956e57c71160155f620a3efeb1e5c05a3f8b9a897dd09c5263268e5d237579
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
 -F src/tclsqlite.c 48f291e1a7e672a7204884d4c164a8ed3a522ff087c361ada2991f5d54e987f6
 +F src/tclsqlite.c d59959ac596aa96b60575ebf863e295a105e617f6aa28bc0188252e134e15308
- F src/test1.c f13fe747afc7d9af189ce0cdaaf641252c5803db2a32bd3525eec2905c7b4f37
+ F src/test1.c 9287559cc1f7c5a25f927aa172e69778237f0e037960dbcdb4257d0bea500114
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
  F src/test4.c 7c4420e01c577b5c4add2cb03119743b1a357543d347773b9e717195ea967159
@@@ -619,32 -618,32 +620,32 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
  F src/tokenize.c b74d878aa7c82ec8460779468061a96185e22257f68ab785b69abce354b70446
  F src/treeview.c 9dfdb7ff7f6645d0a6458dbdf4ffac041c071c4533a6db8bb6e502b979ac67bc
- F src/trigger.c 10f86339adf4f5da2cbfc4214737d351cd44545e33a87d9bdb5af3677d483d1d
- F src/update.c d6f5c7b9e072660757ac7d58175aca11c07cb95ebbb297ae7f38853700f52328
 -F src/trigger.c 692972e4393dfc8017a1a527c1ea1b96ce3d101e84584cd832fcfb83d22b50b2
++F src/trigger.c d3acee607e4394d542486ec3791f542d677f2c26f1e4914c2db6cb5bc4e4b18d
+ F src/update.c 7dfa3866cdfb28bf952c38054c1722720d8ff64750dea421790aecc91f640516
  F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c 89e51820bcb468ff3877a8d942f5cc807208087f021227e0927693e928a195bc
+ F src/util.c 602fe229f32a96ceccae4f40824129669582096f7c355f53dbac156c9fecef23
 -F src/vacuum.c 6c38ddc52f0619865c91dae9c441d4d48bf3040d7dc1bc5b22da1e45547ed0b3
 -F src/vdbe.c cfe1980fbeb87eb35297b4a41808034761f26277cf45c9cf3e4eac20edcba1d5
 -F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
 +F src/vacuum.c 97424abbd3b5831d0142349a3c2dad52c364e39fab67f7e0f5c60d2694463940
- F src/vdbe.c 851550df84c0960bf69292dd6e3770a24fc5ca81bb4d8724d80dd79e2ec5c32e
++F src/vdbe.c a6f4474aaf221ee9116da7ee701f19e23ab34009df1543825effcf4ec03a55ab
 +F src/vdbe.h bfde0b0f429a0ba4203e5319780a6a1c8b2a809c5cd6baa9ae22e257a657b8b3
  F src/vdbeInt.h d89d5d2150500cfb08615329fd20aea9d746bba5f2c3ecb8a17e2d2d9be029e5
  F src/vdbeapi.c 22c79072ae7d8a01e9bcae8ba16e918d60d202eaa9553b5fda38f99f7464d99a
- F src/vdbeaux.c 68e6c0ccaef87fa713fdbf99d63727c6b5fbbae236b9757f0fd021e9d2073bd1
- F src/vdbeblob.c a01a2a6d08a6ba108449d836939df78d5fa1251283939767f64ec60fb29fe919
 -F src/vdbeaux.c e761b8011baec7a4773f0a7594783f2cd71f699ab187c4aad917529ab8acd3fe
 -F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd
++F src/vdbeaux.c 3610e6cd3dce57f7343a2f72e68b31bff9f9f6b234ed93f86c23fbea075a9467
++F src/vdbeblob.c aa23a326ff86bdde8f7ba74cf23c3e1795b13bee749314feaf26273be2f63e89
  F src/vdbemem.c da4d594084d581be6436582bb44bb128feeb138a3e6c313eda6749ebdc3a65ec
  F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
  F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
- F src/vtab.c 10736c51d322e6c51198f84dd2e288b86e3682aa89510e3bde1a776c42324327
 -F src/vtab.c e0eaf5b8f7f8929088485a76bea2ff6124adb12e0eb5c0997287ff5e0e4c0517
++F src/vtab.c fcbd75d2d9848438e604f36955142d4b58b6a7760c74ae8fc55a005fd179fb03
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c ed0398a7adf02c31e34aada42cc86c58f413a7afe5f741a5d373ad087abde028
+ F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d
  F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
  F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
- F src/where.c eedf0311d59095bcd8523bd13bf25865e1caf1fab9beddbff9093340a1a409c7
- F src/whereInt.h 91865afa4a3540bb3bd643619acc56fbceff7defeb8f249b8e157fd5325d88be
- F src/wherecode.c 6a594ed25bfbeb60d455868b7be62637575e4f1949152de4336e4825e0c54ba6
+ F src/where.c a14990c7b35e95f8f9cb0dc0d6d2e32fa99135a716a04027cefa48138d280ecb
+ F src/whereInt.h 8a215acde0f833a4dea3d30a7bbed9f48b4b547b5d5e34cd02acee366476ab80
+ F src/wherecode.c 8da0f873278ed6aad42bf2028404d7178dd9cfcdc7179ecc61a87591a15a07d2
  F src/whereexpr.c 9f64c39e53070584e99e4d20c1dd3397e125fabbae8fd414ffec574c410ac7d3
- F src/window.c 5d3b397b0c026d0ff5890244ac41359e524c01ae31e78782e1ff418c3e271a9e
+ F src/window.c dfaec4abc6012cbc18e4a202ca3a5d5a0efcc4011d86a06d882ddaab8aedee4d
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
  F test/affinity3.test eecb0dabee4b7765a8465439d5e99429279ffba23ca74a7eae270a452799f9e7
@@@ -1948,8 -1941,8 +1951,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9
  F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
  F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
  F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P f83d50d5076339682c011329d7ab431ccaf134b37984706f199d878c3a88b553 5623497adc8af9950fd79392000a68ba6fdca43594603eadaa7e19c8fb845a7d
- R 605d5d5351e7f7c01c5a4981988d2b97
 -P e9361d72f362b390a31f667363b01cf9d4b78aa19ed5c97f21afe9da764b89c0
 -R 2f204671367b290a50dcca5128a83ae4
++P 769ff85765746d3c94211ade114c6762baa76bb0db2dbe634334ca1beb4eed7f a8db69411b0d1275909adeb21027784ada17af24efe3a59ae0ae2a897659ff17
++R df2423d3fed67063d177486a4ef9138f
  U drh
- Z 58a6ce04faa01358a43358a5c4135e02
 -Z 303c6274f1d08ea5df8933a6d290bc89
++Z 2716e363958492b878648aba3d01afc8
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.uuid
index 472576b6d7504872d124280b7d166550f73df3ea,b1380388fa0bbad270ad48c0d7782384d064876b..5ab485a00b010a0bcc1067603e70bd6574a2227e
@@@ -1,1 -1,1 +1,1 @@@
- 769ff85765746d3c94211ade114c6762baa76bb0db2dbe634334ca1beb4eed7f
 -a8db69411b0d1275909adeb21027784ada17af24efe3a59ae0ae2a897659ff17
++6e4154d414afe2562b488149b10c175d1f15bd1d5060ee479d5ae9386a2e277e
diff --cc src/alter.c
Simple merge
diff --cc src/attach.c
Simple merge
diff --cc src/build.c
index 747f4a68fb0efbf0896314ab15c9c441f89dd0c3,cfff85cf9e7c4449c0b8ad23ab369e732f00f9e4..8ba28a95f00e88373a78a88aa450db295366c0d3
@@@ -479,20 -467,9 +483,21 @@@ Table *sqlite3LocateTable
        if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){
          pMod = sqlite3PragmaVtabRegister(db, zName);
        }
 -      if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){
 -        testcase( pMod->pEpoTab==0 );
 -        return pMod->pEpoTab;
 +      if( pMod ){
 +        if( IsSharedSchema(db) && pParse->nErr==0 ){
 +          int bDummy = 0;
 +          pParse->rc = sqlite3SchemaLoad(db, 0, &bDummy, &pParse->zErrMsg);
 +          if( pParse->rc ) pParse->nErr++;
++          (void)bDummy;
 +        }
 +        if( sqlite3VtabEponymousTableInit(pParse, pMod) ){
 +          Table *pEpoTab = pMod->pEpoTab;
 +          if( pEpoTab ){
 +            assert( IsSharedSchema(db)||pEpoTab->pSchema==db->aDb[0].pSchema );
 +            pEpoTab->pSchema = db->aDb[0].pSchema;  /* For SHARED_SCHEMA mode */
 +          }
 +          return pEpoTab;
 +        }
        }
      }
  #endif
diff --cc src/pragma.c
Simple merge
diff --cc src/prepare.c
Simple merge
diff --cc src/shell.c.in
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/trigger.c
index 97fe0fb17c11d86e2f7670f6ce137dc2e590db8a,420ef7061c9481d4d7bb004b60345851ff10129b..5f3c561dd71c37b38676684d6fdc2bf1154f2633
@@@ -1141,12 -1112,10 +1143,12 @@@ static TriggerPrg *codeRowTrigger
    Vdbe *v;                    /* Temporary VM */
    NameContext sNC;            /* Name context for sub-vdbe */
    SubProgram *pProgram = 0;   /* Sub-vdbe for trigger program */
-   Parse *pSubParse;           /* Parse context for sub-vdbe */
    int iEndTrigger = 0;        /* Label to jump to if WHEN is false */
+   Parse sSubParse;            /* Parse context for sub-vdbe */
  
 -  assert( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) );
 +  assert( pTrigger->zName==0 || IsSharedSchema(pParse->db)
 +      || pTab==tableOfTrigger(pTrigger)
 +  );
    assert( pTop->pVdbe );
  
    /* Allocate the TriggerPrg and SubProgram objects. To ensure that they
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/vdbeblob.c
index a930f50b007f44342936f5d94e37fb1e76b103fb,a18ee05b52b413d3db062b21bb968612bd7507f3..623125bac545e08b315090515e0298fb3ca74e1e
@@@ -134,9 -134,7 +134,8 @@@ int sqlite3_blob_open
    char *zErr = 0;
    Table *pTab;
    Incrblob *pBlob = 0;
-   Parse *pParentParse = db->pParse;
    Parse sParse;
 +  int bUnlock;            /* True to unlock reusable schemas before returning */
  
  #ifdef SQLITE_ENABLE_API_ARMOR
    if( ppBlob==0 ){
  
    sqlite3_mutex_enter(db->mutex);
  
 +  bUnlock = sqlite3LockReusableSchema(db);
    pBlob = (Incrblob *)sqlite3DbMallocZero(db, sizeof(Incrblob));
-   do {
-     memset(&sParse, 0, sizeof(Parse));
+   while(1){
+     sqlite3ParseObjectInit(&sParse,db);
      if( !pBlob ) goto blob_open_out;
-     sParse.db = db;
-     db->pParse = &sParse;
      sqlite3DbFree(db, zErr);
      zErr = 0;
  
        goto blob_open_out;
      }
      rc = blobSeekToRow(pBlob, iRow, &zErr);
-   } while( (++nAttempt)<SQLITE_MAX_SCHEMA_RETRY && rc==SQLITE_SCHEMA );
+     if( (++nAttempt)>=SQLITE_MAX_SCHEMA_RETRY || rc!=SQLITE_SCHEMA ) break;
+     sqlite3ParseObjectReset(&sParse);
+   }
  
  blob_open_out:
-   db->pParse = pParentParse;
 +  sqlite3UnlockReusableSchema(db, bUnlock);
    if( rc==SQLITE_OK && db->mallocFailed==0 ){
      *ppBlob = (sqlite3_blob *)pBlob;
    }else{
diff --cc src/vtab.c
Simple merge