mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Show the creation of IN-operator Bloom filters in the EXPLAIN QUERY PLAN output.
FossilOrigin-Name: c10a1b99d47a4c93bdb16e646f6a21add570d6dbb34fd91a32f8abacdb28712b
This commit is contained in:
20
manifest
20
manifest
@ -1,5 +1,5 @@
|
|||||||
C Add\sa\snew\ssqlite3FaultSim()\scall\sto\sOP_NotFound\sto\suse\sfor\stesting\spurposes.
|
C Show\sthe\screation\sof\sIN-operator\sBloom\sfilters\sin\sthe\sEXPLAIN\sQUERY\sPLAN\soutput.
|
||||||
D 2024-07-03T18:56:56.464
|
D 2024-07-03T20:10:42.192
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@ -755,7 +755,7 @@ F src/printf.c 8b250972305e14b365561be5117ed0fd364e4fd58968776df1ce64c6280b90f9
|
|||||||
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
|
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
|
||||||
F src/resolve.c 7e8d23ce7cdbfedf351a47e759f2722e8182ca10fd7580be43f4ce1f1a228145
|
F src/resolve.c 7e8d23ce7cdbfedf351a47e759f2722e8182ca10fd7580be43f4ce1f1a228145
|
||||||
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
|
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
|
||||||
F src/select.c ca249242cf6c8762f505b30d93915ee61a21de30fd69fbfcf04a7ea8dda6b334
|
F src/select.c c448e2c0670ac590e5af53ef91e84a188bedb3d80d486e54948bf40d4dc4204b
|
||||||
F src/shell.c.in b7d435c137eb323981adff814f172dbaabb9ba504fef17cb11d4681c1633ee13
|
F src/shell.c.in b7d435c137eb323981adff814f172dbaabb9ba504fef17cb11d4681c1633ee13
|
||||||
F src/sqlite.h.in 6c884a87bbf8828562b49272025a1e66e3801a196a58b0bdec87edcd2c9c8fc1
|
F src/sqlite.h.in 6c884a87bbf8828562b49272025a1e66e3801a196a58b0bdec87edcd2c9c8fc1
|
||||||
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
||||||
@ -908,7 +908,7 @@ F test/auth2.test 9eb7fce9f34bf1f50d3f366fb3e606be5a2000a1
|
|||||||
F test/auth3.test 76d20a7fa136d63bcfcf8bcb65c0b1455ed71078d81f22bcd0550d3eb18594ab
|
F test/auth3.test 76d20a7fa136d63bcfcf8bcb65c0b1455ed71078d81f22bcd0550d3eb18594ab
|
||||||
F test/autoanalyze1.test b9cc3f32a990fa56669b668d237c6d53e983554ae80c0604992e18869a0b2dec
|
F test/autoanalyze1.test b9cc3f32a990fa56669b668d237c6d53e983554ae80c0604992e18869a0b2dec
|
||||||
F test/autoinc.test 997d6f185f138229dc4251583a1d04816423dddc2fc034871a01aeb1d728cb39
|
F test/autoinc.test 997d6f185f138229dc4251583a1d04816423dddc2fc034871a01aeb1d728cb39
|
||||||
F test/autoindex1.test d34caffb0384003ee28eae87679214c029e9be4b332d9649a79e0b94ab70502c
|
F test/autoindex1.test 714cac6e60beeb5a26ed346dd46505ba60b5a5597e9122c9ed3a55f89a922aa4
|
||||||
F test/autoindex2.test 12ef578928102baaa0dc23ad397601a2f4ecb0df
|
F test/autoindex2.test 12ef578928102baaa0dc23ad397601a2f4ecb0df
|
||||||
F test/autoindex3.test ca502c8050166ac6107a7b4fe4e951f4d3270a23a958af02b14f1b962b83c4b6
|
F test/autoindex3.test ca502c8050166ac6107a7b4fe4e951f4d3270a23a958af02b14f1b962b83c4b6
|
||||||
F test/autoindex4.test 3c2105e9172920e26f950ba3c5823e4972190e022c1e6f260ba476b0af24c593
|
F test/autoindex4.test 3c2105e9172920e26f950ba3c5823e4972190e022c1e6f260ba476b0af24c593
|
||||||
@ -1106,7 +1106,7 @@ F test/enc.test 9a7be5479da985381d740b15f432800f65e2c87029ee57a318f42cb2eb43763a
|
|||||||
F test/enc2.test 848bf05f15b011719f478dddb7b5e9aea35e39e457493cba4c4eef75d849a5ec
|
F test/enc2.test 848bf05f15b011719f478dddb7b5e9aea35e39e457493cba4c4eef75d849a5ec
|
||||||
F test/enc3.test 55ef64416d72975c66167310a51dc9fc544ba3ae4858b8d5ab22f4cb6500b087
|
F test/enc3.test 55ef64416d72975c66167310a51dc9fc544ba3ae4858b8d5ab22f4cb6500b087
|
||||||
F test/enc4.test c8f1ce3618508fd0909945beb8b8831feef2c020
|
F test/enc4.test c8f1ce3618508fd0909945beb8b8831feef2c020
|
||||||
F test/eqp.test 3302598f611220a6c61e29d9b7bb62fd4a43504509b978dbabdb0b3e56ae3bc0
|
F test/eqp.test 815418b69f6be3a27037b1736c54699c72cc3e2e6b0bc878c01464d1dcec65fe
|
||||||
F test/eqp2.test 6e8996148de88f0e7670491e92e712a2920a369b4406f21a27c3c9b6a46b68dd
|
F test/eqp2.test 6e8996148de88f0e7670491e92e712a2920a369b4406f21a27c3c9b6a46b68dd
|
||||||
F test/errmsg.test eae9f091eb39ce7e20305de45d8e5d115b68fa856fba4ea6757b6ca3705ff7f9
|
F test/errmsg.test eae9f091eb39ce7e20305de45d8e5d115b68fa856fba4ea6757b6ca3705ff7f9
|
||||||
F test/eval.test 73969a2d43a511bf44080c44485a8c4d796b6a4f038d19e491867081155692c0
|
F test/eval.test 73969a2d43a511bf44080c44485a8c4d796b6a4f038d19e491867081155692c0
|
||||||
@ -1518,7 +1518,7 @@ F test/printf.test 685fec5a0c5af2490ab0632775a301554361d674211d690f5bee0a97b0533
|
|||||||
F test/printf2.test 3f55c1871a5a65507416076f6eb97e738d5210aeda7595a74ee895f2224cce60
|
F test/printf2.test 3f55c1871a5a65507416076f6eb97e738d5210aeda7595a74ee895f2224cce60
|
||||||
F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb
|
F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb
|
||||||
F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc
|
F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc
|
||||||
F test/pushdown.test 3330746a897ea271b1021bc1e7e57c6f8d49bcb8ca7d58a823d01aa64a303cc7
|
F test/pushdown.test 9e655df51bc6559608dcc7af89a36f727eff520b4860261ed15a5f95a5ebbcd8
|
||||||
F test/queryonly.test 5f653159e0f552f0552d43259890c1089391dcca
|
F test/queryonly.test 5f653159e0f552f0552d43259890c1089391dcca
|
||||||
F test/quick.test 1681febc928d686362d50057c642f77a02c62e57
|
F test/quick.test 1681febc928d686362d50057c642f77a02c62e57
|
||||||
F test/quickcheck.test a4b7e878cd97e46108291c409b0bf8214f29e18fddd68a42bc5c1375ad1fb80a
|
F test/quickcheck.test a4b7e878cd97e46108291c409b0bf8214f29e18fddd68a42bc5c1375ad1fb80a
|
||||||
@ -1549,7 +1549,7 @@ F test/rowid.test d27191b5ce794c05bf61081e8b2c546a1844c1641321dcaf7fb785234256cc
|
|||||||
F test/rowvalue.test baf4fa3ec1a8c1c920c3faa5fd25959cb454bbd99ac8960397c34549d9fc4abe
|
F test/rowvalue.test baf4fa3ec1a8c1c920c3faa5fd25959cb454bbd99ac8960397c34549d9fc4abe
|
||||||
F test/rowvalue2.test 060d238b7e5639a7c5630cb5e63e311b44efef2b
|
F test/rowvalue2.test 060d238b7e5639a7c5630cb5e63e311b44efef2b
|
||||||
F test/rowvalue3.test 1347e25ca11c547c5a6ff0cc5626f95aa9740e9275bfaec096029f57cb2130ce
|
F test/rowvalue3.test 1347e25ca11c547c5a6ff0cc5626f95aa9740e9275bfaec096029f57cb2130ce
|
||||||
F test/rowvalue4.test 441e7e366ac6d939a3a95a574031c56ec2a854077a91d66eee5ff1d86cb5be58
|
F test/rowvalue4.test bac9326d1e886656650f67c0ec484eb5f452244a8209c6af508e9a862ace08ed
|
||||||
F test/rowvalue5.test 00740304ea6a53a8704640c7405690f0045d5d2a6b4b04dde7bccc14c3068ea7
|
F test/rowvalue5.test 00740304ea6a53a8704640c7405690f0045d5d2a6b4b04dde7bccc14c3068ea7
|
||||||
F test/rowvalue6.test d19b54feb604d5601f8614b15e214e0774c01087
|
F test/rowvalue6.test d19b54feb604d5601f8614b15e214e0774c01087
|
||||||
F test/rowvalue7.test c1cbdbf407029db01f87764097c6ac02a1c5a37efd2776eff32a9cdfdf6f2dba
|
F test/rowvalue7.test c1cbdbf407029db01f87764097c6ac02a1c5a37efd2776eff32a9cdfdf6f2dba
|
||||||
@ -2195,8 +2195,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 1933496539c19cbf429a39d6b0b1c6b1b2af50733a3c4aea4920990ced652f6a
|
P 84fd275bfd8afada50d3a5ac491d2b866671f8f0d2496bd240cf4bfdd74e7399
|
||||||
R 9c9e7e3ddb9d61c25f83c8cc55bade8c
|
R c969cbcf973aa6019e666c5feff1eff5
|
||||||
U drh
|
U drh
|
||||||
Z fe58adb4deb8e6161fd0f3d3e1a34948
|
Z 44737a16c63fa6671a6e6fd4c06cf1bb
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
84fd275bfd8afada50d3a5ac491d2b866671f8f0d2496bd240cf4bfdd74e7399
|
c10a1b99d47a4c93bdb16e646f6a21add570d6dbb34fd91a32f8abacdb28712b
|
||||||
|
@ -1387,6 +1387,7 @@ static void selectInnerLoop(
|
|||||||
if( pDest->iSDParm2 ){
|
if( pDest->iSDParm2 ){
|
||||||
sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pDest->iSDParm2, 0,
|
sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pDest->iSDParm2, 0,
|
||||||
regResult, nResultCol);
|
regResult, nResultCol);
|
||||||
|
ExplainQueryPlan((pParse, 0, "CREATE BLOOM FILTER"));
|
||||||
}
|
}
|
||||||
sqlite3ReleaseTempReg(pParse, r1);
|
sqlite3ReleaseTempReg(pParse, r1);
|
||||||
}
|
}
|
||||||
@ -3324,6 +3325,7 @@ static int generateOutputSubroutine(
|
|||||||
if( pDest->iSDParm2>0 ){
|
if( pDest->iSDParm2>0 ){
|
||||||
sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pDest->iSDParm2, 0,
|
sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pDest->iSDParm2, 0,
|
||||||
pIn->iSdst, pIn->nSdst);
|
pIn->iSdst, pIn->nSdst);
|
||||||
|
ExplainQueryPlan((pParse, 0, "CREATE BLOOM FILTER"));
|
||||||
}
|
}
|
||||||
sqlite3ReleaseTempReg(pParse, r1);
|
sqlite3ReleaseTempReg(pParse, r1);
|
||||||
break;
|
break;
|
||||||
|
@ -185,7 +185,8 @@ do_eqp_test autoindex1-500.1 {
|
|||||||
QUERY PLAN
|
QUERY PLAN
|
||||||
|--SEARCH t501 USING INTEGER PRIMARY KEY (rowid=?)
|
|--SEARCH t501 USING INTEGER PRIMARY KEY (rowid=?)
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
`--SCAN t502
|
|--SCAN t502
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
do_eqp_test autoindex1-501 {
|
do_eqp_test autoindex1-501 {
|
||||||
SELECT b FROM t501
|
SELECT b FROM t501
|
||||||
|
@ -311,7 +311,8 @@ det 3.3.1 {
|
|||||||
QUERY PLAN
|
QUERY PLAN
|
||||||
|--SCAN t1
|
|--SCAN t1
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
`--SCAN t2
|
|--SCAN t2
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
det 3.3.2 {
|
det 3.3.2 {
|
||||||
SELECT * FROM t1 WHERE y IN (SELECT y FROM t2 WHERE t1.x!=t2.x)
|
SELECT * FROM t1 WHERE y IN (SELECT y FROM t2 WHERE t1.x!=t2.x)
|
||||||
|
@ -275,14 +275,17 @@ do_eqp_test 6.1 {
|
|||||||
| | `--LIST SUBQUERY xxxxxx
|
| | `--LIST SUBQUERY xxxxxx
|
||||||
| | |--MATERIALIZE k
|
| | |--MATERIALIZE k
|
||||||
| | | `--SCAN 3 CONSTANT ROWS
|
| | | `--SCAN 3 CONSTANT ROWS
|
||||||
| | `--SCAN k
|
| | |--SCAN k
|
||||||
|
| | `--CREATE BLOOM FILTER
|
||||||
| `--UNION ALL
|
| `--UNION ALL
|
||||||
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
||||||
| `--LIST SUBQUERY xxxxxx
|
| `--LIST SUBQUERY xxxxxx
|
||||||
| `--SCAN k
|
| |--SCAN k
|
||||||
|
| `--CREATE BLOOM FILTER
|
||||||
|--SEARCH t0
|
|--SEARCH t0
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
`--SCAN k
|
|--SCAN k
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
# ^^^^--- The key feature above is that the SEARCH for each subquery
|
# ^^^^--- The key feature above is that the SEARCH for each subquery
|
||||||
# uses all three fields of the index w, x, and y. Prior to the push-down
|
# uses all three fields of the index w, x, and y. Prior to the push-down
|
||||||
@ -300,18 +303,21 @@ do_eqp_test 6.2 {
|
|||||||
| | `--LIST SUBQUERY xxxxxx
|
| | `--LIST SUBQUERY xxxxxx
|
||||||
| | |--CO-ROUTINE v1
|
| | |--CO-ROUTINE v1
|
||||||
| | | `--SCAN 3 CONSTANT ROWS
|
| | | `--SCAN 3 CONSTANT ROWS
|
||||||
| | `--SCAN v1
|
| | |--SCAN v1
|
||||||
|
| | `--CREATE BLOOM FILTER
|
||||||
| `--UNION ALL
|
| `--UNION ALL
|
||||||
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
||||||
| `--LIST SUBQUERY xxxxxx
|
| `--LIST SUBQUERY xxxxxx
|
||||||
| |--CO-ROUTINE v1
|
| |--CO-ROUTINE v1
|
||||||
| | `--SCAN 3 CONSTANT ROWS
|
| | `--SCAN 3 CONSTANT ROWS
|
||||||
| `--SCAN v1
|
| |--SCAN v1
|
||||||
|
| `--CREATE BLOOM FILTER
|
||||||
|--SEARCH t0
|
|--SEARCH t0
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
|--CO-ROUTINE v1
|
|--CO-ROUTINE v1
|
||||||
| `--SCAN 3 CONSTANT ROWS
|
| `--SCAN 3 CONSTANT ROWS
|
||||||
`--SCAN v1
|
|--SCAN v1
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
do_eqp_test 6.3 {
|
do_eqp_test 6.3 {
|
||||||
SELECT max(z) FROM t0 WHERE w=123 AND x IN k1 AND y BETWEEN 44 AND 55;
|
SELECT max(z) FROM t0 WHERE w=123 AND x IN k1 AND y BETWEEN 44 AND 55;
|
||||||
@ -322,14 +328,17 @@ do_eqp_test 6.3 {
|
|||||||
| |--LEFT-MOST SUBQUERY
|
| |--LEFT-MOST SUBQUERY
|
||||||
| | |--SEARCH t01 USING INDEX t01x (w=? AND x=? AND y>? AND y<?)
|
| | |--SEARCH t01 USING INDEX t01x (w=? AND x=? AND y>? AND y<?)
|
||||||
| | `--LIST SUBQUERY xxxxxx
|
| | `--LIST SUBQUERY xxxxxx
|
||||||
| | `--SCAN k1
|
| | |--SCAN k1
|
||||||
|
| | `--CREATE BLOOM FILTER
|
||||||
| `--UNION ALL
|
| `--UNION ALL
|
||||||
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
| |--SEARCH t02 USING INDEX t02x (w=? AND x=? AND y>? AND y<?)
|
||||||
| `--LIST SUBQUERY xxxxxx
|
| `--LIST SUBQUERY xxxxxx
|
||||||
| `--SCAN k1
|
| |--SCAN k1
|
||||||
|
| `--CREATE BLOOM FILTER
|
||||||
|--SEARCH t0
|
|--SEARCH t0
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
`--SCAN k1
|
|--SCAN k1
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
|
|
||||||
finish_test
|
finish_test
|
||||||
|
@ -236,9 +236,11 @@ do_eqp_test 5.1 {
|
|||||||
QUERY PLAN
|
QUERY PLAN
|
||||||
|--SEARCH d2 USING INDEX d2ab (a=? AND b=?)
|
|--SEARCH d2 USING INDEX d2ab (a=? AND b=?)
|
||||||
|--LIST SUBQUERY xxxxxx
|
|--LIST SUBQUERY xxxxxx
|
||||||
| `--SCAN d1
|
| |--SCAN d1
|
||||||
|
| `--CREATE BLOOM FILTER
|
||||||
`--LIST SUBQUERY xxxxxx
|
`--LIST SUBQUERY xxxxxx
|
||||||
`--SCAN d1
|
|--SCAN d1
|
||||||
|
`--CREATE BLOOM FILTER
|
||||||
}
|
}
|
||||||
|
|
||||||
do_execsql_test 6.0 {
|
do_execsql_test 6.0 {
|
||||||
|
Reference in New Issue
Block a user