]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge recent trunk enhancements into the reuse-schema branch.
authordrh <>
Tue, 3 Aug 2021 16:11:59 +0000 (16:11 +0000)
committerdrh <>
Tue, 3 Aug 2021 16:11:59 +0000 (16:11 +0000)
FossilOrigin-Name: d71adc3fd85cfc5902b7146101d030ab2fbe932ed05848a407a7422ddeeb4c43

26 files changed:
1  2 
Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
src/alter.c
src/analyze.c
src/build.c
src/fkey.c
src/main.c
src/pragma.c
src/pragma.h
src/shell.c.in
src/sqlite.h.in
src/sqliteInt.h
src/test_config.c
src/trigger.c
src/vdbe.c
src/vdbeaux.c
src/vdbeblob.c
src/vtab.c
test/tclsqlite.test
test/threadtest3.c
test/tt3_checkpoint.c
test/tt3_vacuum.c
tool/mkpragmatab.tcl

diff --cc Makefile.in
Simple merge
diff --cc Makefile.msc
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 973651c2bc9e63ecc09e4f855a0051d5ea683026,837fef528d27a9584d03f2ead8144e40a6ab06a1..3edd007805ebbf8c9cbf1ce116b972e039c049ff
+++ b/manifest
@@@ -1,11 -1,11 +1,11 @@@
- C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
- D 2021-07-09T13:29:19.610
 -C Refactor\sfield\snames\sin\sthe\sColumn\sobject,\szCnName\sand\szCnColl,\sto\smake\sthem\nunique\sand\sthus\seasier\sto\sfind\samid\sall\sthe\sother\scode.
 -D 2021-08-02T18:03:43.555
++C Merge\srecent\strunk\senhancements\sinto\sthe\sreuse-schema\sbranch.
++D 2021-08-03T16:11:59.029
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
  F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 765671233690245f245781e7a7521db51efe95b411fbfa39b1aa47406b57b052
 -F Makefile.in 83c348515cb62f6f2a2ddf3fd014113ff20564b776e1a614079722c88c6ff43d
++F Makefile.in 27da61b991eee661f56262465d6feb3e4932904dda729cb9add349efff49c445
  F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc 8ec4a2ce36283c9610ddb38952ddf4f9e55e10b57ab2e60120f30b0946453f3e
 -F Makefile.msc 7dc32ba195639311ef4fa3d8f8ec218de37fde12d7ef5a33e9a7de921b0025ca
++F Makefile.msc c1241e5f498c1a7088758430c20e2f228ab25bc5ac4d7a96b367b119f3b99ced
  F README.md 27fb76aa7eb57ed63a53bbba7292b6bf71f51125554f79f16b5d040edd1e6110
  F VERSION c6595fef606851f2bc3ebed6a7386c73751835fc909feab7c093739fa4b3c1d1
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@@ -467,7 -466,7 +467,7 @@@ F ext/userauth/userauth.c 7f00cded7dcaa
  F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
  F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
  F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk f79de1d47ccbebd544b9b930d8d5b97325c996f60df4ecc6c24f6952986c33c1
 -F main.mk 4e075c9618c06c55d1cc723087b0722f384247b6b8db1ac2cb161f864c953c97
++F main.mk 0d98192758cdb5d3766f5ce5d0fddea9ca201bdbd990a9eb98ebe79baba89ef0
  F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
  F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
  F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
@@@ -479,37 -478,37 +479,37 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7
  F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
  F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
  F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 7ea3ac556f07519db009f5e273094bfe6f3b1e2986692dbd955ea59c1aac7ede
- F src/analyze.c 8b522a57784406d75f544e6d67f3fe7a7196702d3d954b7678bb4b4fe789e5a4
 -F src/alter.c 3ce23a6f06a789de05e0bfd581f9dd6367a50135def2688cfd0af78675cae676
 -F src/analyze.c abbaaf7dca79d1c31c713500324fc0b55bf3eeac5b7b07001452a3d0f210de4f
 -F src/attach.c a514e81758ba7b3a3a0501faf70af6cfc509de8810235db726cfc9f25165e929
++F src/alter.c 701e809c6af98d2af6d993af0412d5b14e0bae733c62e30895a5d6d3026447ad
++F src/analyze.c da68cbd52e696dca799da27c30721b604a55e156fdeb232be7bc5ef2618de7c3
 +F src/attach.c 74fab1b71a5fef866eae143aa5fa8c66174a4aa5829189764948e621ad3adbd6
