Index: src/expr.c ================================================================== --- src/expr.c +++ src/expr.c @@ -4944,10 +4944,11 @@ return 1; } if( pE2->op==TK_NOTNULL && pE1->op!=TK_ISNULL && pE1->op!=TK_IS + && pE1->op!=TK_ISNOT && pE1->op!=TK_OR ){ Expr *pX = sqlite3ExprSkipCollate(pE1->pLeft); testcase( pX!=pE1->pLeft ); if( sqlite3ExprCompare(pParse, pX, pE2->pLeft, iTab)==0 ) return 1; Index: test/index6.test ================================================================== --- test/index6.test +++ test/index6.test @@ -420,7 +420,18 @@ CREATE TABLE t0(c0); CREATE INDEX index_0 ON t0(c0) WHERE c0 NOT NULL; INSERT INTO t0(c0) VALUES (NULL); SELECT * FROM t0 WHERE c0 OR 1; } {{}} + +# 2019-05-11 +# Ticket https://sqlite.org/src/tktview/8025674847 +reset_db +do_execsql_test index6-14.1 { + CREATE TABLE IF NOT EXISTS t0 (c0, c1); + CREATE INDEX IF NOT EXISTS i0 ON t0(c0, c1) WHERE c0 NOT NULL; + INSERT INTO t0(c0, c1) VALUES(NULL, 'row'); + SELECT * FROM t0 WHERE t0.c0 IS NOT 1; +} {{} row} finish_test +