]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge recent trunk enhancements into the reuse-schema branch.
authordrh <>
Wed, 3 Mar 2021 19:54:08 +0000 (19:54 +0000)
committerdrh <>
Wed, 3 Mar 2021 19:54:08 +0000 (19:54 +0000)
FossilOrigin-Name: 73bf458e1dbe21e19b7b283d5d7534dd8bcb01475570958fc2291e805c1cc56d

16 files changed:
1  2 
Makefile.in
main.mk
manifest
manifest.uuid
src/alter.c
src/attach.c
src/build.c
src/fkey.c
src/prepare.c
src/shell.c.in
src/sqliteInt.h
src/trigger.c
src/vdbe.c
src/vdbe.h
src/vdbeaux.c
src/vtab.c

diff --cc Makefile.in
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 971eb872616c34f27722a431ce4725f5bb173d36,eb58efbcf72120dec267346681c2ea821ac0805c..e13895c51ad8819211f77dc64d540346339a6d27
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
- D 2021-02-10T20:20:35.198
 -C Fix\sa\sbuffer\soverrun\sthat\scould\soccur\sin\sfts5\swhen\srunning\sa\sprefix\squery\sagainst\sa\scorrupt\sdb.
 -D 2021-03-03T19:36:40.931
++C Merge\srecent\strunk\senhancements\sinto\sthe\sreuse-schema\sbranch.
++D 2021-03-03T19:54:08.034
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 9ed0edeb277c6722a1e028a3b4754ebd465039aeb3c9a059629278859836efba
 -F Makefile.in 047036a560b7db51e7b7e459cd12cbe80e10ca5420b0ea5ddda023b44ab46466
++F Makefile.in d84af4278da5bb53e77ba1e8e370bdc95d778e822830a7dbab2415f30fe87b65
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
 -F Makefile.msc ad07bbd645132533e1fd7164a03acfa9afecda378b3787c10f62ab4c7c45e6ea
 +F Makefile.msc adc7fa1be430e6081e07bfafb2f14032dbb5ff056d1c812c634382815ececc81
  F README.md 1514a365ffca3c138e00c5cc839906108a01011a6b082bad19b09781e3aa498a
  F VERSION 92f3e4c5cdee6f0779aef1eae857dfc21d0eabb1f2af169dc90e63cd76b15bb2
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -464,7 -464,7 +465,7 @@@ F ext/userauth/userauth.c 7f00cded7dcaa
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 139b827fcfebe187ca52128dbe2977751662a86a4f99a4e004f309b634469b85
 -F main.mk 32765eed1aa69739a876b7e1632a092188106f99e8ad6c9d30ea982f4f9b3a46
++F main.mk 75d23b5734ab6836f60286d35ec4f8dc1f67eed64ab27df0a133402d34be716e
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -476,37 -476,37 +477,37 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 916ec1f34adc34b596a4afcf2c2403f145a7b836dc81b713a24bc206142159f4
 -F src/alter.c d5fd529509880eade9ea59ddb24a56e9fe0579ee7f2e9e18bac62b7bd05b3a10
 -F src/analyze.c 01c6c6765cb4d40b473b71d85535093730770bb186f2f473abac25f07fcdee5c
 -F src/attach.c 9cbe761e464025694df8e6f6ee4d9f41432c3a255ca9443ccbb4130eeb87cf72
++F src/alter.c f63c20191c51b57052bcabeed5d9e244f30b18db43a6980284e3061061bf5e06
 +F src/analyze.c 8b522a57784406d75f544e6d67f3fe7a7196702d3d954b7678bb4b4fe789e5a4
- F src/attach.c de9c50292a436937512b9fdc79d521e1d803469891a9d430476649b7feeadcbd
++F src/attach.c d176b64d15dfcb08ebd7b11d77cac1d5b08d4ec1e8bd9b59e2f0a84557f95ac9
  F src/auth.c 08954fdc4cc2da5264ba5b75cfd90b67a6fc7d1710a02ccf917c38eadec77853
  F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c 694020ad8a3af3d79b09f74c8f1421272a419cdea42a13401e3b0f7dea6e9c3e