- F src/auth.c 08954fdc4cc2da5264ba5b75cfd90b67a6fc7d1710a02ccf917c38eadec77853
+ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
  F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
  F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
  F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
  F src/btree.c e204a9c8fb4fe5dbb910a863ba487f4af9b5c501254ec4ccbfcdd6b1f65b7fb4
  F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22
  F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae0
- F src/build.c fc5cbb36fc23c22a00507dbc303deb9b52dad56155e932690cd288ae5f4d6031
 -F src/build.c 8b1f2a80155a1e140030848fdc951ceb31c055212768d992d62d3bca1c588942
 -F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
++F src/build.c a9e07d7af7c83357151fa8e05e9f801dbdd77cad2e17ec086e4ffd7224a347c1
 +F src/callback.c d8cdf5d697a31cf54a2b64bce9001fe24f3522a566f44c9fe1eb3a0c7e291c56
  F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 -F src/ctime.c 8159d5f706551861c18ec6c8f6bdf105e15ea00367f05d9ab65d31a1077facc1
 +F src/ctime.c 22b5ea591c18d677b521a99d375dfc626917bc23786c5f52aca113924b8edb9e
  F src/date.c e0632f335952b32401482d099321bbf12716b29d6e72836b53ae49683ebae4bf
  F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a
  F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c
- F src/delete.c 62451bba9fe641159e9c0b7d9d2bab1c48d0cff11e16de2d14000603d2af1fcf
- F src/expr.c 62b6d0ac8ee30a4749b78b7b75ae951a911a5d49321af5fe41c05af4df9e7537
+ F src/delete.c b43f0f4db586acf0b4078e3982485c26fbec984674df513d5ade48a08a323c5a
+ F src/expr.c 0d541b9f9ecddf9d6d310f31922006f03509d7264ef53ac39c391b82a62383f9
  F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
- F src/fkey.c 6dcbab4ead1dbfdc19da70a8650e5734a5124765f75fb840100117a7a45980d2
- F src/func.c c96ac6f7c4f2d684217c4673a80446e1b50e25b5ea79366f333f484622d010a0
- F src/global.c 25ba4d58476f6be29bba9d9d14f7f146b78476d3a4d75ebb8c3b736328afe0f9
 -F src/fkey.c 7713a4e87755afbe85d1cb3e3e36b6a9989dc24a210a4e99bf2af9a9ae2851c2
++F src/fkey.c 3083323d69f09d04a31a8ab4f2fc74f11252167ab5c9a6ba106384470cb8901f
+ F src/func.c c224240cbc97fa5e9c4fe9acb128716cb835ca045532bca6951b7c45b020c56c
+ F src/global.c 5eba017ebbd887e2365e6e6e815e1619e41406b8946d17594e94116174787df5
  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 d560dc585c50e01b015cbf924c173de88f61c8c85b3d1adb9d4865b92fff2d72
+ F src/insert.c c6419bc4b447f3d4cdb7b1167690baaea3b796a80cea48e7cf26da65487d430d
  F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
  F src/loadext.c 0aa9e7f08e168e3874cb54984408e3976dafdf5616d511952c425b5ac088ea3e
- F src/main.c 4cbd51ada454634da9c9e1cb8755854a4bcbfb541efb6506c3bbbe74ba9bbc26
 -F src/main.c 2c17a667133d2d1666319cfef975a48aa640a3de0c57d68b362372a12ad5557b
++F src/main.c 248165c32d1e668239c55b320df16da51bfc240fc8e86aafb57f0606d8278f6e
  F src/malloc.c cbc93cdd429c4594912017d92ab656e2579aca64dbd1c6888551275bed46f25b
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
  F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@@ -538,23 -537,23 +538,23 @@@ F src/parse.y 0ba0baec5de6921ec8ba8bbcf
  F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
  F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
  F src/pcache1.c 388304fd2d91c39591080b5e0f3c62cfba87db20370e7e0554062bfb29740e9f
- F src/pragma.c 0db242cc1f0c52b255715a4b3fc4d82928f2bbb3f2d140cc02ef4dfecfd08741
- F src/pragma.h ce2b135cde481eeb198af0dfc4781d58528ce80b17580a2b747b8fd4bc969e44
 -F src/pragma.c af0f43789545622fd5377d71f6d4c0e7c9b9295a3f5d5b1242e4032d38ca12b5
 -F src/pragma.h a11b4798f9c49f156f130e1f7041a9fcc9d316a64f3501b6013acdd2e4c6f549
 -F src/prepare.c 0d53d20532aada295c1690792a125adbd6435f5ce703ff0adf1b9b3605238b67
