mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Fix Bloom filters on an expression index.
[forum:/forumpost/2e427099d5|forum post 2e427099d5] and [forum:/forumpost/d47a0e8e3a|forum post d47a0e8e3a]. FossilOrigin-Name: c028fb669a5ae34dbaf50fffab1ae49bc568b994435cf02e145d24da3cfb48d7
This commit is contained in:
@ -145,6 +145,44 @@ do_eqp_test 3.4 {
|
||||
`--SEARCH t1 USING AUTOMATIC PARTIAL COVERING INDEX (x=?)
|
||||
}
|
||||
|
||||
|
||||
# 2023-03-14
|
||||
# https://sqlite.org/forum/forumpost/d47a0e8e3a
|
||||
# https://sqlite.org/forum/forumpost/2e427099d5
|
||||
#
|
||||
# Both reports are for the same problem - using a Bloom filter on an
|
||||
# expression index can cause issues.
|
||||
#
|
||||
reset_db
|
||||
do_execsql_test 4.1 {
|
||||
CREATE TABLE t1(x TEXT, y INT, z TEXT);
|
||||
INSERT INTO t1(rowid,x,y,z) VALUES(12,'aa','bb','aa');
|
||||
CREATE INDEX i1x ON t1(1 IS true,z);
|
||||
CREATE TABLE t0(x TEXT);
|
||||
INSERT INTO t0(rowid,x) VALUES(4,'aa');
|
||||
ANALYZE sqlite_schema;
|
||||
INSERT INTO sqlite_stat1 VALUES('t0',NULL,'20');
|
||||
INSERT INTO sqlite_stat1 VALUES('t1','i1x','18 18 2');
|
||||
ANALYZE sqlite_schema;
|
||||
}
|
||||
do_execsql_test 4.2 {
|
||||
SELECT * FROM t0 NATURAL JOIN t1 WHERE z=t1.x;
|
||||
} {aa bb aa}
|
||||
do_execsql_test 4.3 {
|
||||
DROP TABLE t0;
|
||||
CREATE TABLE t0(a TEXT);
|
||||
INSERT INTO t0 VALUES ('xyz');
|
||||
CREATE INDEX t0x ON t0(a IS FALSE) WHERE false;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(b INT);
|
||||
INSERT INTO t1 VALUES('aaa'),('bbb'),('ccc'),('ddd'),(NULL);
|
||||
CREATE TABLE t2(c REAL);
|
||||
INSERT INTO t2 VALUES(7);
|
||||
ANALYZE;
|
||||
CREATE INDEX t2x ON t2(true IN ());
|
||||
}
|
||||
do_execsql_test 4.4 {
|
||||
SELECT * FROM t0 LEFT JOIN t1 LEFT JOIN t2 ON (b NOTNULL)==(c IN ()) WHERE c;
|
||||
} {xyz {} 7.0}
|
||||
|
||||
|
||||
finish_test
|
||||
|
Reference in New Issue
Block a user