]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When an automatic index creates a Bloom filter, show that in the
authordrh <>
Tue, 28 Feb 2023 13:46:01 +0000 (13:46 +0000)
committerdrh <>
Tue, 28 Feb 2023 13:46:01 +0000 (13:46 +0000)
EXPLAIN QUERY PLAN output.

FossilOrigin-Name: d7b2ac1c1a31fa4285cf6df0995db7e7705bb6a1bc94850c14c94cc4e3eb239a

manifest
manifest.uuid
src/where.c
test/autoindex1.test
test/autoindex3.test
test/with3.test
test/with6.test

index ea5fdfaf0fc7393322916f8872bbe7d6ad7aeefa..e118369f8fd985a59176f962cbe6f0fdf5ddd36e 100644 (file)
--- 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.
index 6d2abf5ca744a1fc70693b439d420baf2c673c37..4cb695987dea6af6220cd9228dd0dbd30f1a5e48 100644 (file)
@@ -1 +1 @@
-b2b91c7cb40f1efe800059614e34823411016a3ece3f988e1574aecadd4c3114
\ No newline at end of file
+d7b2ac1c1a31fa4285cf6df0995db7e7705bb6a1bc94850c14c94cc4e3eb239a
\ No newline at end of file
index 08dd21824c34cd6f76b8f244cb24bb42acf43305..a0a580b100418d3df58e434cbc1e4931e232c5c1 100644 (file)
@@ -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);
   }
index 4b290c7961f8eb3861f5ad9f5a6f20aee54f3780..9c073a6ae9993ee30f749de56fc99135bf286473 100644 (file)
@@ -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<?)
   |--SCAN x USING INDEX sheep_reg_flock_index
+  |--BLOOM FILTER ON y (sheep_no=?)
   `--SEARCH y USING AUTOMATIC COVERING INDEX (sheep_no=?) LEFT-JOIN
 }
 
index 824a82973b5c065f1f587da95ed99a5c682cb4fc..3da7a70586e65fda42a4ebd61912d9201ed7f8db 100644 (file)
@@ -86,6 +86,7 @@ do_eqp_test 220 {
 } {
   QUERY PLAN
   |--SEARCH v USING INDEX ve (e>?)
+  |--BLOOM FILTER ON u (b=?)
   `--SEARCH u USING AUTOMATIC COVERING INDEX (b=?)
 }
 
index 85889453a0b730335e239153d3a8a2928c5d1939..650740dcc169ed358fb06e28003ac6bf27afa6ab 100644 (file)
@@ -109,6 +109,7 @@ ifcapable analyze {
     |  `--RECURSIVE STEP
     |     `--SCAN cnt
     |--SCAN y1
+    |--BLOOM FILTER ON cnt (i=?)
     `--SEARCH cnt USING AUTOMATIC COVERING INDEX (i=?)
   }]
 }
index 91d64fa2975be0550a5eee5e6545f5db606e17af..2a4bfc646d7e9c03178da3e547c22f85b1939c13 100644 (file)
@@ -363,9 +363,13 @@ do_eqp_test 400 {
   |  |--SEARCH raw USING INDEX sqlite_autoindex_raw_1 (country=? AND date>? AND date<?)
   |  `--USE TEMP B-TREE FOR GROUP BY
   |--SCAN sums
+  |--BLOOM FILTER ON sums (country=? AND date=?)
   |--SEARCH sums USING AUTOMATIC COVERING INDEX (country=? AND date=?)
+  |--BLOOM FILTER ON sums (country=? AND date=?)
   |--SEARCH sums USING AUTOMATIC COVERING INDEX (country=? AND date=?)
+  |--BLOOM FILTER ON sums (country=? AND date=?)
   |--SEARCH sums USING AUTOMATIC COVERING INDEX (country=? AND date=?)
+  |--BLOOM FILTER ON i (country=?)
   `--SEARCH i USING AUTOMATIC COVERING INDEX (country=?)
 }