++F src/pragma.c 0d91c5dd6c8f5088ec67962fc5730a0947d238bae5dd8b9b5290e136778ae9d7
++F src/pragma.h 6c85e80048ea4a4fa42e769cbfdd252046f83db2c6681cebace54d7bb7c43480
 +F src/prepare.c 3668279bfdec5e58e54a284b068d36746efadd5b2ecbb7475f3a1d12a8297653
  F src/printf.c 78fabb49b9ac9a12dd1c89d744abdc9b67fd3205e62967e158f78b965a29ec4b
  F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
- F src/resolve.c b379c5ffe3b692e9c64fa37817cc0efa204b7c9468a818309dde85fd132d9d81
+ F src/resolve.c 42b94d37a54200707a95566eff4f7e8a380e32d080016b699f23bd79a73a5028
  F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 1c1230aaa4e5979edd3c5a9f7a90ab856a302cca4962e8a7d08f42dd2e7e1a49
- F src/shell.c.in 6f0febe1616aa22d620601de1021da0933e85e1b878ce61d1d9fe08b3abc8be6
- F src/sqlite.h.in e771265620ab6297e6a4aef5bcac80a1b65594f63a89447cfd3ad7a9a0c62f3e
+ F src/select.c 52041124629704feb24b1bc7dabf8ec03a0857c69d23f2dd0c33c9ed3d074adb
 -F src/shell.c.in 24b99dae8818d1a234732d73f4d5b49f12b510bc62735a41c04e314fafae09e3
 -F src/sqlite.h.in 43fcf0fe2af04081f420a906fc020bde1243851ba44b0aa567a27f94bf8c3145
++F src/shell.c.in fc91f733040ae6a9e82f639273c21eb2be43f4fe4d77272f82de3f430ca101d3
++F src/sqlite.h.in a10c0512fa8f3cea54a01391d0e559a21873d2a9f3c331198e4fb9e2c1b18727
  F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
  F src/sqlite3ext.h e97f4e9b509408fea4c4e9bef5a41608dfac343b4d3c7a990dedde1e19af9510
- F src/sqliteInt.h 3a76e446ad646e6f4e221926885bbc843a0324408d98cdedd4346d6ade20a02b
 -F src/sqliteInt.h 6f02ceb8d6b8784faf7218bd58b59580837c9e95e54a5b34d48ae93504ba67ce
++F src/sqliteInt.h d1a8974ade4372a5a24231bb8011edaa8f4a2e5939b7d0d88dfefbb63850a0fb
  F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
 -F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
 +F src/status.c d0956e57c71160155f620a3efeb1e5c05a3f8b9a897dd09c5263268e5d237579
  F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
 -F src/tclsqlite.c 05663f6b5010b044eac0ef22fc8fb5ea3406d2502700a898261683258042c88b
 +F src/tclsqlite.c 1ae70091c34402aec6f637ef5646789f68be1169fe4332d6844db0666773cee3
  F src/test1.c 2100f4c28bae21ce83a9a0c5ec6827efd0e15d11b93b569b614daa5654b3fcf6
  F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
  F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
@@@ -570,7 -569,7 +570,7 @@@ F src/test_backup.c bf5da90c9926df0a4b9
  F src/test_bestindex.c 78809f11026f18a93fcfd798d9479cba37e1201c830260bf1edc674b2fa9b857
  F src/test_blob.c ae4a0620b478548afb67963095a7417cd06a4ec0a56adb453542203bfdcb31ce
  F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274
- F src/test_config.c ec23c06759a2911c1d4e5464cfe4301b83de117475beb4a7d13a7c159c56c136
 -F src/test_config.c 284c29912736f68b0a583a920bf63fd8f9125dffb8a75cb0676e58502b2f7908
++F src/test_config.c 0e61f2cd80fe27186192507ab42e55abdd62cf58557b3d63df50f369fdfbccef
  F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f
  F src/test_demovfs.c 86142ba864d4297d54c5b2e972e74f3141ae4b30f05b3a95824184ed2d3d7f91
  F src/test_devsym.c aff2255ea290d7718da08af30cdf18e470ff7325a5eff63e0057b1496ed66593
@@@ -610,34 -608,34 +610,34 @@@ 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 bae853ad129d1129c063de8630a3e99e306283bc40146f359b1bb91be2c08f1e
 +F src/tokenize.c 9495a8272c339a330071d0078a85d1e2f36d1f4c39306495c2b080a2350060e1
