From: drh <> Date: Tue, 28 Feb 2023 13:46:01 +0000 (+0000) Subject: When an automatic index creates a Bloom filter, show that in the X-Git-Tag: version-3.42.0~310 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f43ffb30b019d279887a2353958c3ec065d556e1;p=thirdparty%2Fsqlite.git When an automatic index creates a Bloom filter, show that in the EXPLAIN QUERY PLAN output. FossilOrigin-Name: d7b2ac1c1a31fa4285cf6df0995db7e7705bb6a1bc94850c14c94cc4e3eb239a --- diff --git a/manifest b/manifest index ea5fdfaf0f..e118369f8f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Performance\soptimization\sin\sthe\svarint\sdecoder\sfor\sthe\scell\sparser. -D 2023-02-28T12:31:40.190 +C When\san\sautomatic\sindex\screates\sa\sBloom\sfilter,\sshow\sthat\sin\sthe\nEXPLAIN\sQUERY\sPLAN\soutput. +D 2023-02-28T13:46:01.925 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -708,7 +708,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c b9df133a705093da8977da5eb202eaadb844839f1c7297c08d33471f5491843d F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b -F src/where.c 38c36bb654b4172148aef3b295bbbc1342b52078cf20174f771c746caa98f69a +F src/where.c accf653499cf77d8974aeb9089d81bd0e689dca2b9ee2114096147eb58d70f61 F src/whereInt.h e25203e5bfee149f5f1225ae0166cfb4f1e65490c998a024249e98bb0647377c F src/wherecode.c b82d0d33315e1526904b95155e55e61149c4462147668e1cc4567c812735eff1 F src/whereexpr.c 1dfda1695e4480c24248157df55bb4d66c732dc8d14ac16b4f076bb15de93d63 @@ -774,9 +774,9 @@ F test/auth2.test 9eb7fce9f34bf1f50d3f366fb3e606be5a2000a1 F test/auth3.test 76d20a7fa136d63bcfcf8bcb65c0b1455ed71078d81f22bcd0550d3eb18594ab F test/autoanalyze1.test b9cc3f32a990fa56669b668d237c6d53e983554ae80c0604992e18869a0b2dec F test/autoinc.test 997d6f185f138229dc4251583a1d04816423dddc2fc034871a01aeb1d728cb39 -F test/autoindex1.test cdc336e80cfd586c0e09426d58bec412db7527ca22dfabe88eab690e3acbb406 +F test/autoindex1.test b8f093ff5574f14d03645148550612b1a01cd45669b05f5728a6c6fef5ac5bec F test/autoindex2.test 12ef578928102baaa0dc23ad397601a2f4ecb0df -F test/autoindex3.test 2d13958a5617e987624a428d7aed91bf51f322b49b476e3573fadec697ce6da5 +F test/autoindex3.test dcd6b2f8bed2be67b131e2e671f892e971d934e24fd00988952d0e0a67e24aa7 F test/autoindex4.test 5df39313526b6f22a26bd119bbd97ca69f28386ab3c671fc10568d921c41eb08 F test/autoindex5.test 2ee94f033b87ca0160e08d81034c507aff8e230df2627f0304fa309b2fee19a3 F test/autovacuum.test 00671369bbf96c6a49989a9425f5b78b94075d6a4b031e5e00000c2c32f365df @@ -1923,10 +1923,10 @@ F test/windowfault.test 15094c1529424e62f798bc679e3fe9dfab6e8ba2f7dfe8c923b6248c F test/windowpushd.test d8895d08870b7226f7693665bd292eb177e62ca06799184957b3ca7dc03067df F test/with1.test b93833890e5d2a368e78747f124503a0159aa029b98e9ed4795ebf630b2efd3d F test/with2.test a1df41b987198383b9b70bf5e5fda390582e46398653858dbc6ceb24253b28df -F test/with3.test e7bf809bf75c1f44f98bca78bc331dbf542002c5227bf53c1261144db4e824c8 +F test/with3.test fe15975c0b53c9098a757902a908e3f8d6d80ce47c5363ac600f28a79ef8c0ca F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205 F test/with5.test 6248213c41fab36290b5b73aa3f937309dfba337004d9d8434c3fabc8c7d4be8 -F test/with6.test 7afab289442bd0a023c18deef854642932294fa63cdb885a4b4db69e28c5fbf9 +F test/with6.test e097a03e5c898a8cd8f3a2d6a994ec510ea4376b5d484c2b669a41001e7758c8 F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64 F test/without_rowid1.test a5210b8770dc4736bca4e74bc96588f43025ad03ad6a80f885afd36d9890e217 F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99 @@ -2048,8 +2048,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P c1f2a1d55c180fb51a4e203befbbe529bdd23137b26190c50b8f85820450e7fa -R b1ce68bb615f7298ac94af8677093307 +P b2b91c7cb40f1efe800059614e34823411016a3ece3f988e1574aecadd4c3114 +R ad671f91f6548ed5a58a53003a52602c U drh -Z da47b6a5dd71cc45cfa11f11f6878a01 +Z 2bfb99217fbdf0c560b29d9c5fd7f671 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 6d2abf5ca7..4cb695987d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b2b91c7cb40f1efe800059614e34823411016a3ece3f988e1574aecadd4c3114 \ No newline at end of file +d7b2ac1c1a31fa4285cf6df0995db7e7705bb6a1bc94850c14c94cc4e3eb239a \ No newline at end of file diff --git a/src/where.c b/src/where.c index 08dd21824c..a0a580b100 100644 --- a/src/where.c +++ b/src/where.c @@ -1031,6 +1031,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex( sqlite3VdbeSetP4KeyInfo(pParse, pIdx); VdbeComment((v, "for %s", pTable->zName)); if( OptimizationEnabled(pParse->db, SQLITE_BloomFilter) ){ + sqlite3WhereExplainBloomFilter(pParse, pWC->pWInfo, pLevel); pLevel->regFilter = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Blob, 10000, pLevel->regFilter); } diff --git a/test/autoindex1.test b/test/autoindex1.test index 4b290c7961..9c073a6ae9 100644 --- a/test/autoindex1.test +++ b/test/autoindex1.test @@ -194,6 +194,7 @@ do_eqp_test autoindex1-501 { QUERY PLAN |--SCAN t501 `--CORRELATED LIST SUBQUERY xxxxxx + |--BLOOM FILTER ON t502 (y=?) `--SEARCH t502 USING AUTOMATIC COVERING INDEX (y=?) } do_eqp_test autoindex1-502 { @@ -283,6 +284,7 @@ do_eqp_test autoindex1-600a { | `--CORRELATED SCALAR SUBQUERY xxxxxx | `--SEARCH later USING COVERING INDEX sqlite_autoindex_flock_owner_1 (flock_no=? AND owner_change_date>? AND owner_change_date?) + |--BLOOM FILTER ON u (b=?) `--SEARCH u USING AUTOMATIC COVERING INDEX (b=?) } diff --git a/test/with3.test b/test/with3.test index 85889453a0..650740dcc1 100644 --- a/test/with3.test +++ b/test/with3.test @@ -109,6 +109,7 @@ ifcapable analyze { | `--RECURSIVE STEP | `--SCAN cnt |--SCAN y1 + |--BLOOM FILTER ON cnt (i=?) `--SEARCH cnt USING AUTOMATIC COVERING INDEX (i=?) }] } diff --git a/test/with6.test b/test/with6.test index 91d64fa297..2a4bfc646d 100644 --- a/test/with6.test +++ b/test/with6.test @@ -363,9 +363,13 @@ do_eqp_test 400 { | |--SEARCH raw USING INDEX sqlite_autoindex_raw_1 (country=? AND date>? AND date