1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Use NOT NULL partial indexes when the query is constrained by a single

LIKE or GLOB.

FossilOrigin-Name: 9b3a3b41b59a7ce7d3dd82c7402d6fdc6a5ca43c
This commit is contained in:
drh
2016-11-02 02:17:52 +00:00
parent d7265378fd
commit 1ad93a003d
3 changed files with 12 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
C Add\sthe\sSQLITE_DBCONFIG_NO_CKPT_ON_CLOSE\ssqlite3_dbconfig()\soption\s-\sfor\ndisabling\sSQLite's\sdefault\scheckpoint-on-close\sbehaviour.
D 2016-10-31T16:49:18.127
C Use\sNOT\sNULL\spartial\sindexes\swhen\sthe\squery\sis\sconstrained\sby\sa\ssingle\nLIKE\sor\sGLOB.
D 2016-11-02T02:17:52.919
F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc 5151cc64c4c05f3455f4f692ad11410a810d937f
@@ -340,7 +340,7 @@ F src/ctime.c a2a52d6e353f459d8ab0f07321f60fafa47d5421
F src/date.c 95c9a8d00767e7221a8e9a31f4e913fc8029bf6b
F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
F src/delete.c cb3f6300df24c26c609778b2731f82644b5532ec
F src/expr.c aac0b8d39373ce8f1d47829ce12c3d7af90c46a6
F src/expr.c ce7110980fac6dfdfbe1e393443bdb79bad29339
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c b9ca262f6ad4d030a3cab737ebf9b0b3c8b4ac80
F src/func.c 29cc9acb170ec1387b9f63eb52cd85f8de96c771
@@ -1529,8 +1529,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 6374978e8f1ac091394a9f5a1896be92af658bcd 093d2fc2288b75c15ccf877bfa0e622d3918a562
R f901fbda939dcfa6ff6d756b39418ee6
T +closed 093d2fc2288b75c15ccf877bfa0e622d3918a562
U dan
Z 5d42ae70ac4da1275b3f1c98c68ab01c
P 6d142025c74f66f2d48155354b556cd5b2682cb2
R 6a21c44879153ad3b8a90965de65b693
U drh
Z 3251c60dbcdf547bbc5e5373f62e3557

View File

@@ -1 +1 @@
6d142025c74f66f2d48155354b556cd5b2682cb2
9b3a3b41b59a7ce7d3dd82c7402d6fdc6a5ca43c

View File

@@ -4600,11 +4600,10 @@ int sqlite3ExprImpliesExpr(Expr *pE1, Expr *pE2, int iTab){
){
return 1;
}
if( pE2->op==TK_NOTNULL
&& sqlite3ExprCompare(pE1->pLeft, pE2->pLeft, iTab)==0
&& (pE1->op!=TK_ISNULL && pE1->op!=TK_IS)
){
return 1;
if( pE2->op==TK_NOTNULL && pE1->op!=TK_ISNULL && pE1->op!=TK_IS ){
Expr *pX = sqlite3ExprSkipCollate(pE1->pLeft);
testcase( pX!=pE1->pLeft );
if( sqlite3ExprCompare(pX, pE2->pLeft, iTab)==0 ) return 1;
}
return 0;
}