- F src/treeview.c ce7a3da38caba094c78d888d2366f749ea33dc8cbafb04218b57768fb8669a6c
- F src/trigger.c 9bb571c9d18e6ed687da3616e97e026cf1458373cdcb429023cee3371c214abc
- F src/update.c ff10c7ca6dc9007cdebb3eee6630e87639ef9f949ccb574c34f9d34c52c32fb9
- F src/upsert.c df8f1727d62b5987c4fd302cd4d7c0c84ae57cd65683c5a34a740dfe24039235
+ F src/treeview.c 43f88d0fd19976a60aee6867959213b438593276f1e8179048df85f416a1ab19
 -F src/trigger.c 3f612ce5f0858b6c23460a3c799d01f408b49b0b29d931d8b8e6fc224a8667de
++F src/trigger.c db412c9616de92de782540e84095262eec7eabc5627b3a5f3974ec30bcf58204
+ F src/update.c 69c4c10bc6873a80c0a77cb578f9fc60ee90003d03f9530bc3370fa24615772d
+ F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937
  F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c 41c7a72da1df47864faa378a1c720b38adb288c6838cb6be5594511b6287a048
+ F src/util.c b18a971c8936e9299fecc00474269a11135989d6fe9bd91b1e52137d6f27bd8c
 -F src/vacuum.c 454973a59fb20bb982efc2df568a098616db6328a0491b6e84e2e07f7333db45
 -F src/vdbe.c b73a5ec9940185eb001ff8cff2cfd429bb438c7e89f2885e0bfdb56c3ff13386
 -F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
 +F src/vacuum.c 344acf0354037adb6d64451968a4ec0a6a8f81e753acdc5fe852cb4d4fcf4a6a
- F src/vdbe.c 001e4d3204008a3723ff77e95eebf307bc18e9737e290bcffb26c96c1a393e6f
++F src/vdbe.c 7c72ebe8ef2457c906e78bbd9ad5dec1f628f4be35610bd32c0748fa3568526e
 +F src/vdbe.h bfde0b0f429a0ba4203e5319780a6a1c8b2a809c5cd6baa9ae22e257a657b8b3
- F src/vdbeInt.h 1fc1e3581afcd3f56bdbe930639edac84ee823c034f31da97f49c35522f4c8c2
+ F src/vdbeInt.h 38206c8dd6b60ff03d9fd4f626b1b4fd0eef7cdc44f2fc2c1973b0f932a3f26b
  F src/vdbeapi.c aa5aaf2c37676b83af5724c6cd8207a3064ed46a217fd180957f75ac84f7a2a5
- F src/vdbeaux.c 311422fcf2abb6021258e15519730ee09f936689f3808169e95e9d3f0f5e1070
- F src/vdbeblob.c 3356ecdb98661972977744bb5c66c9cc02c0fc512267e749949b6d8b792dabe4
 -F src/vdbeaux.c 202dbaf7d1570cd53678f6b0bcad7b0642e88bc5d77abc1d5b8b9a202a6a19fd
 -F src/vdbeblob.c 60a7694760e35b2bba166cf49eb6a1eb0b31581102b49de78008ca3032406065
++F src/vdbeaux.c 5250e05b384afdcd6499b944c41abd927ba165afe142f67450d08838abde55bf
++F src/vdbeblob.c ae6c3cbc723d0a21d6a5c61c573b45080f795e15a524bc29953bc3114348fa7a
  F src/vdbemem.c 53881aa0a7845922a075b3f375695588618098871a7a4120af4c297b80fa3e64
  F src/vdbesort.c cd5130f683706c1a43e165a74187745fb3351cb56052cf9dc91de820634bbde2
  F src/vdbetrace.c 666c6fd9f1b62be6999e072a45b913e3c2c3518bc60dfd4d54fe304130acb724
  F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
- F src/vtab.c 6dfae0d85a6757f58199bac4c7917ff82133664d2fcdc633ce4b08d03ef96110
 -F src/vtab.c 75bdaec808be883b8bb69a1f0a479c3a359823c5a85a26497cd5d90d3c30b74b
++F src/vtab.c 334d3ebd9743a628e17b51b78e84184e5b85ec3d08170bcbfa21a17d779b7484
  F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c c8ec20a1ca161d5635a4f19c2a4efec2e006e19a8a61f272bf6bce1c80ab7436
+ F src/wal.c 2be08331d798237ad5d7ae0b252700ffb2b63189cb18d993496d009a93e2f81c
  F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
  F src/walker.c 7342becedf3f8a26f9817f08436bdf8b56ad69af83705f6b9320a0ad3092c2ac
- F src/where.c 07a4097fe42a01b1f99d2a136598654051f0bdcd6c17cbef7fa285a9cf21e4d2
+ F src/where.c 99b6e13664a7bd9a553c554978d0e253066995dade621f44cffa8928c8b493b5
  F src/whereInt.h 9248161dd004f625ce5d3841ca9b99fed3fc8d61522cf76340fc5217dbe1375b
