| Index: third_party/sqlite/src/test/skipscan1.test
 | 
| diff --git a/third_party/sqlite/src/test/skipscan1.test b/third_party/sqlite/src/test/skipscan1.test
 | 
| index ac26711603bb1c1b515a2d6e757e40860967186c..6cdeed5439400beded3c7e9f79d32d91a3ca1354 100644
 | 
| --- a/third_party/sqlite/src/test/skipscan1.test
 | 
| +++ b/third_party/sqlite/src/test/skipscan1.test
 | 
| @@ -43,23 +43,23 @@ do_execsql_test skipscan1-1.2 {
 | 
|  } {abc 345 7 8 | def 345 9 10 |}
 | 
|  do_execsql_test skipscan1-1.2eqp {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a;
 | 
|  } {/* USING INDEX t1abc (ANY(a) AND b=?)*/}
 | 
|  do_execsql_test skipscan1-1.2sort {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a;
 | 
|  } {~/*ORDER BY*/}
 | 
|  
 | 
|  do_execsql_test skipscan1-1.3 {
 | 
| -  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a DESC;
 | 
| +  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 | 
|  } {def 345 9 10 | abc 345 7 8 |}
 | 
|  do_execsql_test skipscan1-1.3eqp {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 | 
|  } {/* USING INDEX t1abc (ANY(a) AND b=?)*/}
 | 
|  do_execsql_test skipscan1-1.3sort {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t1 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t1 WHERE d<>99 AND b=345 ORDER BY a DESC;
 | 
|  } {~/*ORDER BY*/}
 | 
|  
 | 
|  do_execsql_test skipscan1-1.4 {
 | 
| @@ -150,15 +150,15 @@ do_execsql_test skipscan1-2.1 {
 | 
|  } {}
 | 
|  
 | 
|  do_execsql_test skipscan1-2.2 {
 | 
| -  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 | 
|  } {abc 345 7 8 | def 345 9 10 |}
 | 
|  do_execsql_test skipscan1-2.2eqp {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 | 
|  } {/* USING INDEX sqlite_autoindex_t2_1 (ANY(a) AND b=?)*/}
 | 
|  do_execsql_test skipscan1-2.2sort {
 | 
|    EXPLAIN QUERY PLAN
 | 
| -  SELECT a,b,c,d,'|' FROM t2 WHERE b=345 ORDER BY a;
 | 
| +  SELECT a,b,c,d,'|' FROM t2 WHERE d<>99 AND b=345 ORDER BY a;
 | 
|  } {~/*ORDER BY*/}
 | 
|  
 | 
|  
 | 
| @@ -322,4 +322,19 @@ do_execsql_test skipscan1-8.2 {
 | 
|    ORDER BY +x;
 | 
|  } {1 AB 2 CD}
 | 
|  
 | 
| +# Segfault reported on the mailing list by Keith Medcalf on 2016-09-18.
 | 
| +# A skip-scan with a "column IN (SELECT ...)" on the second term of the
 | 
| +# index.
 | 
| +#
 | 
| +do_execsql_test skipscan1-9.2 {
 | 
| +  CREATE TABLE t9a(a,b,c);
 | 
| +  CREATE INDEX t9a_ab ON t9a(a,b);
 | 
| +  CREATE TABLE t9b(x,y);
 | 
| +  ANALYZE sqlite_master;
 | 
| +  INSERT INTO sqlite_stat1 VALUES('t9a','t9a_ab','1000000 250000 1');
 | 
| +  ANALYZE sqlite_master;
 | 
| +  EXPLAIN QUERY PLAN
 | 
| +  SELECT * FROM t9a WHERE b IN (SELECT x FROM t9b WHERE y!=5);
 | 
| +} {/USING INDEX t9a_ab .ANY.a. AND b=./}
 | 
| +
 | 
|  finish_test
 | 
| 
 |