+ F src/btree.c bafa3a2e8b6622a3aa8791f90c8ecc70e8ae551ba9023f865213890f5b8a8994
  F src/btree.h 285f8377aa1353185a32bf455faafa9ff9a0d40d074d60509534d14990c7829e
  F src/btreeInt.h 7614cae30f95b6aed0c7cac7718276a55cfe2c77058cbfd8bef5b75329757331
- F src/build.c e3b7c76a75cbd5e47355dfa8f03273c88b7dc572b4f05890c18956a17a4d8d75
 -F src/build.c e1790f21cd19708af231ceed5e52f495b94c4b2609e27d2b5ce2805a9aa3464e
 -F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
++F src/build.c c990714d3a7a19068078d5e5a963d3a6ed08b8968d5ed07649e146327a1fb3a3
 +F src/callback.c d8cdf5d697a31cf54a2b64bce9001fe24f3522a566f44c9fe1eb3a0c7e291c56
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 -F src/ctime.c 2a322b9a3d75771fb4d99e0702851f4f68dda982507a0f798eefb0712969a410
 +F src/ctime.c 3552554374bfb39a48f8b0064e11cbcd7f2f5af46bc8136f31f7f79ef3851be5
  F src/date.c dace306a10d9b02ee553d454c8e1cf8d3c9b932e137738a6b15b90253a9bfc10
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
- F src/delete.c 352ea931218c45a3daf17472d4141b9c7fc026d85da3f1ade404ea5bb6d67f77
- F src/expr.c 47c85263e6d179424e6b09e2c79db5704ab5b8cbc2fae2ee3285faa2566f2e74
+ F src/delete.c 73f57a9a183532c344a3135cf8f2a5589376e39183e0b5f562d6b61b2af0f4d8
+ F src/expr.c 6793c836aff149b14011ad546ae1648a18573779ee78f5a7d375f2a3047e8c8e
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c 5e41765582f7fd265245fc743670d37d1a34fb0150fc963793a2db1f1bee6a4b
- F src/func.c 2ea99e9e0531b7f020d5e8e167d25344d618afc718ddc94dd91fa8fef1c85a91
 -F src/fkey.c e9063648396c58778f77583a678342fe4a9bc82436bf23c5f9f444f2df0fdaa4
++F src/fkey.c 6dcbab4ead1dbfdc19da70a8650e5734a5124765f75fb840100117a7a45980d2
+ F src/func.c 479f6929be027eb0210cbdde9d3529c012facf082d64a6b854a9415940761e5e
  F src/global.c ed55af196a9b66e198aaeda3f5454c3aa7d7d050c6c938181fd044b70d180a81
  F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
  F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
  F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
  F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c 3d17e465c4cdb7e02e4b2a9d0a6cee08d23c478a01bd7eb5c5d4024fc70c5e5c
+ F src/insert.c 8942baede303a54ba3b6d06200d5b74c9bc25ababec8a55823e06309748cd4a3
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c 8c9c8cd2bd8eecdb06d9b6e89de7e9e65bae45cc8fc33609cc74023a5c296067
 -F src/main.c 1c5de7b3fabcdf05f4fe563aab5d81d175b89c67a8678a12ba86629356afa356
 +F src/main.c 14210385b0d75ea5fd974449a085462a7431263a17fc36974ec17a3d4ff83ebd
  F src/malloc.c c1af4ac5a463648cd2953fd4ac679b3ba9022ce5ec794a60806150ad69dfd33a
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@@ -529,30 -529,30 +530,30 @@@ F src/os_setup.h 0dbaea40a7d36bf311613d
  F src/os_unix.c adbbcea4c63d3b400d405f60a5da4c01433753ec4a12e2dc695beb2bbd671fe9
  F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
  F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c c49952ac5e9cc536778eff528091d79d38b3e45cbeeed4695dc05e207dc6547d