- F src/wherecode.c 9f1f65d11437b25cd0a1497a170514c785f19ce6ad9d3e6fc73719cb5a49012f
- F src/whereexpr.c 2bfb1cd24b9b63fc5e32b9b85f2b3f88765bdac2aab51102d94d1fb56ec2917b
- F src/window.c 559961a731f67a0873744960bdeeb034a5c74cc0a09badb14bc43f74744a2a9d
+ F src/wherecode.c ef36790a797fa679f58dbd51930e3ee7ef7cb6c906ae412032e4d319a36a2eef
+ F src/whereexpr.c 3a9144a9d52e110efdc012a73b1574e7b2b4df4bf98949387cb620295eba0975
+ F src/window.c 420167512050a0dfc0f0115b9f0c7d299da9759c9bb2ae83a61fb8d730a5707f
  F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
  F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
  F test/affinity3.test eecb0dabee4b7765a8465439d5e99429279ffba23ca74a7eae270a452799f9e7
@@@ -1455,7 -1446,7 +1455,7 @@@ F test/tabfunc01.test d6821e7042e565310
  F test/table.test eb3463b7add9f16a5bb836badf118cf391b809d09fdccd1f79684600d07ec132
  F test/tableapi.test ecbcc29c4ab62c1912c3717c48ea5c5e59f7d64e4a91034e6148bd2b82f177f4
  F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
- F test/tclsqlite.test 9ad3f8d337ae8e460b25d82094ff1b4f180afc3ca73856ec5a90ac215f43906c
 -F test/tclsqlite.test 316c96f974f0e6d7480186e3f5bb53413e5ee5480596544a97484888912a365c
++F test/tclsqlite.test 03b70fcd669745fe315c900389c928cdab61ee182ad6c75bd21a54d023f57bcb
  F test/tempdb.test 4cdaa23ddd8acb4d79cbb1b68ccdfd09b0537aaba909ca69a876157c2a2cbd08
  F test/tempdb2.test 353864e96fd3ae2f70773d0ffbf8b1fe48589b02c2ec05013b540879410c3440
  F test/tempfault.test 0c0d349c9a99bf5f374655742577f8712c647900
@@@ -1474,7 -1465,7 +1474,7 @@@ F test/thread2.test f35d2106452b77523b3
  F test/thread_common.tcl 334639cadcb9f912bf82aa73f49efd5282e6cadd
  F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
  F test/threadtest2.c a70a8e94bef23339d34226eb9521015ef99f4df8
- F test/threadtest3.c e58f0e1b6a3e4ccb24f831650c296e800f6299cc258793f6fc372591f416cb93
 -F test/threadtest3.c 655bff6c0895ec03f014126aa65e808fac9aae8c5a7a7da58a510cbe8b43b781
++F test/threadtest3.c 25cb92accb4fa6d53e708d6006ed2db7a7533ef7b838ef1306455c6fe57e978a
  F test/threadtest4.c c1e67136ceb6c7ec8184e56ac61db28f96bd2925
  F test/threadtest5.c 9b4d782c58d8915d7e955ff8051f3d03628bda0d33b82971ea8c0f2f2808c421
  F test/time-wordcount.sh 8e0b0f8109367827ad5d58f5cc849705731e4b90
@@@ -1648,13 -1639,12 +1648,13 @@@ F test/triggerF.test 5d76f0a8c428ff87a4
  F test/triggerG.test 2b816093c91ba73c733cfa8aedcc210ad819d72a98b1da30768a3c56505233e9
  F test/triggerupfrom.test d1f9e56090408115c522bee626cc33a2f3370f627a5e341d832589d72e3aa271
  F test/trustschema1.test 4e970aef0bfe0cee139703cc7209d0e0f07725d999b180ba50770f49edef1494
- F test/tt3_checkpoint.c 9a7fe00e07700af027769d83ef67ab727927ae6c865ecdc71fe8011194200c53
 -F test/tt3_checkpoint.c ac7ca661d739280c89d9c253897df64a59a49369bd1247207ac0f655b622579d
 -F test/tt3_index.c 39eec10a35f57672225be4d182862152896dee4a
 -F test/tt3_lookaside1.c 0377e202c3c2a50d688cb65ba203afeda6fafeb9
