| Index: third_party/sqlite/src/test/select9.test | 
| diff --git a/third_party/sqlite/src/test/select9.test b/third_party/sqlite/src/test/select9.test | 
| index 085dee0bd1e2991c5fb53feaf8be7d4a3885ccc6..4c42236dc873e30bd9e504bb4fb17d4447f49874 100644 | 
| --- a/third_party/sqlite/src/test/select9.test | 
| +++ b/third_party/sqlite/src/test/select9.test | 
| @@ -415,5 +415,58 @@ do_test select9-4.X { | 
| } | 
| } {} | 
|  | 
| +# Testing to make sure that queries involving a view of a compound select | 
| +# are planned efficiently.  This detects a problem reported on the mailing | 
| +# list on 2012-04-26.  See | 
| +# | 
| +#  http://www.mail-archive.com/sqlite-users%40sqlite.org/msg69746.html | 
| +# | 
| +# For additional information. | 
| +# | 
| +do_test select9-5.1 { | 
| +  db eval { | 
| +    CREATE TABLE t51(x, y); | 
| +    CREATE TABLE t52(x, y); | 
| +    CREATE VIEW v5 as | 
| +       SELECT x, y FROM t51 | 
| +       UNION ALL | 
| +       SELECT x, y FROM t52; | 
| +    CREATE INDEX t51x ON t51(x); | 
| +    CREATE INDEX t52x ON t52(x); | 
| +    EXPLAIN QUERY PLAN | 
| +       SELECT * FROM v5 WHERE x='12345' ORDER BY y; | 
| +  } | 
| +} {~/SCAN TABLE/}  ;# Uses indices with "*" | 
| +do_test select9-5.2 { | 
| +  db eval { | 
| +    EXPLAIN QUERY PLAN | 
| +       SELECT x, y FROM v5 WHERE x='12345' ORDER BY y; | 
| +  } | 
| +} {~/SCAN TABLE/}  ;# Uses indices with "x, y" | 
| +do_test select9-5.3 { | 
| +  db eval { | 
| +    EXPLAIN QUERY PLAN | 
| +       SELECT x, y FROM v5 WHERE +x='12345' ORDER BY y; | 
| +  } | 
| +} {/SCAN TABLE/}   ;# Full table scan if the "+x" prevents index usage. | 
| + | 
| +# 2013-07-09:  Ticket [490a4b7235624298]: | 
| +# "WHERE 0" on the first element of a UNION causes an assertion fault | 
| +# | 
| +do_execsql_test select9-6.1 { | 
| +  CREATE TABLE t61(a); | 
| +  CREATE TABLE t62(b); | 
| +  INSERT INTO t61 VALUES(111); | 
| +  INSERT INTO t62 VALUES(222); | 
| +  SELECT a FROM t61 WHERE 0 UNION SELECT b FROM t62; | 
| +} {222} | 
| +do_execsql_test select9-6.2 { | 
| +  SELECT a FROM t61 WHERE 0 UNION ALL SELECT b FROM t62; | 
| +} {222} | 
| +do_execsql_test select9-6.3 { | 
| +  SELECT a FROM t61 UNION SELECT b FROM t62 WHERE 0; | 
| +} {111} | 
| + | 
| + | 
|  | 
| finish_test | 
|  |