+ F src/pager.c 970691daea03f9f15e34de671bd8675c1e136232b529e21bfd36d4dba6d41753
  F src/pager.h 4bf9b3213a4b2bebbced5eaa8b219cf25d4a82f385d093cd64b7e93e5285f66f
- F src/parse.y 67ba503780de64b967ae195b7e14c33531329228e1bc0b83d63324beb733680b
+ F src/parse.y f3e8d7978c10495850c0bb502fe2669b55cf2841c4670b1f7261782e82069471
  F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
- F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a
+ F src/pcache1.c 388304fd2d91c39591080b5e0f3c62cfba87db20370e7e0554062bfb29740e9f
 -F src/pragma.c 6daaaecc26a4b09481d21722525b079ce756751a43a79cc1d8f122d686806193
 -F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf
 -F src/prepare.c f634a9e799a6b1c136d8ee12479cffa22862bfb807d307b1db406aa0cdb042a5
 +F src/pragma.c f134be99f539e2d8c934169750059fb32a9f0de5d109110d083c2ceb7d4c3a30
 +F src/pragma.h ce2b135cde481eeb198af0dfc4781d58528ce80b17580a2b747b8fd4bc969e44
- F src/prepare.c b94c07cdcac57ba933d0def66f5848e588213be805edd2cd55a322d9eb488d75
- F src/printf.c 30e92b638fac71dcd85cdea1d12ecfae354c9adee2c71e8e1ae4727cde7c91ed
++F src/prepare.c 2f8380bfd7e083fdffc7017944f5b5637fddac2abd1cd4ff1b96a901e3fe9f17
+ F src/printf.c 2b03a80d7c11bb422115dca175a18bf430e9c9dbaa0eee63b758f0c022f8f34f
  F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
- F src/resolve.c 89e4faf6171e179edf279905e8e45c4f9dd108777dc60716396729fbd7cb045e
+ F src/resolve.c 889469e6980181ce77ee8ab3fc84bd52ed6c1c3577fd102d52623d66cc65a3d0
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 738cb746189f721f59972993c13085fa2975c4cbfd04ba26445f3b42c81237dc
- F src/shell.c.in 05f0188127f8b53bd39c8316fe93fc904ce4008974239ee7560e347ee6fc522d
+ F src/select.c 0e242e141cc1b28f16b8973454aeeabd4367377f05507e3961044ae3035d80cd
 -F src/shell.c.in 844417f84df1f6c4fce1c815629a888cfdcf219e86513e9c332bbcc38832f477
 -F src/sqlite.h.in 8855a19f37ade8dad189a9e48233a2ebe1b46faf469c7eb0906a654e252dcc57
++F src/shell.c.in 7bf4ec504cebbf4e497265e5f584e912d1d47e7be2bd37b2cc4a29d2dbeef2c8
 +F src/sqlite.h.in c332fd33f0c45224760824d1ea2091e2bc52eb855d7339a94c165804b8534d7d
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
- F src/sqliteInt.h 2ecdd62dc8ce3479021ba1cce92ba263651a917430beea42e880a4232bd65fc7
 -F src/sqliteInt.h 11b9d47e9b9520b123bc75254da7a4e215463e811e62b89518fc5e9a192a0222
++F src/sqliteInt.h dea0bc62427128a8c8ba5527637aaa3231d8cbea27c18f7db006503799ebe2a1
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
 -F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
 +F src/status.c d0956e57c71160155f620a3efeb1e5c05a3f8b9a897dd09c5263268e5d237579
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
 -F src/tclsqlite.c 986b6391f02cd9b53c1d688be55899f6ffddeb8e8014cd83c1b73ff912579a71
 +F src/tclsqlite.c f4dd32d001c2be33371dca87e30117352f02dad59a2e5428c97f08703360a169
- F src/test1.c 2197966d2f7211ef9eefaa6c3c7dd2c7d786d1f33f2aadef2f08c8c79eceec26
+ F src/test1.c 07f60dfe9574720268abf97757b1d62894e959e3db4a530e4988367be06c5f14
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
  F src/test4.c 7c4420e01c577b5c4add2cb03119743b1a357543d347773b9e717195ea967159
