1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Add an sqlite3_db_config() option - SQLITE_DBCONFIG_STMT_SCANSTATS - for enabling and disabling the collection of sqlite3_stmt_scanstats() statistics in SQLITE_ENABLE_STMT_SCANSTATUS builds. Collection of statistics is disabled by default.

FossilOrigin-Name: 0f5579bef27b84ee855065cfe87703c51e1f9773906a9e0d4e4dafc90bd0e553
This commit is contained in:
dan
2023-02-28 19:39:59 +00:00
parent 4990fc84f1
commit 45163fc45e
14 changed files with 155 additions and 95 deletions

View File

@ -19,6 +19,8 @@ ifcapable !scanstatus {
return
}
sqlite3_db_config db STMT_SCANSTATS 1
do_execsql_test 1.0 {
CREATE TABLE t1(a, b);
CREATE TABLE t2(x, y);
@ -141,6 +143,7 @@ QUERY (nCycle=nnn)
#-------------------------------------------------------------------------
ifcapable fts5 {
reset_db
sqlite3_db_config db STMT_SCANSTATS 1
do_execsql_test 2.0 {
CREATE VIRTUAL TABLE ft USING fts5(a);
INSERT INTO ft VALUES('abc');
@ -158,6 +161,7 @@ QUERY (nCycle=nnn)
#-------------------------------------------------------------------------
reset_db
sqlite3_db_config db STMT_SCANSTATS 1
do_execsql_test 3.0 {
CREATE TABLE x1(a, b);
CREATE TABLE x2(c, d);
@ -173,11 +177,13 @@ do_graph_test 2.1 {
QUERY (nCycle=nnn)
--SCAN x1 (nCycle=nnn)
--CREATE AUTOMATIC INDEX ON x2(c, d) (nCycle=nnn)
--BLOOM FILTER ON x2 (c=?)
--SEARCH x2 USING AUTOMATIC COVERING INDEX (c=?) (nCycle=nnn)
}
#-------------------------------------------------------------------------
reset_db
sqlite3_db_config db STMT_SCANSTATS 1
do_execsql_test 4.0 {
CREATE TABLE rt1 (id INTEGER PRIMARY KEY, x1, x2);
CREATE TABLE rt2 (id, x1, x2);
@ -189,6 +195,7 @@ do_graph_test 4.1 {
QUERY (nCycle=nnn)
--SCAN rt1 (nCycle=nnn)
--CREATE AUTOMATIC INDEX ON rt2(x1, id, x2) (nCycle=nnn)
--BLOOM FILTER ON rt2 (x1=?)
--SEARCH rt2 USING AUTOMATIC COVERING INDEX (x1=?) (nCycle=nnn)
}
@ -198,6 +205,7 @@ do_graph_test 4.2 {
QUERY (nCycle=nnn)
--SCAN rt1 (nCycle=nnn)
--CREATE AUTOMATIC INDEX ON rt2(x1, id) (nCycle=nnn)
--BLOOM FILTER ON rt2 (x1=?)
--SEARCH rt2 USING AUTOMATIC COVERING INDEX (x1=?) (nCycle=nnn)
}
@ -215,6 +223,7 @@ do_graph_test 4.4 {
QUERY (nCycle=nnn)
--SCAN rt1 (nCycle=nnn)
--CREATE AUTOMATIC INDEX ON rt2(x1, id) WHERE <expr> (nCycle=nnn)
--BLOOM FILTER ON rt2 (x1=?)
--SEARCH rt2 USING AUTOMATIC PARTIAL COVERING INDEX (x1=?) (nCycle=nnn)
}
@ -229,6 +238,7 @@ QUERY (nCycle=nnn)
----USE TEMP B-TREE FOR GROUP BY
--SCAN rt1 (nCycle=nnn)
--CREATE AUTOMATIC INDEX ON v1(x1, cnt) (nCycle=nnn)
--BLOOM FILTER ON v1 (x1=?)
--SEARCH v1 USING AUTOMATIC COVERING INDEX (x1=?) (nCycle=nnn)
}