- C Merge\sthe\slatest\strunk\senhancements\sinto\sthe\sreuse-schema\sbranch.
- D 2022-12-21T21:01:04.714
-C Do\snot\sattempt\sto\srun\snew\stest\sfile\srbupass.test\sif\sthe\s"demo"\sVFS\sis\snot\savailable.
-D 2023-01-12T19:28:34.870
++C Merge\slatest\strunk\schanges,\sincluding\sfixes\sfor\sRBU\spass-through\smode,\swith\sthis\sbranch.
++D 2023-01-12T19:43:24.766
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
- F Makefile.in 7cc362212ac387874b3db2e2d794298365c500803654bc5e95e8c8e02f202988
-F Makefile.in 341f02570d220695100004c447773ecb6c082e24178fc45dcbc0a212abaa0655
++F Makefile.in 26a8a393f18df079dd80b169fe967b8c9cdacf34333a273a13c7c58d303a7e1e
F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
- F Makefile.msc af280f73a6dab3cda2e75c7ee583bc6dc65bac8f13b4846c6dd23dac97b3797c
-F Makefile.msc 5a13f784bd91c246673648f056e7f3193c45d53dff874eecde547ec854c292b8
++F Makefile.msc 694aec017c7634cbf044cd8bedfd39a1dadf238f30dc9492354f006c918fce69
F README.md 8b8df9ca852aeac4864eb1e400002633ee6db84065bd01b78c33817f97d31f5e
F VERSION 413ec94920a487ae32c9a2a8819544d690662d6f7c7ce025c0d0b8a1e74fa9db
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
-F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
+F ext/wasm/EXPORTED_FUNCTIONS.fiddle 7fb73f7150ab79d83bb45a67d257553c905c78cd3d693101699243f36c5ae6c3
- F ext/wasm/GNUmakefile 06d385b51bfb206cf779cf1bb816862f77df97fff97a6df9baf05b98c027067a
+ F ext/wasm/GNUmakefile ffe0e9818a3b6b36c85a1d10dab76b220a8f5cd83439c62e50223a7970b3d68a
F ext/wasm/README-dist.txt 2d670b426fc7c613b90a7d2f2b05b433088fe65181abead970980f0a4a75ea20
F ext/wasm/README.md ef39861aa21632fdbca0bdd469f78f0096f6449a720f3f39642594af503030e9
-F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api d6a5078f48a5301ed17b9a30331075d9b2506e1360c1f0dee0c7816c10acd9ab
+F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api c5eaceabb9e759aaae7d3101a4a3e542f96ab2c99d89a80ce20ec18c23115f33
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
F ext/wasm/api/README.md 77a2f1f2fc60a35def7455dffc8d3f2c56385d6ac5c6cecc60fa938252ea2c54
- F ext/wasm/api/extern-post-js.c-pp.js 8923f76c3d2213159e12d641dc750523ead5c848185dc4996fae5cc12397f88d w ext/wasm/api/extern-post-js.js
+ F ext/wasm/api/extern-post-js.c-pp.js 8923f76c3d2213159e12d641dc750523ead5c848185dc4996fae5cc12397f88d
F ext/wasm/api/extern-pre-js.js cc61c09c7a24a07dbecb4c352453c3985170cec12b4e7e7e7a4d11d43c5c8f41
F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08902f15c34720ee4a1
F ext/wasm/api/post-js-header.js 47b6b281f39ad59fa6e8b658308cd98ea292c286a68407b35ff3ed9cfd281a62
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
- F main.mk e5d529a269d387065040052eb7dfeb1702723dc11501cb7c992a1640edbbd7f9
-F main.mk ed4950f3e1d03687e6c94c0f9aa26373ddab628030480d1e298097cfe0b9a5cf
++F main.mk 4acf0f4d99723e73dadceae339ebc8cda3ab1efdbb8372fc24bdbdaf803de76c
F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
F sqlite_cfg.h.in baf2e409c63d4e7a765e17769b6ff17c5a82bbd9cbf1e284fd2e4cefaff3fcf2
- F src/alter.c 23f95fd33885c27edb5ece2bec9c184d3c7e575a3de60a97c036aa9d225e06f4
-F src/alter.c 3ca2f449c890f8b86ec9e06f0c4fccf0648941c3308a16904cb2852227db83f7
-F src/analyze.c d2fce73f6a024897593012c6ca25368629fa4aeb49960d88a52fac664582e483
-F src/attach.c 4431f82f0247bf3aaf91589acafdff77d1882235c95407b36da1585c765fbbc8
++F src/alter.c dab37a80032366d27a415d7a769aa1a7bba2358424f1f67dd910e25ffffe055f
+F src/analyze.c e242f6ad429477397bbf104a5c26a5682e7a70c1114673e7d5280c5bca3fcf0a
+F src/attach.c e1eb237a21422b2d637fd854e1b72609b1b589e24b4b3a5cac0e13c9ef20ee8d
F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7
F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d
F src/btmutex.c 6ffb0a22c19e2f9110be0964d0731d2ef1c67b5f7fabfbaeb7b9dabc4b7740ca
- F src/btree.c 2f794c217e52fdf4322bf37ee7778331b4d93aed2c00b5d67f914c0239a9edcc
- F src/btree.h 49da925329574798be3cbb745a49d069a9e67c99900d8a0d04b1e934d60394ea
- F src/btreeInt.h 88ad499c92b489afedbfefc3f067c4d15023ec021afe622db240dc9d2277cfa5
- F src/build.c 74432e7aeb69af29716b22bfb3887cb0d53ec39d3a62957a96592b489c658d3b
+ F src/btree.c 8b776a47d1e791ca78b539b8356cf32e449a613201cf64b87e7f01c62f79bd1b
+ F src/btree.h aa354b9bad4120af71e214666b35132712b8f2ec11869cb2315c52c81fad45cc
+ F src/btreeInt.h 06bb2c1a07172d5a1cd27a2a5d617b93b1e976c5873709c31964786f86365a6e
-F src/build.c c55ab6d1b089ceef57160e840f05f692955ac90944c3d04fcf01d97fd7bfd08d
-F src/callback.c 4cd7225b26a97f7de5fee5ae10464bed5a78f2adefe19534cc2095b3a8ca484a
++F src/build.c 94d3e9ff44fb5eb18b7e39ece52f1049cbd9cd9ded844740fa2ed0c6b8694f78
+F src/callback.c bd46ff3b1c6a241a24d80d3ffb695a63dc71eb73c8b76a3bd29b3668fa1ccb86
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
-F src/ctime.c 20507cc0b0a6c19cd882fcd0eaeda32ae6a4229fb4b024cfdf3183043d9b703d
+F src/ctime.c 7dd467e9116985022644f4120c812ea397fbfea67c728c892830d45bab7cee76
F src/date.c 94ce83b4cd848a387680a5f920c9018c16655db778c4d36525af0a0f34679ac5
- F src/dbpage.c f1a87f4ebcf22284e0aaf0697862f4ccfc120dcd6db3d8dfa3b049b2580c01d8
- F src/dbstat.c a56a7ad1163a9888d46cd5820be2e65354fb1aa04ed6909f7c3e5831e0ee2c29
+ F src/dbpage.c 254e3a228892ab6139beda795ebc9c60b876aae59eb9cd9290d11dc261c8d824
+ F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef
F src/delete.c 86573edae75e3d3e9a8b590d87db8e47222103029df4f3e11fa56044459b514e
F src/expr.c 204af6a83c191f5ac19ec4af6ecc546f188cc2dd1c76fc5280982f710ec4b9c4
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/insert.c 1b11a2e33ee52db93c02fddac67e39d00161d61b69fac2675b82f2aa68c1b61c
F src/json.c 7749b98c62f691697c7ee536b570c744c0583cab4a89200fdd0fc2aa8cc8cbd6
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 25663175950c5c4404b9377840b7b4c6fe5c53b415caf43634c62f442c02a9a7
- F src/main.c 6de7b70c468f6c05fbc3a0e47933ffc279d0b3c3aa6053fbfb5e6cae151c3da1
+ F src/loadext.c b04eb648cedc45efe4298e1ef439ac4f0096ae27b5f01accb0a1f49d57789128
-F src/main.c f5ed7b748d7e54b96ac577a9d87af9461f13f092bbe684d473448010333402dc
++F src/main.c bcccf06ba1c14853bfaa71ea7758b9c5b1b845b5b59e43ea717e05fb8fbdf8d4
F src/malloc.c 47b82c5daad557d9b963e3873e99c22570fb470719082c6658bf64e3012f7d23
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
F src/pcache.c f4268f7f73c6a3db12ce22fd25bc68dc42315d19599414ab1207d7cf32f79197
F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
F src/pcache1.c dee95e3cd2b61e6512dc814c5ab76d5eb36f0bfc9441dbb4260fccc0d12bbddc
- F src/pragma.c 6e211923bc179edcebcceeaba003d554db232bd72f75457a9a1e27205e9c979b
-F src/pragma.c 23e74aaa441a03e6d97098db5883f53ee50cc50d294ecefb916437b8484012b3
-F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
-F src/prepare.c 9ebd3a1b12bbd1951f0d6db850f32cf5d4547a6ab8bb9e958d75dfbe4e60d0a3
++F src/pragma.c b55821d295de6c8e195b4afedb34d594a857128d2d6f0b9fddaee6a0e71a4971
+F src/pragma.h 50f6d3b408ed56bde4f4e4aead8c0b2022030b692e8de237c1b7a0b5ce87a0c8
+F src/prepare.c c35e21962f1297b1862480cea450f4e596bf879f55fe0c0002b8da535d92b53f
F src/printf.c ff4b05e38bf928ff1b80d3dda4f977b10fe39ecbfe69c018224c7e5594fb2455
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c efea4e5fbecfd6d0a9071b0be0d952620991673391b6ffaaf4c277b0bb674633
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 83de67e4857be2866d048c98e93f65461d8a0408ca4ce88fec68ebfe030997ae
- F src/shell.c.in f2605f55ccf3e12667b33636328dfbd57ad83906524745cf9e56586a5b6769cc
- F src/sqlite.h.in c8a3e5698e22230ffc2827ac8b18d0a054f540f655e48c88be2cbfebb14ead21
+ F src/select.c 146222acbf9ea4e7f99c45a9e3cb4a0ba7e02c4f0df5186094ea1f9ea9907a02
-F src/shell.c.in f7c75d1a9f900516e40f17f040668d5797592344bd88cff7ee7df586de6893c6
-F src/sqlite.h.in 231d505c86ac4688b82259529273fe5fb2cce86cb80ea50628ff776113b5c706
++F src/shell.c.in a808e4c6433c57b0f6650ebc36877b538038d44479b06aac22e063eaa5b46413
++F src/sqlite.h.in 841d97c83dfc4085458c3ce80ef3a6753d95a96fa84954f3dbf04c9e3213cb63
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h c4b9fa7a7e2bcdf850cfeb4b8a91d5ec47b7a00033bc996fd2ee96cbf2741f5f
- F src/sqliteInt.h d71b6e65f9327e621433630111a8b8150cee7191423972582ad6c4a7fb363aa7
+ F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4
-F src/sqliteInt.h 079ccd9c161f4b74967188fd6321810159fdc4c32371b68559719828fac20f43
++F src/sqliteInt.h 2b3b552db57b586404fb70690b4af0f1112b5458c8c9612ebd25d5734ed2a9ae
F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
-F src/status.c 160c445d7d28c984a0eae38c144f6419311ed3eace59b44ac6dafc20db4af749
+F src/status.c 501433a8bdf64be125746a53bb9180761f9364428b59b318365eb88afd6d5cea
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
-F src/tclsqlite.c 4e64ba300a5a26e0f1170e09032429faeb65e45e8f3d1a7833e8edb69fc2979e
+F src/tclsqlite.c c5b9f6540d6de1adc6554589ce4011e07bb02250440a3e777ff86b40f1c1dd2c
- F src/test1.c 98f4a4525e10b0df164ba7f33950824348bb29fd582101e0f93b1af72f493154
+ F src/test1.c 39c13c25f5c4e75a07cb6bd34cfc1b8aa97ecc6f80f08953fa164db7e92ce71e
F src/test2.c 827446e259a3b7ab949da1542953edda7b5117982576d3e6f1c24a0dd20a5cef
F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
F src/test4.c 4533b76419e7feb41b40582554663ed3cd77aaa54e135cf76b3205098cd6e664
F src/test_async.c 195ab49da082053fdb0f949c114b806a49ca770a
F src/test_autoext.c 915d245e736652a219a907909bb6710f0d587871
F src/test_backup.c bf5da90c9926df0a4b941f2d92825a01bbe090a0
- F src/test_bestindex.c 8294d8223b7f18a3ddb7f9a0e30815dcca4e61681f78b538c870f7d934f88b81
+ F src/test_bestindex.c 1627f782e866a3f4b5ecd01cb46813686bf36612afc9755f26058717fe90b24e
F src/test_blob.c ae4a0620b478548afb67963095a7417cd06a4ec0a56adb453542203bfdcb31ce
F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274
-F src/test_config.c 8264637b06a3c1f0727c88d1ea32dcf7986b9e7e358a970cae87cdac8a5b2708
+F src/test_config.c 73ebdc35580900d12c20b984db9ec1abe860dc75f66ae703f2b6fc9d95e09dc1
F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f
F src/test_demovfs.c 38a459d1c78fd9afa770445b224c485e079018d6ac07332ff9bd07b54d2b8ce9
F src/test_devsym.c aff2255ea290d7718da08af30cdf18e470ff7325a5eff63e0057b1496ed66593
F src/update.c f118e51768d2c1309e3c81e9f91141b22b8a1339cbc5969b1b2d810feaa25b22
F src/upsert.c 5303dc6c518fa7d4b280ec65170f465c7a70b7ac2b22491598f6d0b4875b3145
F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c 313f3154e2b85a447326f5dd15de8d31a4df6ab0c3579bd58f426ff634ec9050
+ F src/util.c 0e5cf9062a796f0f1b6b3228b121b2344932c05425f7c8b5a7cb245812473bbd
-F src/vacuum.c 84ce7f01f8a7a08748e107a441db83bcec13970190ddcb0c9ff522adbc1c23fd
-F src/vdbe.c 238635c1c40d42d9ded72994b81d4127f99d6d09e9279bdd37f6f34f4025adee
-F src/vdbe.h 73b904a6b3bb27f308c6cc287a5751ebc7f1f89456be0ed068a12b92844c6e8c
+F src/vacuum.c 4c46040e481b32cc4f24946fd5509396bd9492ecf4c1455034b03eed8533c971
- F src/vdbe.c 71321d447151e1fa0657c05385ed7b0e5287c9ba55a718581a68048ff10f8c36
++F src/vdbe.c c2a219e16e0ad81a9d1a69aa8020b26eeac70c23121ea5d4045262b5ae828435
+F src/vdbe.h 0b42f767cef2f89db4fb4e1ff9e9a5a3e03998056bde156e64727dfb0b3814fc
- F src/vdbeInt.h 8651e4c4e04d1860d0bdcf330cb8294e3778a9d4222be30ce4c490d9220af783
- F src/vdbeapi.c df3f73a4d0a487f2068e3c84776cd6e3fba5ae80ff612659dcfda4307686420b
- F src/vdbeaux.c ebada461429ad38f4d5991ee59219af0579dc2c3ced1c49fbf816df42336d84b
+ F src/vdbeInt.h fc15815b7bdafbb27e7f027faba2b0112e87d382c0d72241672528806ebc0db5
+ F src/vdbeapi.c 4ee67890913c1d2469c68e3ad2e7ddeab57ac5924a64bbfd0906a8ea0d542c7f
-F src/vdbeaux.c 9eb7394126b88e55f81321d5e87636e0cd5e5856818d644d8abd6bfbb9c0be9d
-F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd
++F src/vdbeaux.c adffa86450bed74bac203254ad271e22b25fd3a242a1e6dc64e71394a8f41d9a
+F src/vdbeblob.c aa23a326ff86bdde8f7ba74cf23c3e1795b13bee749314feaf26273be2f63e89
- F src/vdbemem.c 6cfed43758d57b6e3b99d9cdedfeccd86e45a07e427b22d8487cbdbebb6c522a
+ F src/vdbemem.c 316d518115f3720b4097f0231e2a3d6eefd06c787eccf44972f8d8f462153421
F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf823
- F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
+ F src/vdbevtab.c aae4bd769410eb7e1d02c42613eec961d514459b1c3c1c63cfc84e92a137daac
-F src/vtab.c b2f993aa954078985bc40317bb2140fe0880a08a7440f3a428b60fce74636808
+F src/vtab.c d25ed4bd90e8a6ab71df8887667109069349e04f808170311991b93ee3bb0e7b
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d
F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb
F test/returning1.test 1366e04566cfe1a082d17b1e0f195ec64473c79374b3a5d4ae00c43d885dea31
F test/returningfault.test ae4c4b5e8745813287a359d9ccdb9d5c883c2e68afb18fb0767937d5de5692a4
- F test/reuse3.test 876d15c42d61b1f6ab718cd8169912514ad314d7fe1cd9788080aa62168ba0d1
+F test/reuse1.test faa2ce5ff566d936b8a10d9e22ba2ee66a54ce89fdcf8aef561df6b15b0ff3d3
+F test/reuse2.test 5dd9c98579358f0d5a90d25e36dd6e678a03e23446b6c7f2630a8da22ae7ca94
++F test/reuse3.test ee7dc9c3ee5d65aa2615b6d610cc368aaa04df0b464a578a4c3b25ee64de4e8a
+F test/reuse4.test adaad66253aea6cc748674328abe69b650c5c78b8676ed1162d3de09742519f9
+F test/reuse5.test bbe6cf7384ef90f134392edd93d626385ef0bf6f40eefc3d993535cd0861d83b
+F test/reuse6.test f4674f9967aee2a0b49c02832120b8b495291c0d87aae084c54e6c0cc18132fe
+F test/reusefault.test ef646a0fb51d50ddfb4b7cd872f88e7d36eaba64bde7797b3418c3774e1c8d14
F test/rollback.test 06680159bc6746d0f26276e339e3ae2f951c64812468308838e0a3362d911eaa
F test/rollback2.test 3f3a4e20401825017df7e7671e9f31b6de5fae5620c2b9b49917f52f8c160a8f
F test/rollbackfault.test 0e646aeab8840c399cfbfa43daab46fd609cf04a
F test/triggerF.test 5d76f0a8c428ff87a4d5ed52da06f6096a2c787a1e21b846111dfac4123de3ad
F test/triggerG.test 2b816093c91ba73c733cfa8aedcc210ad819d72a98b1da30768a3c56505233e9
F test/triggerupfrom.test d1f9e56090408115c522bee626cc33a2f3370f627a5e341d832589d72e3aa271
- F test/trustschema1.test 4e970aef0bfe0cee139703cc7209d0e0f07725d999b180ba50770f49edef1494
+ F test/trustschema1.test d2996bb284859c99956ac706160eab9f086919da738d19bfef3ac431cce8fd47
-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 727bfda1299b18435eeba80dee8e6ff43462146d7c1e2096cc809f01db568391
F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
F test/types2.test 1aeb81976841a91eef292723649b5c4fe3bc3cac
F test/types3.test 99e009491a54f4dc02c06bdbc0c5eea56ae3e25a
F tool/mkopcodec.tcl 33d20791e191df43209b77d37f0ff0904620b28465cca6990cf8d60da61a07ef
F tool/mkopcodeh.tcl 769d9e6a8b462323150dc13a8539d6064664b72974f7894befe2491cc73e05cd
F tool/mkopts.tcl 680f785fdb09729fd9ac50632413da4eadbdf9071535e3f26d03795828ab07fa
-F tool/mkpragmatab.tcl bd07bd59d45d0f3448e123d6937e9811195f9908a51e09d774609883055bfd3d
+F tool/mkpragmatab.tcl 0e059aaab521b490c86ba3d4f945319b438558de7738e90f26c54f4ffcdd79bb
- F tool/mkshellc.tcl 02d0de8349ef830c0fb20d29680320bde2466e2ec422e5bd94c4317a7a7e8cc9
+ F tool/mkshellc.tcl b7adf08b82de60811d2cb6af05ff59fc17e5cd6f3e98743c14eaaa3f8971fed0
F tool/mksourceid.c 36aa8020014aed0836fd13c51d6dc9219b0df1761d6b5f58ff5b616211b079b9
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
F tool/mksqlite3c-noext.tcl 4f7cfef5152b0c91920355cbfc1d608a4ad242cb819f1aea07f6d0274f584a7f
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 2aec00a7294762b3f7e8138ea1686eda4a1b02e940ec39f261651b61b87fabad 371f9b88387a44a5f820279d79733d1deb7eafc72f320ec47a11679bbdbb49ef
- R 53390d57c739b04d79c7ca18e1fc21c7
- U drh
- Z afe5040288c0a21f63f3e5f5ade47224
-P d149772d18c47bf986decb7e08d148b1d417bbcc8522fd6240ead836ec34074b
-R 46223eaf559523ff66a57b4bacb5c07e
++P 1bfae9b3c65a97a17b2de820841ff7826cb75ecad0072cea1ac74fdbde10e775 c5d958eb942a8d6ea1e6e1d2d57637f9359d518965a28f298c7fbacdb9080f59
++R 89de9b891b593d0253b5c17ad8e58276
+ U dan
-Z 9e60d9184a671acda6ad686b21155410
++Z aa5bd35b55629a01a34308f00dc2e033
# Remove this line to create a well-formed Fossil manifest.
--- /dev/null
- } {1 {vtable constructor failed: schemapool}}
+# 2019 February 12
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+#
+
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+set testprefix reuse3
+
+ifcapable !sharedschema {
+ finish_test
+ return
+}
+
+do_execsql_test 1.0 {
+ CREATE TABLE t1(x INTEGER PRIMARY KEY, y UNIQUE, z);
+ CREATE INDEX i1 ON t1(z);
+ CREATE TABLE t2(a);
+} {}
+
+db close
+sqlite3 db test.db -shared-schema 1
+
+do_execsql_test 1.1 {
+ CREATE TEMP VIEW v1 AS SELECT * FROM t1;
+ SELECT * FROM v1;
+}
+
+do_execsql_test 1.2 {
+ CREATE TEMP TRIGGER tr1 AFTER INSERT ON t1 BEGIN
+ INSERT INTO t2 VALUES(new.x);
+ END;
+}
+
+do_execsql_test 1.3 {
+ INSERT INTO t1 VALUES(1, 2, 3);
+}
+
+do_execsql_test 1.4 {
+ SELECT * FROM t2
+} {1}
+
+do_execsql_test 1.5 {
+ SELECT * FROM v1
+} {1 2 3}
+
+do_execsql_test 1.6 {
+ BEGIN;
+ DROP TRIGGER tr1;
+ ROLLBACK;
+}
+
+do_execsql_test 1.7 {
+ SELECT * FROM v1
+} {1 2 3}
+
+do_execsql_test 1.8 {
+ INSERT INTO t1 VALUES(4, 5, 6);
+ SELECT * FROM t2
+} {1 4}
+
+do_execsql_test 1.9 {
+ SELECT * FROM v1
+} {1 2 3 4 5 6}
+
+#-------------------------------------------------------------------------
+# Test error messages when parsing the schema with a REUSE_SCHEMA
+# connection.
+reset_db
+do_execsql_test 2.0 {
+ CREATE TABLE x1(a, b, c);
+ CREATE TABLE y1(d, e, f);
+ PRAGMA writable_schema = 1;
+ UPDATE sqlite_master SET sql = 'CREATE TBL y1(d, e, f)' WHERE name = 'y1';
+}
+db close
+
+sqlite3 db test.db -shared-schema 1
+do_catchsql_test 2.1 {
+ SELECT * FROM x1;
+} {1 {malformed database schema (y1) - near "TBL": syntax error}}
+
+do_catchsql_test 2.2 {
+ SELECT * FROM x1;
+} {1 {malformed database schema (y1) - near "TBL": syntax error}}
+
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 3.0 {
+ CREATE TABLE x1(a, b, c);
+ CREATE INDEX i1 ON x1(a, b, c);
+ CREATE TRIGGER tr1 AFTER INSERT ON x1 BEGIN
+ SELECT 1, 2, 3, 4, 5;
+ END;
+ INSERT INTO x1 VALUES(1, 2, 3);
+}
+sqlite3 db1 test.db -shared-schema 1
+
+do_test 3.1 {
+ execsql { SELECT * FROM x1 } db1
+ set N [lindex [sqlite3_db_status db1 SCHEMA_USED 0] 1]
+ expr $N==$N
+} 1
+
+sqlite3 db2 test.db -shared-schema 1
+do_test 3.2 {
+ execsql { SELECT * FROM x1 } db2
+ set N2 [lindex [sqlite3_db_status db2 SCHEMA_USED 0] 1]
+ expr $N2>($N/2) && $N2<($N/2)+400
+} 1
+
+sqlite3 db3 test.db -shared-schema 1
+sqlite3 db4 test.db -shared-schema 1
+do_test 3.3 {
+ execsql { SELECT * FROM x1 } db3
+ execsql { SELECT * FROM x1 } db4
+ set N4 [lindex [sqlite3_db_status db2 SCHEMA_USED 0] 1]
+ set M [expr 2*($N-$N2)]
+ set {} {}
+} {}
+do_test 3.3.1 { expr {(($M / 4) + $N-$M)} } "#/$N4/"
+
+catch { db1 close }
+catch { db2 close }
+catch { db3 close }
+catch { db4 close }
+
+#-------------------------------------------------------------------------
+# 4.1 Test the REINDEX command.
+# 4.2 Test CREATE TEMP ... commands.
+#
+reset_db
+do_execsql_test 4.1.0 {
+ CREATE TABLE x1(a, b, c);
+ CREATE INDEX x1a ON x1(a);
+ CREATE INDEX x1b ON x1(b);
+ CREATE INDEX x1c ON x1(c);
+}
+db close
+sqlite3 db test.db -shared-schema 1
+
+do_execsql_test 4.1.1 {
+ REINDEX x1;
+ REINDEX x1a;
+ REINDEX x1b;
+ REINDEX x1c;
+ REINDEX;
+}
+
+do_test 4.1.2 {
+ for {set i 1} {$i < 5} {incr i} {
+ forcedelete test.db${i} test.db${i}-wal test.db${i}-journal
+ forcecopy test.db test.db${i}
+ execsql "ATTACH 'test.db${i}' AS db${i}"
+ }
+ register_schemapool_module db
+ set {} {}
+ execsql {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool
+ }
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.1.3 {
+ REINDEX x1;
+ REINDEX x1a;
+ REINDEX x1b;
+ REINDEX x1c;
+ REINDEX db1.x1a;
+ REINDEX db2.x1b;
+ REINDEX db3.x1c;
+}
+
+do_execsql_test 4.1.4 {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool
+} {nref=5 nschema=1 ndelete=28}
+
+#-------------------------------------------------------------------------
+db close
+sqlite3 db test.db -shared-schema 1
+register_schemapool_module db
+do_execsql_test 4.2.0 {
+ ATTACH 'test.db1' AS db1;
+ ATTACH 'test.db2' AS db2;
+ ATTACH 'test.db3' AS db3;
+ ATTACH 'test.db4' AS db4;
+
+ SELECT * FROM db1.x1;
+ SELECT * FROM db2.x1;
+ SELECT * FROM db3.x1;
+ SELECT * FROM db4.x1;
+}
+
+do_execsql_test 4.2.1 {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.2 {
+ CREATE TEMP TABLE t1(a, b, c);
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.3 {
+ CREATE INDEX t1a ON t1(a);
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.4 {
+ CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN
+ SELECT 1,2,3,4;
+ END;
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.5 {
+ DROP TABLE t1;
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.6 {
+ CREATE TEMP TRIGGER tr1 AFTER INSERT ON db2.x1 BEGIN
+ SELECT 1,2,3,4;
+ END;
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=0}
+
+do_execsql_test 4.2.7 {
+ DROP TRIGGER tr1;
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema, 'ndelete=' || nDelete
+ FROM schemapool;
+} {nref=5 nschema=1 ndelete=4}
+
+#--------------------------------------------------------------------------
+reset_db
+do_execsql_test 5.0 {
+ CREATE TABLE t1(a, b);
+ CREATE TABLE t2(a, b);
+ CREATE TABLE t3(a, b);
+}
+
+sqlite3 db2 test.db -shared-schema 1
+register_schemapool_module db2
+
+do_execsql_test 5.1 {
+ PRAGMA writable_schema = 1;
+ UPDATE sqlite_master SET sql='CREATE TABLE t3 a,b' WHERE name = 't3';
+}
+
+do_test 5.2 {
+ catchsql { SELECT * FROM t1 } db2
+} {1 {malformed database schema (t3) - near "a": syntax error}}
+
+do_test 5.3 {
+ catchsql { SELECT nref,nschema FROM schemapool } db2
++} {1 {malformed database schema (t3) - near "a": syntax error}}
+
+do_execsql_test 5.4 {
+ PRAGMA writable_schema = 1;
+ UPDATE sqlite_master SET sql='CREATE TABLE t3(a,b)' WHERE name = 't3';
+}
+
+do_test 5.5 {
+ catchsql { SELECT nref,nschema FROM schemapool } db2
+} {0 {1 1}}
+
+db2 close
+db close
+do_test 5.6.1 {
+ forcedelete test.db2 test.db2-wal test.db2-journal
+ forcecopy test.db test.db2
+ sqlite3 db test.db
+ sqlite3 db2 test.db -shared-schema 1
+ sqlite3 db3 test.db2 -shared-schema 1
+ register_schemapool_module db
+} {}
+
+do_execsql_test -db db2 5.6.2 { SELECT * FROM t1 }
+do_execsql_test -db db3 5.6.3 { SELECT * FROM t1 }
+do_execsql_test 5.6.4 {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema FROM schemapool;
+ CREATE TABLE t4(x);
+ DROP TABLE t4;
+} {nref=2 nschema=1}
+do_execsql_test -db db2 5.6.5 { SELECT * FROM t1 }
+do_execsql_test -db db3 5.6.6 { SELECT * FROM t1 }
+do_execsql_test 5.6.7 {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema FROM schemapool;
+ ATTACH 'test.db2' AS db2;
+ CREATE TABLE db2.t4(x);
+ DROP TABLE db2.t4;
+} {nref=1 nschema=1 nref=1 nschema=1}
+do_execsql_test -db db2 5.6.8 { SELECT * FROM t1 }
+do_execsql_test -db db3 5.6.9 { SELECT * FROM t1 }
+do_execsql_test 5.6.10 {
+ SELECT 'nref=' || nRef, 'nschema=' || nSchema FROM schemapool;
+} {nref=2 nschema=1}
+
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 6.0 {
+ CREATE TABLE t1(a, b);
+ CREATE TABLE t2(a, b);
+ CREATE TABLE t3(a, b);
+}
+
+do_test 6.1 {
+ db close
+ sqlite3 db test.db -shared-schema 1
+ for {set i 1} {$i < 5} {incr i} {
+ set base "test.db$i"
+ set nm "aux$i"
+ forcedelete $base $base-wal $base-journal
+ forcecopy test.db $base
+ execsql "ATTACH '$base' AS $nm"
+ }
+} {}
+
+do_test 6.2 {
+ set N1 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ set N2 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ expr ($N1==0 && $N2==0)
+} {1}
+
+do_test 6.3 {
+ execsql { SELECT * FROM main.t1 }
+ set N1 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ set N2 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ expr {$N1>0 && $N2>0 && $N1==$N2}
+} {1}
+
+do_test 6.4 {
+ execsql { SELECT * FROM aux1.t1 }
+ set N3 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ set N4 [lindex [sqlite3_db_status db SCHEMA_USED 0] 1]
+ list $N3 $N4
+} "#/$N1 $N1/"
+
+finish_test
+