@@@ -607,25 -606,25 +608,25 @@@ F src/test_windirent.h 90dfbe95442c9762
  F src/test_window.c cdae419fdcea5bad6dcd9368c685abdad6deb59e9fc8b84b153de513d394ba3f
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
 -F src/tokenize.c c64c49d7c2ec4490c2fef1f24350167ba16b03b0c6cee58ad1a1d70a4325d4e9
 +F src/tokenize.c 382c5be7316c2a34279653ccf454adeb9c83b9b94c73fb309d5deb62d34cc58a
- F src/treeview.c 4b92992176fb2caefbe06ba5bd06e0e0ebcde3d5564758da672631f17aa51cda
- F src/trigger.c f0dcab655df496f31120573884447e364a20196efa220faf21f4d0842977842c
+ F src/treeview.c c6260e1fa5f41c361b2409edc9b0050bcaef5bc4d6abc467fbc45f0d7ccf3d84
 -F src/trigger.c 861c3ec2c5b0fc830bdf82470454a9324fad70cbaa96d2e208fb54577c9e8d28
++F src/trigger.c dae7932e9dfb335986948e63bea5488d768d81e3d279c46d930ab65c0a500db1
  F src/update.c 0f5a61f0787199983530a33f6fffe4f52742f35fcdf6ccfad1078b1a8bc17723
  F src/upsert.c df8f1727d62b5987c4fd302cd4d7c0c84ae57cd65683c5a34a740dfe24039235
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
  F src/util.c 41c7a72da1df47864faa378a1c720b38adb288c6838cb6be5594511b6287a048
 -F src/vacuum.c 492422c1463c076473bae1858799c7a0a5fe87a133d1223239447c422cd26286
 -F src/vdbe.c d8d2f2a1247bada7db7acf1f4ae65088bc09f020f4acf15810ef67f4aabe1ce9
 -F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
 +F src/vacuum.c 724188c5afbba905b310e8d8e78530956d16e6d60a3ba8a1105d05732d7d8601
- F src/vdbe.c 6396a90a51ddd37156e58f55b8da1dd5a71648c7cba2306f295f012d4c2985cb
- F src/vdbe.h 9e947bd4a40e3b65159b699571c8246c209f6bda6e13979a1ab623faa2f0d23f
++F src/vdbe.c 9278c551ebf5d8491ab1fd115dec80c15cd43be008fa8ad9d47622e2d375100d
++F src/vdbe.h bfde0b0f429a0ba4203e5319780a6a1c8b2a809c5cd6baa9ae22e257a657b8b3
  F src/vdbeInt.h 3df118924e1711f1bbc8e30c46260d0ab6c3b029b32dd411f789111f76434f3c
  F src/vdbeapi.c 4a43e303ec3354c785f453e881521969378e85628278ab74ba4a9df790c0d93b
- F src/vdbeaux.c f90ee925ede10dfdc05aae91fd0ff30ee0418a30f559d4be1ce337440f239f14
 -F src/vdbeaux.c fb51483c2bcaf45c5de63c26cce8649ef37f1332e8e035867033d21ef5e7fc2c
 -F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
++F src/vdbeaux.c e8e188ef0a4964f0690274e085add02fc79b4fb272aae701d9b31319f56bfd1c
 +F src/vdbeblob.c 40028e015fe557a945c99edb6cbf844ea96d853c3e8ac4eb5c1e49bff59f154e
  F src/vdbemem.c 947f2a65910edb4014dc981d33e414a68c51f169f9df8c4c493a0ba840b6eb1f
  F src/vdbesort.c f5b5e473a7cee44e47a94817b042fd7172cf3aa2c0a7928a8339d612bcfdec5a
  F src/vdbetrace.c 666c6fd9f1b62be6999e072a45b913e3c2c3518bc60dfd4d54fe304130acb724
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
- F src/vtab.c f348e8f4487ad2227f7a53b2ca001746afb89a9f55f950b84bfe20a00e1e4b57
 -F src/vtab.c 032a0165c147fda16927e6a3230e90c068d4af93f887ce94e26f678fe48e5e4c
