Index: third_party/sqlite/src/test/index6.test |
diff --git a/third_party/sqlite/src/test/index6.test b/third_party/sqlite/src/test/index6.test |
index 33ae3d1cb11f7f5a945716b7a197490edfa0f130..f6177b44e9571ad959fbe52c26fd6db13db2451b 100644 |
--- a/third_party/sqlite/src/test/index6.test |
+++ b/third_party/sqlite/src/test/index6.test |
@@ -65,12 +65,15 @@ do_test index6-1.5 { |
catchsql { |
CREATE INDEX bad1 ON t1(a,b) WHERE a!=random(); |
} |
-} {1 {functions prohibited in partial index WHERE clauses}} |
+} {1 {non-deterministic functions prohibited in partial index WHERE clauses}} |
do_test index6-1.6 { |
catchsql { |
CREATE INDEX bad1 ON t1(a,b) WHERE a NOT LIKE 'abc%'; |
} |
-} {1 {functions prohibited in partial index WHERE clauses}} |
+} {0 {}} |
+do_execsql_test index6-1.7 { |
+ DROP INDEX IF EXISTS bad1; |
+} |
do_test index6-1.10 { |
execsql { |
@@ -376,4 +379,15 @@ do_execsql_test index6-10.3eqp { |
SELECT e FROM t10 WHERE a=1 AND b=2 ORDER BY d DESC; |
} {~/USING INDEX t10x/} |
+# A partial index will be used for a full table scan, where possible |
+do_execsql_test index6-11.1 { |
+ CREATE TABLE t11(a,b,c); |
+ CREATE INDEX t11x ON t11(a) WHERE b<>99; |
+ EXPLAIN QUERY PLAN SELECT a FROM t11 WHERE b<>99; |
+} {/USING INDEX t11x/} |
+do_execsql_test index6-11.2 { |
+ EXPLAIN QUERY PLAN SELECT a FROM t11 WHERE b<>99 AND c<>98; |
+} {/USING INDEX t11x/} |
+ |
+ |
finish_test |