++F test/tt3_checkpoint.c 69214e2ce81bbbd3c1b82c31e103607fd2e6790818aef4792957fc9cc88d067e
 +F test/tt3_index.c 95592839426dc85ce5a7a57b41be2cbf3c2ec3457b9cd841a06ed5877f712c7c
 +F test/tt3_lookaside1.c 2ddd99bfffeef288f0786827ef68f912f6f47ce3d3184e62f05808d8e13b920e
 +F test/tt3_reuseschema.c 4d52e141f89f009028d8ab0bd1f0697d0edffa94bafc1fff0f7ad4d9d9baa549
  F test/tt3_shared.c b37d22defc944a2ac4c91c927fd06c1d48cd51e2ce9d004fe868625bd2399f93
 -F test/tt3_stress.c f9a769ca8b026ecc76ee93ca8c9700a5619f8e51c581107c4053ba6ac97f616f
 -F test/tt3_vacuum.c 71b254cde1fc49d6c8c44efd54f4668f3e57d7b3a8f4601ade069f75a999ba39
 +F test/tt3_stress.c 077e817ac1168443b075fedb44e92db84bb4dc5bd3b6fe1aba25c94ac280b231
- F test/tt3_vacuum.c ca42adcf8a671abbe34338b828464269e21758a6b4857b889dabfd39a3206d98
++F test/tt3_vacuum.c 727bfda1299b18435eeba80dee8e6ff43462146d7c1e2096cc809f01db568391
  F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
  F test/types2.test 1aeb81976841a91eef292723649b5c4fe3bc3cac
  F test/types3.test 99e009491a54f4dc02c06bdbc0c5eea56ae3e25a
@@@ -1860,11 -1850,11 +1860,11 @@@ F tool/mkccode.tcl 86463e68ce9c15d30416
  F tool/mkctimec.tcl 5ef1891ed3d0e8143ff39bad7c01ed60c2817a2fb2d9a09487f7ccad2df621e4
  F tool/mkkeywordhash.c 08b6e4d7a482a7f37a9a0032e7ba968e26624a027b6b2e9ba589be6f5e3d8c2c
  F tool/mkmsvcmin.tcl 6ecab9fe22c2c8de4d82d4c46797bda3d2deac8e763885f5a38d0c44a895ab33
- F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c
+ F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
  F tool/mkopcodeh.tcl 130b88697da6ec5b89b41844d955d08fb62c2552e889dec8c7bcecb28d8f50bd
  F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
- F tool/mkpragmatab.tcl 37381569b5a5cd3269e3fdbc08829eb1a5f7c2a8e59ee7be8995127e5ef99e0d
- F tool/mkshellc.tcl 5fe7e518112b262e25726f248c0f33dd153192867453984b6af0a76a88e97cb2
 -F tool/mkpragmatab.tcl 7f6db47d1995bc08247255622524567b2ab8962d98063f8aef97e35c3c54e3b8
++F tool/mkpragmatab.tcl 720adb9f91c992a2783a6ae98454d61b124c5c8a26b383322fe8a8a0d99a76a8
+ F tool/mkshellc.tcl df5d249617f9cc94d5c48eb0401673eb3f31f383ecbc54e8a13ca3dd97e89450
  F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
  F tool/mksqlite3c-noext.tcl 4f7cfef5152b0c91920355cbfc1d608a4ad242cb819f1aea07f6d0274f584a7f
@@@ -1930,7 -1920,7 +1930,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 792215204d887ecb8b1a0d65773d272b84606c9867b52d94701039de5c8bb12c 0f97c2a459bfadc2fe19e710e8845039b4434010656d311074b9594b02d0826a
- R c6eb6e45dd2af5a78568e120430d9a60
- U dan
- Z 01677c9d2c4937fcf26b705d5f5e2df2
 -P bbb6759bcf6e01d36dfc787a82a610d359f50aaeac8104b73883a84906d54e1f
 -R 7046be8b76bab8142bfe76e50eb88e2a
++P 0e968f9de3b706fedb675d058ed713a9e639c46d1482dec98c3449567242501e 8b781dcaf68e0cf12a844708c82eee00193e340195cbca915d077e4846983bf3
++R 7eccf6c733924e615151419c0de9017b
+ U drh
 -Z 5e85f685bd644cac3700fa74d443a453
++Z 0313cb80a016f3c3414f00738038a944
diff --cc manifest.uuid
index 9a91353317c08a78d14570d496c609a0438ca98d,2028f8b68673e09a80c8af2c199d50b93126d8c5..846a38634ad53e2fc8b13770df2c6899d8c4f1d5
@@@ -1,1 -1,1 +1,1 @@@
- 0e968f9de3b706fedb675d058ed713a9e639c46d1482dec98c3449567242501e
 -8b781dcaf68e0cf12a844708c82eee00193e340195cbca915d077e4846983bf3