++F src/vtab.c b194210339673cf8a60285f1d87ef2a8055eff32782375ffec842fc6bbacc41a
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
  F src/wal.c 69e770e96fd56cc21608992bf2c6f1f3dc5cf2572d0495c6a643b06c3a679f14
  F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
@@@ -1909,7 -1908,7 +1918,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 9f41f604055553f0c62d4c0d5a00c6a43d1a938f36901238c52c065702b9c536 66c07a07b21e46529780eec3c82a84c494d586f8b7ed80b78d358e23b80458c7
- R 4d316b89af8d740abb8f0a043fc6d895
 -P 3f520b8bdef7dcdad30e052ed8a07b0493bff4497603521e701fab7324df2995
 -R bf9673d09bb6129e5121f0cfe63374d9
--U dan
- Z abac2550f706de6d85186e619c872031
 -Z 428ef74b7b93c2a0a1d5bc43a56052a4
++P d29c41bd2670ccd205ca6190aa071c0ac7e9748bd9425fbfec0aa7acc8ae0aeb 4da40620ac8557aba6e1e06e720418b55e9950f406288b03749ef1b117041cd9
++R c3ce4c89ea79c73b0d012e4e3195febe
++U drh
++Z 5b82c27adb4322b6aa0aafb69ff896f3
diff --cc manifest.uuid
index dd1d759129c07b322a201d81ac196048c066ec55,26c15e4d61592f8bc6410dc8c22f2aa86cf0f74e..031bb15eab078c20d62062e2e0986e625a25da19
@@@ -1,1 -1,1 +1,1 @@@
- d29c41bd2670ccd205ca6190aa071c0ac7e9748bd9425fbfec0aa7acc8ae0aeb
 -4da40620ac8557aba6e1e06e720418b55e9950f406288b03749ef1b117041cd9
++73bf458e1dbe21e19b7b283d5d7534dd8bcb01475570958fc2291e805c1cc56d
diff --cc src/alter.c
index 70ee3cdad41662f837093ac33cbadcb94393dd6c,5409de594f7ee39d6d932c39a91b2b666d10c160..66fee28c72644a615fe9d456f4aafba30b2f84bc
@@@ -80,8 -86,8 +86,8 @@@ static void renameReloadSchema(Parse *p
    Vdbe *v = pParse->pVdbe;
    if( v ){
      sqlite3ChangeCookie(pParse, iDb);
-     sqlite3VdbeAddParseSchemaOp(pParse, iDb, 0);
-     if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse, 1, 0);
 -    sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, iDb, 0, p5);
 -    if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, 1, 0, p5);
++    sqlite3VdbeAddParseSchemaOp(pParse, iDb, 0, p5);
++    if( iDb!=1 ) sqlite3VdbeAddParseSchemaOp(pParse, 1, 0, p5);
    }
  }
  
diff --cc src/attach.c
index 10f41aba25c1e6a1efff7ed6ea098733ab6c176f,8eb4486e5821b7e7a12e0dbd93470960ed72706d..8c04098a357dfd4705206aaa75d01382386b14e4
@@@ -312,7 -312,6 +312,7 @@@ static void detachFunc
      pEntry = sqliteHashNext(pEntry);
    }
  
-   sqlite3SchemaDisconnect(db, i, 0);
++  (void)sqlite3SchemaDisconnect(db, i, 0);
    sqlite3BtreeClose(pDb->pBt);
    pDb->pBt = 0;
    pDb->pSchema = 0;
