- C Update\sthis\sbranch\swith\sthe\s"PRAGMA\snoop_update"\sfix\sfrom\sbegin-concurrent-pnu.
- D 2020-08-31T20:29:47.128
-C Merge\slatest\schanges\sfrom\strunk\sinto\sthis\sbranch.
-D 2020-11-26T17:36:42.890
++C Merge\slatest\schanges\sfrom\sbegin-concurrent-pnu\sinto\sthis\sbranch.
++D 2020-11-26T17:54:15.753
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad
F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd
F doc/begin_concurrent.md 4bee2c3990d1eb800f1ce3726a911292a8e4b889300b2ffd4b08d357370db299
- F doc/lemon.html 1edc0f916e771212792d4d077aedc05168bf13fd65d64d41b2c13e46ac0063a8
+F doc/begin_concurrent_report.md 58c032ebc2d5980e3b25bbe805f2addd31be787d1ebe51f74f4f48044fa9e2c0
+ F doc/lemon.html c5d8ba85ac1daef7be8c2d389899480eb62451ff5c09b0c28ff8157bb8770746
F doc/pager-invariants.txt 27fed9a70ddad2088750c4a2b493b63853da2710
F doc/trusted-schema.md 33625008620e879c7bcfbbfa079587612c434fa094d338b08242288d358c3e8a
+ F doc/vdbesort-memory.md 4da2639c14cd24a31e0af694b1a8dd37eaf277aff3867e9a8cc14046bc49df56
F doc/vfs-shm.txt e101f27ea02a8387ce46a05be2b1a902a021d37a
F doc/wal-lock.md 781726aaba20bafeceb7ba9f91d5c98c6731691b30c954e37cf0b49a053d461d
F ext/README.md fd5f78013b0a2bc6f0067afb19e6ad040e89a10179b4f6f03eee58fac5f169bd
F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c 4bc16666a0df99d49658ec66f00ca36e541ec6cb39673ccc51be6a981fb9b2ce
- F src/analyze.c 5cffff3d355858cd22bfc6e20ac7203510d2e1cc935086eb06f4abb2f579f628
- F src/attach.c 0b11e00c166b622c84ec176773b1d691c61ad07d247809e3e1635d4e99e71d30
+ F src/alter.c b6de60d59419e34f5b48ff2b21fe0f9bb66fc714e5545a6ac790ac7a0c46548c
+ F src/analyze.c 01c6c6765cb4d40b473b71d85535093730770bb186f2f473abac25f07fcdee5c
+ F src/attach.c 0f497c15c4cfe3bdcb214f0dbdbbb6c5ed7e8a9308ac445c7959f5e5780437a9
F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06
- F src/backup.c ce116c9f5180a22a446391057a06a0cf6810260f7d314d5d99b12cfa6f17ac97
-F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
-F src/bitvec.c 8433d9e98dd6f2ea3286e0d2fe5d65de1bfc18a706486eb2026b01be066b5806
++F src/backup.c 0d3f5004d5c85f257add00aee97687d40790a471a5d56306043ed9a7b53d6994
+F src/bitvec.c a012cfe503cddd1df1a75c139baf4586acc32f25c66f79039caf1d06474434f2
F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
- F src/btree.c abc4d4ef16281dbfd453f4d719e390792ede4db8a39c98fc853b56922e2f3748
- F src/btree.h 1b31533bd7efd217604df5da57ca12b5854d8d989a42382584d4fd0c0498073b
- F src/btreeInt.h 6c3d3586c044f2447c8c56f1feb838f461071389ac42ad295695846ba446e3a8
- F src/build.c 11d915b843fa8f31c6cc8b62c7f4e68a65496effa6fbe35882ab949635b8d0bc
-F src/btree.c 658804cedb4719330d8fc19fd600e1cd865793d9cd7cb4e79546ac0d986b9402
-F src/btree.h a2eda1ab68939ea3057bc797fd16179dfe2bcd247c022f62ceccd136186611a5
-F src/btreeInt.h 900af7149206694de988d14fbc116e482a732340a8dc5e4bfdd23b7faf7d6f14
++F src/btree.c 3b25558afd7aed2a2699f77fd25c8207a0d6971934d39098e7f21e2e2e7c70e4
++F src/btree.h 45200639793d7576ec138a050b69cb26ebc83353cd39a7308192758c463de514
++F src/btreeInt.h 8bf694b0b53c07a8b52f27c0c7af52d2d9d9ad8074fcc5c1c6690c6747619a61
+ F src/build.c 4c44cee793d16c653986cf00c32c36cf0cbfe4932a319cc7d5c0f10a2801151c
F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c e98518d2d3d4029a13c805e07313fb60c877be56db76e90dd5f3af73085d0ce6
F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38
F src/hwtime.h cb1d7e3e1ed94b7aa6fde95ae2c2daccc3df826be26fc9ed7fd90d1750ae6144
F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
- F src/insert.c c1bbc78590a7538abcef5b7dfd05edd86176387848daa565def9eb375e523d12
-F src/insert.c 7e081d33aab4a9d761c39dccf3c3872c35501565d2ed9db66301918d23bc7901
++F src/insert.c 5a771fd9cd394965269f6fb456fce300e8c9087cb915b2a9c0ce8e57d0c2f378
F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
- F src/loadext.c 436af4968c6954d304fce9efa12719367bd8f37b19b93b71d6ad607e85adbb47
- F src/main.c 9f6b3c7363b07892a2d8d0f9046b05545f863268e24176c037fafed53355d750
- F src/malloc.c 22d5bdd9fe88ae4fad1b91a1b9735104b82853ffef868f1f05517d60dc1875f5
+ F src/loadext.c 8c9c8cd2bd8eecdb06d9b6e89de7e9e65bae45cc8fc33609cc74023a5c296067
-F src/main.c 975a31135c95ab9b33d275141e4c54171d11b1cc3d6c7060db48a72536304fb5
++F src/main.c 84a1433cb42191a3bc850e1646b41db4987e484daa8d55ef15921eb863b2750c
+ F src/malloc.c c1af4ac5a463648cd2953fd4ac679b3ba9022ce5ec794a60806150ad69dfd33a
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
F src/mem2.c b93b8762ab999a29ae7751532dadf0a1ac78040308a5fb1d17fcc365171d67eb
F src/os.h 48388821692e87da174ea198bf96b1b2d9d83be5dfc908f673ee21fafbe0d432
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c c79bf7138f5c760bcf167065f08ca1c23f27fe06d8a4ad57432099e966823fe9
- F src/os_win.c a2149ff0a85c1c3f9cc102a46c673ce87e992396ba3411bfb53db66813b32f1d
+ F src/os_unix.c 9b8d6679300ee39b891c60a70f64c86bb89bd04862c1fd697bdf959867c74cbb
+ F src/os_win.c 77d39873836f1831a9b0b91894fec45ab0e9ca8e067dc8c549e1d1eca1566fe9
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c 6da497a9d6071d09c5b7d4ae8c5c022a89a625e286d03cc2e1589025cb9a3c07
-F src/pager.c 095a0ac00a7b74cb5042678e478ab54dbbc67a20ee13b464eebc3f8c606d8b01
-F src/pager.h fdc30693c403aa9b4293d0b126346db7e450f8f0e5d2c1bb8355acb1cb8da6fd
++F src/pager.c df2d47fe39424d8ae06120e8bbb3e06065330ce85c310caa81c7e03501b4e375
+F src/pager.h ed1f7bc91ceae75fa918d51f7c2ad071a5458cc3dc0085ca7577f8d51bf2d7cb
- F src/parse.y b2a9db24fee32edf26e0e4970c64394eed90f0c3608fae6f3433cc5dd3404a83
+ F src/parse.y 5ba6522aba301e829917c8dd48290d357b6a9f68276d411739d01f266bafe4be
F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
F src/pcache1.c 6596e10baf3d8f84cc1585d226cf1ab26564a5f5caf85a15757a281ff977d51a
- F src/pragma.c bdb600be936f66b9fe69d26dfbba4528beaaf4f95c479c85b328a92484e0bf71
+ F src/pragma.c 6daaaecc26a4b09481d21722525b079ce756751a43a79cc1d8f122d686806193
F src/pragma.h b93fd693bd38cefeaf8e2c7e8c929717f7799a9770104cdd2bae8df2a84e2da7
- F src/prepare.c 3d5a761d026052bc888d1b803a06dd2bfe245e8e836d4689f927003549148b0f
- F src/printf.c 9efcd4e984f22bcccb1ded37a1178cac98f6e3a0534e1e0629f64899971f8838
+ F src/prepare.c 270170a239c0f66bd3c228f373afe24447c2614a6829ae22080babc64f241931
+ F src/printf.c 30e92b638fac71dcd85cdea1d12ecfae354c9adee2c71e8e1ae4727cde7c91ed
F src/random.c f27af4099afaea7284ade5c206224dcfdb2334cfd119d018b470d46356b3f27d
- F src/resolve.c d74715aceed2a8f493ba244d535646fa93132042a4400a29dfd26ec841514048
+ F src/resolve.c 1948a92ca9eab776632816b97e57c61d933474a78aad4f4ef835c916a83dbb1c
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 02c5b12ca8dc6c7c1a5fec01f0eb09867692962263ddcaf47d6d7264eebdc55d
- F src/shell.c.in b9b819feede7b85585ab0826490a352e04e2ee46e8132c92597d29972b2be1d7
- F src/sqlite.h.in 017b0ed87e86a5261b7ce3070784aaefb4c0355743575af0aa1427cc81318b2a
+ F src/select.c fe64564a9437fde31824b85b02d51a2806468e3c70666528087a1cb0730caee8
+ F src/shell.c.in 55113760ae91a05c6ce4558714a1c8fc7a44bf266f735de6e71ea40f79e69830
-F src/sqlite.h.in a3452ff4026c01484ed9291388d538c3de7da4118e359c6972de66060317eca8
++F src/sqlite.h.in 3a8cff2d1be677f53e5700d6580ba2d1928e188cfbc17097d32ff75947a398e0
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
- F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197
- F src/sqliteInt.h 2b9bd070a108e58b4f91b94cac81d9782483e01d68d942a585c9b1313d56b6fd
- F src/sqliteLimit.h 95cb8479ca459496d9c1c6a9f76b38aee12203a56ce1092fe13e50ae2454c032
+ F src/sqlite3ext.h 61b38c073d5e1e96a3d45271b257aef27d0d13da2bea5347692ae579475cd95e
-F src/sqliteInt.h 16c573c10196a74947a8f73d6c1626f8375c6a01cad3d403d78261ad6ee71b6e
++F src/sqliteInt.h 973e01f45609bfc01239629350252cdeba5cd563881a1a2114c069a6ced9cf6c
+ F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
F src/tclsqlite.c 986b6391f02cd9b53c1d688be55899f6ffddeb8e8014cd83c1b73ff912579a71
- F src/test1.c efd3d31a4ab31629333e74fc2a3cfb0726436ef6b7cf7f5abf69fd36382c541c
-F src/test1.c 67aa729f37c2d8066bf0c44536c5ab8646b5dc84d5f84bde6f7397147a4513cc
-F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5
++F src/test1.c 8da599b6b3cd9e25f176ef1bb4b82042509cd20911074aa2073b5ede0a10d194
+F src/test2.c cb988be1ee1b972dc471e6b076087cfa9cb9ce5c2aa31e98ecf41c3256a72a53
F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644
F src/test4.c 7c4420e01c577b5c4add2cb03119743b1a357543d347773b9e717195ea967159
F src/test5.c 328aae2c010c57a9829d255dc099d6899311672d
F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
F src/tokenize.c 4dc01b267593537e2a0d0efe9f80dabe24c5b6f7627bc6971c487fa6a1dacbbf
F src/treeview.c 4b92992176fb2caefbe06ba5bd06e0e0ebcde3d5564758da672631f17aa51cda
- F src/trigger.c ef67bde309a831515dc3c2173d792574309f2f42d45f8c078743fae9f7f98c75
- F src/update.c 4fb5ffdc515da442a174a77e57e08e26554037899c40732bb25894426cad3266
+ F src/trigger.c 515e79206d40d1d4149129318582e79a6e9db590a7b74e226fdb5b2a6c7e1b10
+ F src/update.c 0e42cd8b2fa8cdfc3f05fecc9deb3ca1804494b69ca75e7b845e49de20a559d5
F src/upsert.c 2920de71b20f04fe25eb00b655d086f0ba60ea133c59d7fa3325c49838818e78
F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
- F src/util.c c8bf30c4356b091bcc3b624d0e24b2b4d11b8be4d6c90d8e0705971e15cc819b
- F src/vacuum.c 4f586072e58b950f31737a2f5294acf9ae077ce4dc62f991b71874c650b9e276
- F src/vdbe.c c45eb00686187826c04349deaa1e933245e032aa71efcc70d7f87733e7cb7058
+ F src/util.c c0c7977de7ef9b8cb10f6c85f2d0557889a658f817b0455909a49179ba4c8002
+ F src/vacuum.c 9d6ac090ff36d80f0a2c5bfc63994b714c464bfc44efa5056c457a6a4163dc99
-F src/vdbe.c 85a1acd0f1327fa71ef029916d347c3437959cbbb9659e22f6f173a2d329a7fd
++F src/vdbe.c 0426161e9361bbdd83fb6ed27f5126bf3962aa2f9b4db8e148dcb0d1d3d2a926
F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1
- F src/vdbeInt.h 808c424389e4aad8b379aa9d29baec4a2f2680d6f0c5caeb7fce629beb357e82
-F src/vdbeInt.h 3ca5e9fd6e095a8b6cf6bc3587a46fc93499503b2fe48951e1034ba9e2ce2f6e
-F src/vdbeapi.c c5e7cb2ab89a24d7f723e87b508f21bfb1359a04db5277d8a99fd1e015c12eb9
++F src/vdbeInt.h 3ba661b01af773d2f51f9ad41bac663adfe19c8e333f550962f6d3090777ce22
+F src/vdbeapi.c 1b210d5a5b82783f6fadbe5f54298f01ad55eeedc5f298bb28950007d50c45ab
- F src/vdbeaux.c 35730cc4c8d16bc313e3b1d4107f713dc5c5d75fbfbb4743a69047cda8bb8b75
+ F src/vdbeaux.c 0aaec35c90956fb03238e9ce3981e7111a53ff99eb161ef79fa55ae14fedcf7c
F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
F src/vdbemem.c 947f2a65910edb4014dc981d33e414a68c51f169f9df8c4c493a0ba840b6eb1f
- F src/vdbesort.c 2be76d26998ce2b3324cdcc9f6443728e54b6c7677c553ad909c7d7cfab587df
+ F src/vdbesort.c f5b5e473a7cee44e47a94817b042fd7172cf3aa2c0a7928a8339d612bcfdec5a
F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0
F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
F src/vtab.c 5f5fc793092f53bbdfde296c50f563fb7bda58cf48e9cf6a8bdfbc5abd409845
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 5cdd43b7538a4133438a85fcc7c2d8a1cdae2cc851ce58c9f2d2f849974a9436
+ F src/wal.c c9dfe3054c82aaa8d1dea91b56afa9397b54e55d5fb1dcbac32a4a7f6231bdc9
F src/wal.h 7ffe787437f20a098af347011967a6d3bb8e5c3dc645e6be59eff44d2b2c5297
F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049
- F src/where.c 2ea911238674e9baaeddf105dddabed92692a01996073c4d4983f9a7efe481f9
- F src/whereInt.h 6b874aa15f94e43a2cec1080be64d955b04deeafeac90ffb5d6975c0d511be3c
- F src/wherecode.c a1e168ea0c8348fd0e1a9787672131908a6c84cf179dd02d69eb6a0baf6198a2
- F src/whereexpr.c 264d58971eaf8256eb5b0917bcd7fc7a1f1109fdda183a8382308a1b18a2dce7
+ F src/where.c ad738741bf45999188a3047f6277063e3f6843304d581e3ad5875419afdeb6b2
+ F src/whereInt.h 59077fbd0b3d01bc8715e746c86a99ebf4c85bde8a57077ec04d2a23e59666ec
-F src/wherecode.c a3a1aff30fe99a818d8e7c607980f033f40c68d890e03ed25838b9dbb7908bee
++F src/wherecode.c cbd5094b4c9db05453fba5342e90d9ae998792ffb264f13a721783ddc298a0c0
+ F src/whereexpr.c 3a463e156ea388083c501502229c2c7f4f5c6b5330ea59bdf40d6eb6e155a25f
F src/window.c edd6f5e25a1e8f2b6f5305b7f5f7da7bb35f07f0d432b255b1d4c2fcab4205aa
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 3ee73880ed280f33d554269d4e964cce0c44b5c6c43937da4e547c39f16e860b 5fa4cbcb785125e72c7fd5cc2050637f2a2e854ee22aee05e8f09f751cd36291
- R 76fe978b4285c30e12955d5ce8fb9571
-P 5fa4cbcb785125e72c7fd5cc2050637f2a2e854ee22aee05e8f09f751cd36291 bb174a074b5833181900d396edda955254ea1768750a0ab3b6d714530b1fe13f
-R 46f22a6398038f13f607d14446ddefc4
++P 3c0423f0a8685cf8ef165914e6f9bd8f191d32db1c8287aed2a3ba6e272fc9f0 a42e6f34f560d19df7e3835718c697ea19f905c3d2ee1bbd83ed5f2a5c36d965
++R b1f0bd34613bc63e94d6869c8a839438
U dan
- Z 9bd2482dd15b53c3c2385e7a7040d9bc
-Z 0ca22a41b5774fae45479850521e32f0
++Z ec08244e2ca56b3efc6f964e46511822
}
}
+/*
+** Usage: sqlite3_begin_concurrent_report DB
+*/
+static int SQLITE_TCLAPI test_begin_concurrent_report(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+){
+ const char *zReport = 0;
+ sqlite3 *db;
+
+ if( objc!=2 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "DB");
+ return TCL_ERROR;
+ }
+
+ if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
+ zReport = sqlite3_begin_concurrent_report(db);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(zReport?zReport:"", -1));
+ return TCL_OK;
+}
+
+/*
+** Usage: sqlite3_begin_concurrent_report_enable DB ENABLE
+*/
+static int SQLITE_TCLAPI test_begin_concurrent_report_enable(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+){
+ sqlite3 *db;
+ int iVal;
+
+ if( objc!=3 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "DB ENABLE");
+ return TCL_ERROR;
+ }
+
+ if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
+ if( Tcl_GetIntFromObj(interp, objv[2], &iVal) ) return TCL_ERROR;
+ sqlite3_begin_concurrent_report_enable(db, iVal);
+ Tcl_ResetResult(interp);
+ return TCL_OK;
+}
+
+ /*
+ ** Usage: test_write_db DB OFFSET DATA
+ **
+ ** Obtain the sqlite3_file* object for the database file for the "main" db
+ ** of handle DB. Then invoke its xWrite method to write data DATA to offset
+ ** OFFSET.
+ */
+ static int SQLITE_TCLAPI test_write_db(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+ ){
+ sqlite3 *db = 0;
+ Tcl_WideInt iOff = 0;
+ const unsigned char *aData = 0;
+ int nData = 0;
+ sqlite3_file *pFile = 0;
+ int rc;
+
+ if( objc!=4 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "DB OFFSET DATA");
+ return TCL_ERROR;
+ }
+ if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
+ if( Tcl_GetWideIntFromObj(interp, objv[2], &iOff) ) return TCL_ERROR;
+ aData = Tcl_GetByteArrayFromObj(objv[3], &nData);
+
+ sqlite3_file_control(db, "main", SQLITE_FCNTL_FILE_POINTER, (void*)&pFile);
+ rc = pFile->pMethods->xWrite(pFile, aData, nData, iOff);
+
+ Tcl_SetResult(interp, (char *)sqlite3ErrName(rc), TCL_VOLATILE);
+ return TCL_OK;
+ }
+
+ /*
+ ** Usage: sqlite3_register_cksumvfs
+ **
+ */
+ static int SQLITE_TCLAPI test_register_cksumvfs(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+ ){
+ if( objc!=1 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "");
+ return TCL_ERROR;
+ }else{
+ extern int sqlite3_register_cksumvfs(const char*);
+ int rc = sqlite3_register_cksumvfs(0);
+ Tcl_SetResult(interp, (char *)sqlite3ErrName(rc), TCL_VOLATILE);
+ }
+ return TCL_OK;
+ }
+
+ /*
+ ** Usage: sqlite3_unregister_cksumvfs
+ **
+ */
+ static int SQLITE_TCLAPI test_unregister_cksumvfs(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+ ){
+ if( objc!=1 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "");
+ return TCL_ERROR;
+ }else{
+ extern int sqlite3_unregister_cksumvfs(void);
+ int rc = sqlite3_unregister_cksumvfs();
+ Tcl_SetResult(interp, (char *)sqlite3ErrName(rc), TCL_VOLATILE);
+ }
+ return TCL_OK;
+ }
+
/*
** Usage: decode_hexdb TEXT
**
{ "sqlite3_mmap_warm", test_mmap_warm, 0 },
{ "sqlite3_config_sorterref", test_config_sorterref, 0 },
{ "decode_hexdb", test_decode_hexdb, 0 },
+ { "sqlite3_begin_concurrent_report", test_begin_concurrent_report, 0 },
+ { "sqlite3_begin_concurrent_report_enable", test_begin_concurrent_report_enable, 0 },
+ { "test_write_db", test_write_db, 0 },
+ { "sqlite3_register_cksumvfs", test_register_cksumvfs, 0 },
+ { "sqlite3_unregister_cksumvfs", test_unregister_cksumvfs, 0 },
};
static int bitmask_size = sizeof(Bitmask)*8;
static int longdouble_size = sizeof(LONGDOUBLE_TYPE);