++d71adc3fd85cfc5902b7146101d030ab2fbe932ed05848a407a7422ddeeb4c43
diff --cc src/alter.c
Simple merge
diff --cc src/analyze.c
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/fkey.c
index 39640d0b4ebc971eca9a7e0a9d130e752bc59ec5,ee5aa5d98fda859ec9bb50201b85248eb21c5cdc..c3e6089d30cb9c2be0755cfde8f00860341c21ea
@@@ -1416,9 -1421,9 +1421,10 @@@ void sqlite3FkDelete(sqlite3 *db, Tabl
    FKey *pFKey;                    /* Iterator variable */
    FKey *pNext;                    /* Copy of pFKey->pNextFrom */
  
-   for(pFKey=pTab->pFKey; pFKey; pFKey=pNext){
+   assert( !IsVirtual(pTab) );
 -  assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pTab->pSchema) );
+   for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pNext){
 +    assert( db==0 || IsVirtual(pTab)
 +         || sqlite3SchemaMutexHeld(db, 0, pTab->pSchema) );
  
      /* Remove the FK from the fkeyHash hash table. */
      if( !db || db->pnBytesFreed==0 ){
diff --cc src/main.c
index 9c85f5ae3fb5a36e95a6b2a90417d6ad6f14bc80,3c1191c3683876ec1f424d902ddc8ce047aed15b..b6f4e11aecbbf7aebd631ff98e1765ce3b33f2c8
@@@ -1344,7 -1333,6 +1344,7 @@@ void sqlite3LeaveMutexAndCloseZombie(sq
        sqlite3BtreeClose(pDb->pBt);
        pDb->pBt = 0;
        if( j!=1 ){
-         sqlite3SchemaDisconnect(db, j, 0);
++        (void)sqlite3SchemaDisconnect(db, j, 0);
          pDb->pSchema = 0;
        }
      }
@@@ -3731,23 -3730,8 +3742,23 @@@ int sqlite3_table_column_metadata
    }
  
    /* Locate the table in question */
 -  pTab = sqlite3FindTable(db, zTableName, zDbName);
 +  if( rc==SQLITE_OK ){
 +#ifdef SQLITE_ENABLE_SHARED_SCHEMA
 +    Parse sParse;                   /* Fake Parse object for FindTable */
 +    Parse *pSaved = db->pParse;
 +    memset(&sParse, 0, sizeof(sParse));
 +    db->pParse = &sParse;
 +#endif
 +    pTab = sqlite3FindTable(db, zTableName, zDbName);
 +#ifdef SQLITE_ENABLE_SHARED_SCHEMA
 +    sqlite3_free(sParse.zErrMsg);
 +    rc = sParse.rc;
 +    db->pParse = pSaved;
 +#endif
 +  }
 +  if( SQLITE_OK!=rc ) goto error_out;
 +
-   if( !pTab || pTab->pSelect ){
+   if( !pTab || IsView(pTab) ){
      pTab = 0;
      goto error_out;
    }
diff --cc src/pragma.c
Simple merge
diff --cc src/pragma.h
Simple merge
diff --cc src/shell.c.in
index bb1fcef5997140f44c824fc5d8d88901986d3162,7e610fdeeff3378b6b6dd545942b0bd8daa1744d..9d6e5a7ba303d575256bd059708c6b85c454d863
@@@ -4611,14 -4611,9 +4618,14 @@@ static void open_db(ShellState *p, int 
              SQLITE_OPEN_READONLY|p->openFlags, 0);
          break;
        }
-         sqlite3_open_v2(p->zDbFilename, &p->db,
 +      case SHELL_OPEN_SHAREDSCHEMA: {
++        sqlite3_open_v2(p->pAuxDb->zDbFilename, &p->db,
 +          SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_SHARED_SCHEMA,0);
 +        break;
 +      }
        case SHELL_OPEN_UNSPEC:
        case SHELL_OPEN_NORMAL: {
-         sqlite3_open_v2(p->zDbFilename, &p->db,
+         sqlite3_open_v2(zDbFilename, &p->db,
             SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|p->openFlags, 0);
          break;
        }
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
Simple merge
diff --cc src/trigger.c
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeaux.c
Simple merge
diff --cc src/vdbeblob.c
Simple merge
diff --cc src/vtab.c
index 4cd28649ae318d38e1238e70442f9d2428a78ad9,c66a154678d003de15ce66f2e5dc06546915424a..dc6ca75a619e1473475854d6d9699ee0c6cf386b
@@@ -192,25 -192,7 +192,25 @@@ void sqlite3VtabLock(VTable *pVTab)
  VTable *sqlite3GetVTable(sqlite3 *db, Table *pTab){
    VTable *pVtab;
    assert( IsVirtual(pTab) );
-   for(pVtab=pTab->pVTable; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);
 +#ifdef SQLITE_ENABLE_SHARED_SCHEMA
 +  if( IsSharedSchema(db) ){
 +    int iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
 +    if( iDb!=1 ){
 +      VTable **pp;
 +      for(pp=&db->aDb[iDb].pVTable; *pp; pp=&(*pp)->pNext){
 +        if( sqlite3StrICmp(pTab->zName, (*pp)->zName)==0 ) break;
 +      }
 +      pVtab = *pp;
 +      if( pVtab && pTab->nCol<=0 ){
 +        *pp = pVtab->pNext;
 +        sqlite3VtabUnlock(pVtab);
 +        pVtab = 0;
 +      }
 +      return pVtab;
 +    }
 +  }
 +#endif /* ifdef SQLITE_ENABLE_SHARED_SCHEMA */
+   for(pVtab=pTab->u.vtab.p; pVtab && pVtab->db!=db; pVtab=pVtab->pNext);
    return pVtab;
  }
  
@@@ -656,22 -630,12 +657,23 @@@ static int vtabCallConstructor
        int iCol;
        u16 oooHidden = 0;
        /* If everything went according to plan, link the new VTable structure
-       ** into the linked list headed by pTab->pVTable. Or, if this is a
 -      ** into the linked list headed by pTab->u.vtab.p. Then loop through the 
 -      ** columns of the table to see if any of them contain the token "hidden".
 -      ** If so, set the Column COLFLAG_HIDDEN flag and remove the token from
 -      ** the type string.  */
 -      pVTable->pNext = pTab->u.vtab.p;
 -      pTab->u.vtab.p = pVTable;
++      ** into the linked list headed by pTab->u.vtab.p. Or, if this is a
 +      ** reusable schema, into the linked list headed by Db.pVTable.
 +      **
 +      ** Then loop through the columns of the table to see if any of them
 +      ** contain the token "hidden". If so, set the Column COLFLAG_HIDDEN flag
 +      ** and remove the token from the type string.  */
 +#ifdef SQLITE_ENABLE_SHARED_SCHEMA
 +      if( IsSharedSchema(db) && iDb!=1 ){
 +        pVTable->pNext = db->aDb[iDb].pVTable;
 +        db->aDb[iDb].pVTable = pVTable;
 +      }else
 +#endif /* ifdef SQLITE_ENABLE_SHARED_SCHEMA */
 +      {
-         pVTable->pNext = pTab->pVTable;
-         pTab->pVTable = pVTable;
++        assert( IsVirtual(pTab) );
++        pVTable->pNext = pTab->u.vtab.p;
++        pTab->u.vtab.p = pVTable;
 +      }
  
        for(iCol=0; iCol<pTab->nCol; iCol++){
          char *zType = sqlite3ColumnType(&pTab->aCol[iCol], "");
Simple merge
index cf67ca5fae084c512f9c4fff07898f4fa8d56656,3a12c5889b308c5796cffd3d9777b7d76055dd48..0faa8473c92871460dac50c7089cd0378bc4b3fa
@@@ -968,9 -1024,9 +1027,9 @@@ static char *walthread1_ckpt_thread(in
    Sqlite db = {0};                /* SQLite database connection */
    int nCkpt = 0;                  /* Checkpoints so far */
  
 -  opendb(&err, &db, "test.db", 0);
 +  opendb(&err, &db, "test.db", 0, 0);
    while( !timetostop(&err) ){
-     usleep(500*1000);
+     sqlite3_sleep(500);
      execsql(&err, &db, "PRAGMA wal_checkpoint");
      if( err.rc==SQLITE_OK ) nCkpt++;
      clear_error(&err, SQLITE_BUSY);
Simple merge
index 6598a9eec4a8e91af57057603d7e4c7a860d6b50,c41a6b487d1465d3c54cb4e35dedf13791607c21..4e4b08319273c11e4e1ed40f335dd9a0b3b2e808
@@@ -23,9 -23,9 +23,9 @@@
  static char *vacuum1_thread_writer(int iTid, void *pArg){
    Error err = {0};                /* Error code and message */
    Sqlite db = {0};                /* SQLite database connection */
-   opendb(&err, &db, "test.db", 0, 0);
    i64 i = 0;
  
 -  opendb(&err, &db, "test.db", 0);
++  opendb(&err, &db, "test.db", 0, 0);
    while( !timetostop(&err) ){
      i++;
  
Simple merge