diff --cc src/build.c
index a5cdb90ef69f745ef96226c141a9bd9eff51b73c,b1812753a7b6653b573656046bf2e0c0ad3bf201..64a5ef65578dfcc328a53a30f6f01c7503892266
@@@ -2663,8 -2640,8 +2666,8 @@@ void sqlite3EndTable
  #endif
  
      /* Reparse everything to update our internal data structures */
 -    sqlite3VdbeAddParseSchemaOp(v, iDb,
 +    sqlite3VdbeAddParseSchemaOp(pParse, iDb,
-            sqlite3MPrintf(db, "tbl_name='%q' AND type!='trigger'", p->zName));
+            sqlite3MPrintf(db, "tbl_name='%q' AND type!='trigger'", p->zName),0);
    }
  
    /* Add the table to the in-memory representation of the database.
@@@ -4152,8 -4126,8 +4153,8 @@@ void sqlite3CreateIndex
        if( pTblName ){
          sqlite3RefillIndex(pParse, pIndex, iMem);
          sqlite3ChangeCookie(pParse, iDb);
 -        sqlite3VdbeAddParseSchemaOp(v, iDb,
 +        sqlite3VdbeAddParseSchemaOp(pParse, iDb,
-             sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName));
+             sqlite3MPrintf(db, "name='%q' AND type='index'", pIndex->zName), 0);
          sqlite3VdbeAddOp2(v, OP_Expire, 0, 1);
        }
  
diff --cc src/fkey.c
Simple merge
diff --cc src/prepare.c
index 501a062e52f9ce359f01d7951b17dd275cd1f754,d79495d2c6ba9b298263a6827a7201639cc83faf..d2bc67f4ad46dacf88300f0b3f5d4bcd92250c15
@@@ -34,14 -38,9 +38,14 @@@ static void corruptSchema
      pData->rc = SQLITE_ERROR;
    }else if( db->flags & SQLITE_WriteSchema ){
      pData->rc = SQLITE_CORRUPT_BKPT;
 +  }else if( IsSharedSchema(db) 
 +         && 0==sqlite3StrNICmp(zExtra, "malformed database schema", 17)
 +  ){
 +    pData->rc = SQLITE_CORRUPT_BKPT;
 +    *pData->pzErrMsg = sqlite3DbStrDup(db, zExtra);
    }else{
      char *z;
-     if( zObj==0 ) zObj = "?";
+     const char *zObj = azObj[1] ? azObj[1] : "?";
      z = sqlite3MPrintf(db, "malformed database schema (%s)", zObj);
      if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
      *pData->pzErrMsg = z;
@@@ -184,13 -148,8 +188,13 @@@ int sqlite3InitCallback(void *pInit, in
          if( rc > pData->rc ) pData->rc = rc;
          if( rc==SQLITE_NOMEM ){
            sqlite3OomFault(db);
 -        }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){
 +        }else if( rc!=SQLITE_INTERRUPT 
 +#ifdef SQLITE_ENABLE_SHARED_SCHEMA
 +               && (rc&0xFF)!=SQLITE_LOCKED 
 +               && (rc&0xFF)!=SQLITE_IOERR
 +#endif
 +        ){
-           corruptSchema(pData, argv[1], sqlite3_errmsg(db));
+           corruptSchema(pData, argv, sqlite3_errmsg(db));
          }
        }
      }
diff --cc src/shell.c.in
Simple merge
diff --cc src/sqliteInt.h
index b1019e4f46a309e83696803485ba6f4764620532,1d5f0d2a875c98058f3cec05bc43b4f84796c625..4ba25e3b138a2626c7b7b5c46ce585f1acdf2243
@@@ -3445,7 -3446,7 +3466,6 @@@ struct Parse 
    AutoincInfo *pAinc;  /* Information about AUTOINCREMENT counters */
    Parse *pToplevel;    /* Parse structure for main program (or NULL) */
    Table *pTriggerTab;  /* Table triggers are being coded for */
