From: drh <> Date: Mon, 22 Jun 2026 20:51:19 +0000 (+0000) Subject: Merge the latest trunk changes into the bedrock branch through wal2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93c54cff32053da0e1731ad293c84bf2da826b15;p=thirdparty%2Fsqlite.git Merge the latest trunk changes into the bedrock branch through wal2 FossilOrigin-Name: 2a75dcd3a8590fb575ea51ec4e6f91fb149b5b401327cc57f2b62a5331fc265b --- 93c54cff32053da0e1731ad293c84bf2da826b15 diff --cc manifest index 001b065037,646aa7b681..13520c2d65 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Merge\sthe\slatest\strunk\senhancements\sand\sfixes\sinto\sthe\sbedrock\sbranch\svia\swal2. - D 2026-05-29T18:18:03.258 -C Merge\sthe\slatest\strunk\senhancements\sand\sfixes\sinto\sthe\swal2\sbranch. -D 2026-06-22T20:23:43.544 ++C Merge\sthe\slatest\strunk\schanges\sinto\sthe\sbedrock\sbranch\sthrough\swal2 ++D 2026-06-22T20:51:19.799 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@@ -474,7 -471,7 +473,7 @@@ F ext/rbu/rbuvacuum.test e3585cfda22003 F ext/rbu/rbuvacuum2.test 1a9bd41f127be2826de2a65204df9118525a8af8d16e61e6bc63ba3ac0010a23 F ext/rbu/rbuvacuum3.test 3ce42695fdf21aaa3499e857d7d4253bc499ad759bcd6c9362042c13cd37d8de F ext/rbu/rbuvacuum4.test ffccd22f67e2d0b380d2889685742159dfe0d19a3880ca3d2d1d69eefaebb205 - F ext/rbu/sqlite3rbu.c 73285ff77cb73754ea24b757928afdb3fed4f5f39e2154588c188e604cd08fe4 -F ext/rbu/sqlite3rbu.c c84dd68888640c56aa4d713e38013a202b10bf1ef2e423f7be2167bd826e69d8 ++F ext/rbu/sqlite3rbu.c 4f35725ada43656d530986f933234732141dd0c328005692c9676eaa9f63bb89 F ext/rbu/sqlite3rbu.h e3a5bf21e09ca93ce4e8740e00d6a853e90a697968ec0ea98f40826938bdb68e F ext/rbu/test_rbu.c 8b6e64e486c28c41ef29f6f4ea6be7b3091958987812784904f5e903f6b56418 F ext/recover/dbdata.c 10d3c56968a9af6853722a47280805ad1564714d79ea45ac6f7da14bb57fd137 @@@ -668,7 -661,7 +667,7 @@@ F ext/wasm/tests/opfs/sahpool/index.htm F ext/wasm/tests/opfs/sahpool/sahpool-pausing.js f264925cfc82155de38cecb3d204c36e0f6991460fff0cb7c15079454679a4e2 F ext/wasm/tests/opfs/sahpool/sahpool-worker.js bd25a43fc2ab2d1bafd8f2854ad3943ef673f7c3be03e95ecf1612ff6e8e2a61 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0 - F main.mk 696254a21fd50deb4c6b949cf641233c270458aa1bb143a3ddaa64c44fff3fc2 -F main.mk d96e1c865d8399db867d6f0e5024ec064b2978d593b1040068ee51c92edb5ecb ++F main.mk 564939d825df9d60b627c8c824520c47b6f555088461b2089acc23acc5ee618b F make.bat a136fd0b1c93e89854a86d5f4edcf0386d211e5d5ec2434480f6eea436c7420c F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 @@@ -679,38 -672,38 +678,38 @@@ F mptest/multiwrite01.test dab5c5f8f953 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 1b9c24374a85dfc7eb8fa7c4266ee0db4f9609cceecfc5481cd8307e5af04366 F sqlite3.pc.in e6dee284fba59ef500092fdc1843df3be8433323a3733c91da96690a50a5b398 - F src/alter.c d7cbe4332a7a2c3a21ab58ee2609efade493f6ae78254613ada0759898629ee3 - F src/analyze.c ebfe8c9c55e44c5ca2bb885f84b133cde7a37e99ea5e3bf1c2782fb7e34b0882 + F src/alter.c da59ac700b52ba5d0e4dd099fb1818975cf8a79a546594da586b4e1eba3ae405 -F src/analyze.c 73162482c656187823217f4c00758c9ee13a420c8745bc542129e0279b792287 ++F src/analyze.c a899899fab9f70d541eac982c8d9cfffab9f83cdd335d3e7a6586fe316f0adb4 F src/attach.c c58278c7d2d954785591c4fde81669ec3e4d52f348c453b028a19ae8adf4f338 F src/auth.c b5ece4e1edccad082c0332fa0087df225473bae0feea9269f824312201377185 F src/backup.c 6ebe22ccbedfcb92423833992130e8d65824be4e6599c3a03f540ab38fc7d13c -F src/bitvec.c e242d4496774dfc88fa278177dd23b607dce369ccafb3f61b41638eea2c9b399 +F src/bitvec.c 1a048c91b2fbccbbc32dcefa757f93216c0f518ed2bc0b4db39947264479ad06 F src/btmutex.c 30dada73a819a1ef5b7583786370dce1842e12e1ad941e4d05ac29695528daea - F src/btree.c 04d5148ccd6aae7e01018cd3a78d47d6361715775afd64141032a267767ab9a0 - F src/btree.h dcda10d5a5d29690dc2739b8d4d416d136760ab1dbe88a2dd417855e1775e37a - F src/btreeInt.h c3b8750a8dd8bc9a38840be463e7d23899b9da08276fa442e2bb8efd1052bc48 - F src/build.c d8c5a96879d235ddc088ebe7c2aa8973b41cbd79de6def1440c5cf03a407d24f -F src/btree.c fb4fa3265b5f06d95407651d69ab43d47a0034ef9f6226ebd83a533c525b170a -F src/btree.h d19e634e0fafd63d13b198df3a6306317a88a0d3daef7af8686e24a014933837 -F src/btreeInt.h 4f512ad31083216b6789762d4c345b73367985d3b39421c9ba7c0902d09fb38b -F src/build.c 09946336c3011c2ae2faccdf04e33336e1cd51fd836651be0cd7eb5814f7f6a0 -F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad ++F src/btree.c 6a2bbdf7d930787336d895a58ebc792c07d5e51733c895dd968761f62cdd5786 ++F src/btree.h 204cc423f88a38fcff552367fd2f767b11707fcdc7ce3f87a30b62bfc21001c1 ++F src/btreeInt.h 8da05bbbb58a24568883a1fd0c2918d302b482454230fd2070d3d6c114d53280 ++F src/build.c 494ec6b8e8ce0d85ad46b628efdeed4a4dd67bf3e1c54fd064a5d817039b5dd8 +F src/callback.c 6987b99f738d9f68fe95ff482cdc10a9bf3df2051319d3d418b7cd22e725825e F src/carray.c 3efe3982d5fb323334c29328a4e189ccaef6b95612a6084ad5fa124fd5db1179 F src/complete.c f216b970ce99c5a657556cf1f17e7ddd494515d3beb63df426bf59ff43bd3d9a - F src/date.c 61e92f1f7e2e88e1cd91e91dc69eb2b2854e7877254470f9fabd776bfac922b8 + F src/date.c 86d9530729eeb5b3d833e7403de495f4d4b79f3d5f7e74bcc8abda237f5aeafb F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451 - F src/expr.c d2188a699ded4522f15cf23d4c82da0ad73dcda09cd943982906824ef019947f + F src/expr.c e97dd9f6ada4c448764e225d8963091bf630b3efb2c92e4d0762571cca2a14e5 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08 - F src/func.c 716afb645e15f28172ce72093fa3ee6acffc314e90823c04903f82ea7c66a0e8 - F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b -F src/func.c 7e049176003271095ba560bca90995c8cb7c1e944aee539513daba015b172a18 ++F src/func.c c8041843c89ee5896e58120b2713fed926f0bfec951f5162672897082db70090 + F src/global.c 7eea537ac0c113ac55cb2dd4d8fc2a6a91ae478be34231b4efaffc46817fee85 F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf - F src/hwtime.h 21c2cf1f736e7b97502c3674d0c386db3f06870d6f10d0cf8174e2a4b8cb726e + F src/hwtime.h 5cb15147c8583d0fc4748e1c12ea6f38c9deaeefa147a4d8d379fd9bc81fee9a F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 - F src/insert.c 8dbc22f6ddcc5f0af3abf11daeb89b1978f00059cda15ebc61251fa7724fc7ee - F src/json.c 83122c47ac1c86a3870398e872b1d1afa6439f46fdb92975aa435267771c7ee4 + F src/insert.c e6e9b574b4863649e2c433f2260f226183e697df1ab73fcb8da9a85d5abcd390 + F src/json.c f058c449acb9fdb1d3d1bb9f7e97b225ba773f5b6fdcec4310d3f49980125ed4 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa - F src/loadext.c 78d5b06f18996ffa1203129b28fea043f63a87a4117539678f1d761c30b4ff65 - F src/main.c 23801fa412f0d830a901f94f224337e73047fe287d257b3cbbc1bbb5409fa38b + F src/loadext.c 5cd4cd7ec6e1a46416806899086363fbf95eecd3bfb9a388b436c9a77243c902 -F src/main.c efd782fadd65b8e67952f439d56d7605134582346573018a614a8e082e074bd7 ++F src/main.c 0eda494d014ba05da4cb6c63b6699a8a381ecba870247e1cbd1113f88913eccc F src/malloc.c 422f7e0498e1c9ef967f06283b6f2c0b16db6b905d8e06f6dbc8baaa3e4e6c5a F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 3bb59158c38e05f6270e761a9f435bf19827a264c13d1631c58b84bdc96d73b2 @@@ -726,32 -719,32 +725,32 @@@ F src/mutex_noop.c 9d4309c075ba9cc7249e F src/mutex_unix.c caec9862aeebad01f6c8997cf709a239abeb0715fcce1895720b87fe7e2ef42f F src/mutex_w32.c d44e94c064f8ab39e0318fb6fa00171cf7e5645bd4241129b07d655a8ddbd44b F src/notify.c 57c2d1a2805d6dee32acd5d250d928ab94e02d76369ae057dee7d445fd64e878 - F src/os.c 509452169d5ea739723e213b8e2481cf0e587f0e88579a912d200db5269f5f6d + F src/os.c 9566966dd14376099fe8f715e744ab4fef204f55bd89126c5ddd06eb37df9457 F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63 F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06 - F src/os_kv.c e7d96727db5b67e39d590a68cc61c86daf4c093c36c011a09ebfb521182ec28d + F src/os_kv.c 26ccc36ea963d328682fa685a106d7404617a2284ecdc7a35fb38d0c9242f440 F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2 -F src/os_unix.c 83759942d1ea8d59daed50901c123016f845fada74caf3496b8a2537c9a08838 +F src/os_unix.c 31ca9c40498f81b3f030cf270df5fbaa3fb007dcacd005153cae7bd832feb53a - F src/os_win.c 8df4b34ec6a08616a7ac33164999524ef773fa359d39ae9ae0e7e1ae4f167440 + F src/os_win.c 68b1c31693a5aeeb8126f618c95f7b53fb39e254836f9a95fbf2733461a7e01d F src/os_win.h c06ccc3a090cf54202ea58981c298817f3309d4c9e4d52ad0a02927346493721 - F src/pager.c 7b386062c19215e0566fe5705264168ea4902360f75ab6bc13456184738380f8 -F src/pager.c 8905b7631714a8e20c610501b4262e0615be7b3604e1fe1fa893f34bd6f04bc6 -F src/pager.h fc0c95d27f2aefffcb39b4373b3557e89e1b4b9a36b183cc04d6f22002bf0ad2 -F src/parse.y d5a3c5b0277a441c38b35071c05e2b61ff5fc918a63309c809f4b6706179c320 ++F src/pager.c 9f84d3cc4bdd41f4726746d065955767ed8eae59ea315dc32606b9af22647d43 +F src/pager.h dd6ade22dd303a8ca6c34f1ff0f299add7191c1bff65f0289b7fd7c3460f9551 +F src/parse.y 7ff18f44e0ae1e71902101988621809537bccf9639ecd85ccea082b1b6643f2f F src/pcache.c 588cc3c5ccaaadde689ed35ce5c5c891a1f7b1f4d1f56f6cf0143b74d8ee6484 F src/pcache.h 092b758d2c5e4dabb30eae46d8dfad77c0f70b16bf3ff1943f7a232b0fe0d4ba - F src/pcache1.c 69b3a3e00e56dd03749af545084f4c823690400e8b12fcefba948f8fd975b84a -F src/pcache1.c d7ee0f95992501a65379f620b3de1430b64e52e397769938668a9fd9dd1c8145 ++F src/pcache1.c a7ac8ded9a2395bfefcda7ca20583f7573ba57204e710384552f343e8717d2b7 F src/pragma.c 06feccc280ac006b084e5a03a85466aba46aa75bdd7b3cca5a7343e46a0b8875 - F src/prepare.c 084a037fd3810cb7ffbfc001cd58c0ffac68ba36598a5084b55ea2a090014ebd - F src/printf.c 2bc09ee91d69c709528575bbbee2199e16d6a7e68e1508ac7cf998a7289170ca + F src/prepare.c d055c59c23b917367ed199a52888132316aa9cb9f7653ca71f0c45bd267206fd + F src/printf.c 6916d50913c3271aefe96d3483701ceca8644331ec4c7b23a5aa54a9ba36230f -F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c +F src/random.c 9bd018738ec450bf35d28050b4b33fa9a6eebf3aaefb1a1cff42dc14a7725673 - F src/resolve.c 7e936a09405cb59e2b3e51a3ad23753e4803afc5269c5171a54c9bdd70f4fc50 + F src/resolve.c d0724113da9f5c0430d2052808ce59519f51ae7c4fbb1f5ef21fe3a832956086 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 - F src/select.c 6533b3358771537ec332ee5b4b741a963f352b2299e4610bfae77aad0b611fc5 - F src/shell.c.in a04d063955a69449e5bd876956ba14cf69a897eda1f5477862ab6f2bbf0d3852 - F src/sqlite.h.in c25d19eecf3be70149c04be323680da4fbde165d8c501e04e25030186cbe6b79 -F src/select.c 80ea6935f8470b97d1212bc1b759b7fadb28351797877f493d0cf598be1fef5e ++F src/select.c 0cd976ec0d56ba801784cef696c235d8be4c1693f1c521d8aef0567ae799a29b + F src/shell.c.in a4e83895cfa336065ad7f7a7dea8fc2a19d050f7ce7466621c67208acaac9e44 -F src/sqlite.h.in 8c70db561507478176b942a3f88cac396e00993eafb827ed31d48c191f327408 ++F src/sqlite.h.in 51e8aa4c3f5f4914bac47869d95ce944dad05585ef4898f0c510220c9c21ff17 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 - F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e - F src/sqliteInt.h a62e43c60bbb1e4f0bfb0f11d71d8eab8d0703bcecd78d79486e5e174db98112 + F src/sqlite3ext.h 0efd4723bad9124ea1f581d9f1ea0254ac1c6f3e5fb29e4f3dcf36c72485a456 -F src/sqliteInt.h 92563b8edc673513b82d87bf6a8d7aeb554b2c7b7d5e30992fbca04010db79ac ++F src/sqliteInt.h a68786b14a4b090622cb3a94e22dc192fe59a8513ee05b77b0d6c00726f6f638 F src/sqliteLimit.h c70656b67ab5b96741a8f1c812bdd80c81f2b1c1e443d0cc3ea8c33bb1f1a092 F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@@ -807,32 -800,32 +806,32 @@@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f F src/threads.c 85d8b9f05f78211c61e3739ab5db761d7118766d1916ae7f2764735106bc4e13 F src/tokenize.c e9d52d9f7374d82dadcd11726bea8a597d43709d6672704f3f0375bf1d726912 F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5 - F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20 + F src/trigger.c 5028874dd1f4fd3085bacd55c30114b5ad651525508656f65af09adf227181d5 -F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf +F src/update.c e1a8b1876e6f2a1824a6b9f1999a03d5dd50ce250a1bb86ea133e5b4b359488b - F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1 + F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 F src/util.c 98cf12c8ba65623a76c1eb6e6afa98ff40107c9919bf79af42f4bfc70e654232 -F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 -F src/vdbe.c b9310a702ac30578eea5d236a2769e9c1834a756796b83c0d8cb40de0a2374ba +F src/vacuum.c 09d61b53904979f2c6acb740121fd0d1b5371f962baaaa2dbbe449b5535ff581 - F src/vdbe.c 383144666ec04dcb55375acac6635f2264f9dc7c6a5414b898cd6e92f2dafbdf ++F src/vdbe.c 6f45dbf305d61eaa0e98b61c8e17688a8c68ec36350024ff63bedb4905832175 F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1 - F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1 - F src/vdbeaux.c a13a35c85809f8bbcc19364ffa54be5dadc9ddd1c76eee5482fc3e8273140c33 + F src/vdbeapi.c 15c55a4be8edc06055502e15f60f444c8fc5cb6134e38b8486742e89670d5e8f -F src/vdbeaux.c 65782331dc67a7e02b8df0fffb0b2a082a29fc81c4abbde15828cf1d0654a568 ++F src/vdbeaux.c f9139e8b534c81b839fb5a2acc9c5ca3461f173b5dba185161fc2de834fa5d43 F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692 - F src/vdbemem.c efacb8f229422d2a4db0ed38e49b7f3897862a98d82b261aa3b43d7a2d98c6da + F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2 F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70 F src/vdbetrace.c 49e689f751505839742f4a243a1a566e57d5c9eaf0d33bbaa26e2de3febf7b41 F src/vdbevtab.c fc46b9cbd759dc013f0b3724549cc0d71379183c667df3a5988f7e2f1bd485f3 F src/vtab.c 5437ce986db2f70e639ce8a3fe68dcdfe64b0f1abb14eaebecdabd5e0766cc68 F src/vxworks.h 9d18819c5235b49c2340a8a4d48195ec5d5afb637b152406de95a9436beeaeab - F src/wal.c b770732943dc5ac0176b6b7d18a66c33f94267859deefee683e120e141eda486 -F src/wal.c 610467d13cef79cccb9d6eddfe2d83956cc68be1f000b30cb78e42ece924e40c -F src/wal.h 97b8a9903387401377b59507e86b93a148ef1ad4e5ce0f23659a12dcdce56af2 ++F src/wal.c bfdcaa5509509ce6c25d9ce61a45cd90cb0d2fc9138933d802e95261d75553a4 +F src/wal.h 4f25678500c97bf59c627fa4ed8b9fc4f5bbb958b2e26cc638e42d13509848c3 F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014 - F src/where.c 33e4a6558ee69f33d6a4e7069e3a40a55959d14e5653a9a83926e70305d471f3 + F src/where.c e76636ee3a58a3fc84e6a0362c69dd61234c24a77cfc9219b8db8cc2278ae5b7 F src/whereInt.h 8d94cb116c9e06205c3d5ac87af065fc044f8cf08bfdccd94b6ea1c1308e65da - F src/wherecode.c 4d573077652f79780d6b50840ab8cbb72053dbb4eb230780dd2a146ab034475d - F src/whereexpr.c d111a5cb6147253a54010d883474b6aecc0b3009d352c087ee5295d74697bfef - F src/window.c c0a38cd32473e8e8e7bc435039f914a36ca42465506dc491c65870c01ddac9fb + F src/wherecode.c bc39ccbe3648f01157038b16cc55bdbff128590972b7185521b5526dc2815765 + F src/whereexpr.c 00e778c829a6ac6bf2bb8899cd1e39ccc48670d665b5891e99632180a2768a15 + F src/window.c 0d7dacdf2e84c6ee8ff498d5cc881dd245fcb2f14f6c5976e97e112ce96e90dc F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test 4d7a34d328e58ca2a2d78fd76c27614a41ca7ddf4312ded9c68c04f430b3b47d F test/affinity3.test 9b7d1133e11d5edd7805573c4ab6f3ba73b0b74a1f280d5b130d4bf3506a93ff @@@ -1190,10 -1170,10 +1189,10 @@@ F test/fts3conf.test c9cd45433b6787d48a F test/fts3corrupt.test 6732477c5ace050c5758a40a8b5706c8c0cccd416b9c558e0e15224805a40e57 F test/fts3corrupt2.test e318f0676e5e78d5a4b702637e2bb25265954c08a1b1e4aaf93c7880bb0c67d0 F test/fts3corrupt3.test 0d5b69a0998b4adf868cc301fc78f3d0707745f1d984ce044c205cdb764b491f -F test/fts3corrupt4.test c7f414fe29b97a478d15c90382c4ae077a2bbd2283bf8c63bf66dadaaed3edb8 +F test/fts3corrupt4.test bf9eabf113474f0ae73c9e001aeb3fcf2150b260f2309f300379cbd46b45bdfb F test/fts3corrupt5.test 0549f85ec4bd22e992f645f13c59b99d652f2f5e643dac75568bfd23a6db7ed5 - F test/fts3corrupt6.test f417c910254f32c0bc9ead7affa991a1d5aec35b3b32a183ffb05eea78289525 - F test/fts3corrupt7.test 1da31776e24bb91d3c028e663456b61280b121a74496ccf2fef3fe33790ad2b0 + F test/fts3corrupt6.test 9ea944e3cd17a36c64451059022fabff53bd338a43356d1f49264ce8aa9477ad + F test/fts3corrupt7.test 8564d278801a7947d1c74d8819adee7dfed18b81574d0c42f8a1acc6759fc65a F test/fts3cov.test 1e5ecea0e4c1394cea97adcfb9fd3d2d5998fd563dacf465f413e6c7fa5cffb3 F test/fts3d.test 2bd8c97bcb9975f2334147173b4872505b6a41359a4f9068960a36afe07a679f F test/fts3defer.test f4c20e4c7153d20a98ee49ee5f3faef624fefc9a067f8d8d629db380c4d9f1de @@@ -1529,11 -1510,12 +1529,11 @@@ F test/pagerfault2.test caf4c7facb914fd F test/pagerfault3.test 1003fcda009bf48a8e22a516e193b6ef0dd1bbd8 F test/pageropt.test 84e4cc5cbca285357f7906e99b21be4f2bf5abc0 F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305 -F test/parser1.test 131f4733472252d53d8ed681115257866f55740ab697fa05900d766049348f27 F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b - F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442 + F test/pcache2.test 8a801d2b8e4b0ebb99701f026a67a9e84634c8aa24799a842c44003b93250da1 F test/pendingrace.test e99efc5ab3584da3dfc8cd6a0ec4e5a42214820574f5ea24ee93f1d84655f463 - F test/percentile.test eaee1ff3e35d5fe933ac98d927c9a7d2f4f1a1a19ee22e7d45e97a6d9ee32077 - F test/permutations.test 965b59d667eac286a6dc74c7cc93943683834708bb6870028b6f12af8faec68f + F test/percentile.test fd78896fa882fa4fbf693640097859721f3629926c2ccf804af5bcb7001fd35b -F test/permutations.test 4be6fbed7384102c2b366101a35644cc15f9acb595d8e126b4f186155a75de16 ++F test/permutations.test aa73d14d4b1120686f6d9a6dd337103613ed09a6d6c718876c2c4c5a94fabd02 F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f F test/pragma.test 7d07b7bb76e273215d6a20c4f83c3062cc28976c737ccb70a686025801e86c8f F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f @@@ -2057,9 -2036,9 +2057,9 @@@ F test/walpersist.test 8d78a1ec91299163 F test/walprotocol.test 1b3f922125e341703f6e946d77fdc564d38fb3e07a9385cfdc6c99cac1ecf878 F test/walprotocol2.test 7e4bedd5ee83607e2928ac438bf7332a396b980d3e02aa0746509ce11ad1f13c F test/walrestart.test 5168c0c2414d1971d8dec949c1070a0144cf15402361ba0d0e6a8054f5598a64 - F test/walro.test 78a84bc0fdae1385c06b017215c426b6845734d6a5a3ac75c918dd9b801b1b9d -F test/walro.test 1f011c21e00596bf7135ef1a8b781ffa96e5a22eabe2ae80ab84cf67b12c577e ++F test/walro.test 1a4d88af29f748c1eeea2c005cfc0abfe4a5e943a7b498c911532fe3911ed2ba F test/walro2.test 33955a6fd874dd9724005e17f77fef89d334b3171454a1256fe4941a96766cdc -F test/walrofault.test c70cb6e308c443867701856cce92ad8288cd99488fa52afab77cca6cfd51af68 +F test/walrofault.test 5a25f91c16a68bae65edec7cdef4495e5c6494c8408743fe9b29045fa6665cd0 F test/walseh1.test bae700eb99519b6d5cd3f893c04759accc5a59c391d4189fe4dd6995a533442b F test/walsetlk.test 9079cd8ef82570b8cf0067f31e049a72bec353fb2d5f0cc88f1736dc42ba9704 F test/walsetlk2.test 4a67823b1e759ac5a4fe78a83c1f857c3c5761bf8d755421c8b55907957f23dd @@@ -2245,8 -2222,8 +2245,8 @@@ F tool/warnings-clang.sh bbf6a1e685e534 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c - P ec9bab4d19caf5fc9fb9984ec444a121a525e336dc26bb25503754ad995d9d07 d8cf1a62aff38de008f9b826c4846b15e37c89dc0f8bb412b79349da4d1580b0 - R b1c14740d405d471d04e87b1600b2bf9 -P 0c3a346d659fe041f3a8bccf357a2b435e49fbfdf34de4c55b1435b1db1e21c2 35b3ff4007fc1abd36233a6b3b75bb6a123edc062f36437247c3dfe779868b70 -R ad8dbadc0467625c11ed3bf8b7ffe64b ++P a06796a33c5ae847172a1acf833b06245df1b63b0445c0e2f1db8e9beee10617 48bb7da1bf482ff3f0e3af240ea1f10a485f9819f0d47a1db79a33ec160eb814 ++R 00f50ec23e47a4988a8a32a85bc431cc U drh - Z 0ac756ce6c13878ee14480ce63416bec -Z c21c54bb710538373be6f17523f00c9b ++Z 637ce7439cf6ef99e8892a28e658821e # Remove this line to create a well-formed Fossil manifest. diff --cc manifest.uuid index b7bfd4c0a1,211acf37e7..fe34d69e0b --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - a06796a33c5ae847172a1acf833b06245df1b63b0445c0e2f1db8e9beee10617 -48bb7da1bf482ff3f0e3af240ea1f10a485f9819f0d47a1db79a33ec160eb814 ++2a75dcd3a8590fb575ea51ec4e6f91fb149b5b401327cc57f2b62a5331fc265b diff --cc src/analyze.c index b24be3e2b8,b1523c9e69..9d520f5cba --- a/src/analyze.c +++ b/src/analyze.c @@@ -1766,110 -1753,8 +1766,110 @@@ static Index *findIndexOrPrimaryKey } /* -** Load the content from either the sqlite_stat4 -** into the relevant Index.aSample[] arrays. +** Grow the pIdx->aSample[] array. Return SQLITE_OK if successful, or +** SQLITE_NOMEM otherwise. +*/ +static int growSampleArray(sqlite3 *db, Index *pIdx, int *piOff){ + int nIdxCol = pIdx->nSampleCol; + int nNew = 0; + IndexSample *aNew = 0; + int nByte = 0; + tRowcnt *pSpace; /* Available allocated memory space */ + u8 *pPtr; /* Available memory as a u8 for easier manipulation */ + int i; + u64 t; + + assert( pIdx->nSample==pIdx->nSampleAlloc ); + nNew = SQLITE_STAT4_EST_SAMPLES; + if( pIdx->nSample ){ + nNew = pIdx->nSample*2; + } + + /* Set nByte to the required amount of space */ - nByte = ROUND8(sizeof(IndexSample) * nNew); - nByte += sizeof(tRowcnt) * nIdxCol * 3 * nNew; - nByte += nIdxCol * sizeof(tRowcnt); /* Space for Index.aAvgEq[] */ ++ nByte = ROUND8(sizeof64(IndexSample) * nNew); ++ nByte += sizeof64(tRowcnt) * nIdxCol * 3 * nNew; ++ nByte += nIdxCol * sizeof64(tRowcnt); /* Space for Index.aAvgEq[] */ + + if( nNew==SQLITE_STAT4_EST_SAMPLES ){ + aNew = (IndexSample*)&((u8*)pIdx->pSchema->pStat4Space)[*piOff]; + *piOff += nByte; + assert( *piOff<=sqlite3_msize(pIdx->pSchema->pStat4Space) ); + }else{ + aNew = (IndexSample*)sqlite3DbMallocRaw(db, nByte); + if( aNew==0 ) return SQLITE_NOMEM_BKPT; + } + + pPtr = (u8*)aNew; - pPtr += ROUND8(nNew*sizeof(pIdx->aSample[0])); ++ pPtr += ROUND8(nNew*sizeof64(pIdx->aSample[0])); + pSpace = (tRowcnt*)pPtr; + + pIdx->aAvgEq = pSpace; pSpace += nIdxCol; + assert( EIGHT_BYTE_ALIGNMENT( pSpace ) ); + + if( pIdx->nSample ){ + /* Copy the contents of the anEq[], anLt[], anDLt[] arrays for all + ** extant samples to the new location. */ + int nByte = nIdxCol * 3 * sizeof(tRowcnt) * pIdx->nSample; + memcpy(pSpace, pIdx->aSample[0].anEq, nByte); + } + for(i=0; inSample ){ + aNew[i].p = pIdx->aSample[i].p; + aNew[i].n = pIdx->aSample[i].n; + } + } + assert( ((u8*)pSpace)-nByte==(u8*)aNew ); + + if( pIdx->nSample!=SQLITE_STAT4_EST_SAMPLES ){ + sqlite3DbFree(db, pIdx->aSample); + } + pIdx->aSample = aNew; + pIdx->nSampleAlloc = nNew; + return SQLITE_OK; +} + +/* +** Allocate the space that will likely be required for the Index.aSample[] +** arrays populated by loading data from the sqlite_stat4 table. Return +** SQLITE_OK if successful, or SQLITE_NOMEM otherwise. +*/ +static int stat4AllocSpace(sqlite3 *db, const char *zDb){ + int iDb = sqlite3FindDbName(db, zDb); + Schema *pSchema = db->aDb[iDb].pSchema; + int nByte = 0; + HashElem *k; + + assert( iDb>=0 ); + assert( pSchema->pStat4Space==0 ); + for(k=sqliteHashFirst(&pSchema->idxHash); k; k=sqliteHashNext(k)){ + Index *pIdx = sqliteHashData(k); + int nIdxCol; + if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){ + nIdxCol = pIdx->nKeyCol; + }else{ + nIdxCol = pIdx->nColumn; + } - nByte += ROUND8(sizeof(IndexSample) * SQLITE_STAT4_EST_SAMPLES); - nByte += sizeof(tRowcnt) * nIdxCol * 3 * SQLITE_STAT4_EST_SAMPLES; - nByte += nIdxCol * sizeof(tRowcnt); /* Space for Index.aAvgEq[] */ ++ nByte += ROUND8(sizeof64(IndexSample) * SQLITE_STAT4_EST_SAMPLES); ++ nByte += sizeof64(tRowcnt) * nIdxCol * 3 * SQLITE_STAT4_EST_SAMPLES; ++ nByte += nIdxCol * sizeof64(tRowcnt); /* Space for Index.aAvgEq[] */ + } + + if( nByte>0 ){ + pSchema->pStat4Space = sqlite3_malloc(nByte); + if( pSchema->pStat4Space==0 ){ + return SQLITE_NOMEM_BKPT; + } + } + + return SQLITE_OK; +} + +/* +** Load the content from the sqlite_stat4 into the relevant Index.aSample[] +** arrays. ** ** Arguments zSql1 and zSql2 must point to SQL statements that return ** data equivalent to the following: diff --cc test/walro.test index a39b844d9d,80e2b8d02c..ef1d2b8814 --- a/test/walro.test +++ b/test/walro.test @@@ -297,4 -297,49 +297,49 @@@ do_multiclient_test tn } {} } + #------------------------------------------------------------------------- + + proc write_hex_file {fname hex} { + set fd [open $fname wb] - fconfigure $fd -translation binary -encoding binary ++ fconfigure $fd -translation binary + puts -nonewline $fd [decode_hexdb $hex] + close $fd + } + + write_hex_file test.db { + | size 8192 pagesize 4096 filename badwal.db + | page 1 offset 0 + | 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. + | 16: 10 00 01 01 00 40 20 20 00 00 00 02 00 00 00 02 .....@ ........ + | 32: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 ................ + | 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................ + | 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................ + | 96: 00 2e 76 89 0d 00 00 00 01 0f c3 00 0f c3 00 00 ..v............. + | 4032: 00 00 00 3b 01 06 17 0f 0f 01 67 74 61 62 6c 65 ...;......gtable + | 4048: 74 74 02 43 52 45 41 54 45 20 54 41 42 4c 45 20 tt.CREATE TABLE + | 4064: 74 28 78 20 49 4e 54 45 47 45 52 20 50 52 49 4d t(x INTEGER PRIM + | 4080: 41 52 59 20 4b 45 59 2c 20 79 20 54 45 58 54 29 ARY KEY, y TEXT) + } + + write_hex_file test.db-wal { + | size 56 pagesize 1024 filename badwal.db-wal + | page 1 offset 0 + | 0: 37 7f 06 82 00 2d e2 18 00 00 00 00 00 00 00 00 7....-.......... + | 32: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ + | end badwal.db-wal + } + + write_hex_file test.db-shm { + | size 32 pagesize 1024 filename badwal.db-wal + | page 1 offset 0 + | 0: 53 48 4d 2d 55 4e 55 53 45 44 2d 49 4e 2d 52 45 SHM-UNUSED-IN-RE + | 16: 41 44 4f 4e 4c 59 2d 43 41 4e 54 49 4e 49 54 0a ADONLY-CANTINIT. + | end badwal.db-shm + } + + sqlite3 db file:test.db?mode=ro&readonly_shm=1 -uri 1 + do_execsql_test 3.0 { + SELECT count(*) FROM sqlite_schema + } {1} + finish_test