-   AggInfo *pAggList;   /* List of all AggInfo objects */
 -  Parse *pParentParse; /* Parent parser if this parser is nested */
    union {
      int addrCrTab;         /* Address of OP_CreateBtree on CREATE TABLE */
      Returning *pReturning; /* The RETURNING clause */
diff --cc src/trigger.c
index f44c22b682f25876767d053bdd1e3402120d2f73,689c7c741eeba429736329232a813b0a97124d86..b884872364e100453c2c0a62a18cfa3b1957547b
@@@ -376,8 -355,8 +376,8 @@@ void sqlite3FinishTrigger
         pTrig->table, z);
      sqlite3DbFree(db, z);
      sqlite3ChangeCookie(pParse, iDb);
 -    sqlite3VdbeAddParseSchemaOp(v, iDb,
 +    sqlite3VdbeAddParseSchemaOp(pParse, iDb,
-         sqlite3MPrintf(db, "type='trigger' AND name='%q'", zName));
+         sqlite3MPrintf(db, "type='trigger' AND name='%q'", zName), 0);
    }
  
    if( db->init.busy ){
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbe.h
index 2f7c7d2bf62acb9bf7894a290c1984e5ab034535,3257ff68a174d8dbd675368e21e4daccd5a782ae..9a30676c1fded35fc6ff8a05e9f1c446c8ec4a98
@@@ -223,7 -223,7 +223,7 @@@ VdbeOp *sqlite3VdbeAddOpList(Vdbe*, in
  #else
  # define sqlite3ExplainBreakpoint(A,B) /*no-op*/
  #endif
- void sqlite3VdbeAddParseSchemaOp(Parse*,int,char*);
 -void sqlite3VdbeAddParseSchemaOp(Vdbe*, int, char*, u16);
++void sqlite3VdbeAddParseSchemaOp(Parse*,int,char*,u16);
  void sqlite3VdbeChangeOpcode(Vdbe*, int addr, u8);
  void sqlite3VdbeChangeP1(Vdbe*, int addr, int P1);
  void sqlite3VdbeChangeP2(Vdbe*, int addr, int P2);
diff --cc src/vdbeaux.c
index f5f8dcf9afb94a87cb388078dc566931a6a8c4d9,ede652dfac67ae9c9f122efd22bc039a6bdfd4e5..57fd981e6fd49ba7b20b5224b9fce838b9d95d72
@@@ -471,11 -471,10 +471,12 @@@ void sqlite3VdbeExplainPop(Parse *pPars
  ** The zWhere string must have been obtained from sqlite3_malloc().
  ** This routine will take ownership of the allocated memory.
  */
- void sqlite3VdbeAddParseSchemaOp(Parse *pParse, int iDb, char *zWhere){
 -void sqlite3VdbeAddParseSchemaOp(Vdbe *p, int iDb, char *zWhere, u16 p5){
++void sqlite3VdbeAddParseSchemaOp(Parse *pParse, int iDb, char *zWhere, u16 p5){
 +  Vdbe *p = pParse->pVdbe;
    int j;
 +  sqlite3SchemaWritable(pParse, iDb);
    sqlite3VdbeAddOp4(p, OP_ParseSchema, iDb, 0, 0, zWhere, P4_DYNAMIC);
+   sqlite3VdbeChangeP5(p, p5);
    for(j=0; j<p->db->nDb; j++) sqlite3VdbeUsesBtree(p, j);
    sqlite3MayAbort(p->pParse);
  }
diff --cc src/vtab.c
index f8eb4075f2790b24bee8e9b0831d561c87a47cec,ded12c13bb30bcbfbb60462969cf7d8915aa8ba8..2af425c6eac7618e0fc3bf5fcd32398472c90ced
@@@ -507,7 -489,7 +507,7 @@@ void sqlite3VtabFinishParse(Parse *pPar
  
      sqlite3VdbeAddOp0(v, OP_Expire);
      zWhere = sqlite3MPrintf(db, "name=%Q AND sql=%Q", pTab->zName, zStmt);
-     sqlite3VdbeAddParseSchemaOp(pParse, iDb, zWhere);
 -    sqlite3VdbeAddParseSchemaOp(v, iDb, zWhere, 0);
++    sqlite3VdbeAddParseSchemaOp(pParse, iDb, zWhere, 0);
      sqlite3DbFree(db, zStmt);
  
      iReg = ++pParse->nMem;