| Index: third_party/sqlite/src/test/limit.test | 
| diff --git a/third_party/sqlite/src/test/limit.test b/third_party/sqlite/src/test/limit.test | 
| index e5aac70da43504e35c7ff4517a65818a2239fdc3..5d6ef336b26848dbd2ac4fde3930a7c6be19ae66 100644 | 
| --- a/third_party/sqlite/src/test/limit.test | 
| +++ b/third_party/sqlite/src/test/limit.test | 
| @@ -468,5 +468,172 @@ do_test limit-12.4 { | 
| } | 
| } {1 {no such column: x}} | 
|  | 
| +# Ticket [db4d96798da8b] | 
| +# LIMIT does not work with nested views containing UNION ALL | 
| +# | 
| +do_test limit-13.1 { | 
| +  db eval { | 
| +    CREATE TABLE t13(x); | 
| +    INSERT INTO t13 VALUES(1),(2); | 
| +    CREATE VIEW v13a AS SELECT x AS y FROM t13; | 
| +    CREATE VIEW v13b AS SELECT y AS z FROM v13a UNION ALL SELECT y+10 FROM v13a; | 
| +    CREATE VIEW v13c AS SELECT z FROM v13b UNION ALL SELECT z+20 FROM v13b; | 
| +  } | 
| +} {} | 
| +do_test limit-13.2 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1} | 
| +} {1} | 
| +do_test limit-13.3 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2} | 
| +} {1 2} | 
| +do_test limit-13.4 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3} | 
| +} {1 2 11} | 
| +do_test limit-13.5 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4} | 
| +} {1 2 11 12} | 
| +do_test limit-13.6 { | 
| +  db eval {SELECT z FROM v13c LIMIT 5} | 
| +} {1 2 11 12 21} | 
| +do_test limit-13.7 { | 
| +  db eval {SELECT z FROM v13c LIMIT 6} | 
| +} {1 2 11 12 21 22} | 
| +do_test limit-13.8 { | 
| +  db eval {SELECT z FROM v13c LIMIT 7} | 
| +} {1 2 11 12 21 22 31} | 
| +do_test limit-13.9 { | 
| +  db eval {SELECT z FROM v13c LIMIT 8} | 
| +} {1 2 11 12 21 22 31 32} | 
| +do_test limit-13.10 { | 
| +  db eval {SELECT z FROM v13c LIMIT 9} | 
| +} {1 2 11 12 21 22 31 32} | 
| +do_test limit-13.11 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 1} | 
| +} {2} | 
| +do_test limit-13.12 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 1} | 
| +} {2 11} | 
| +do_test limit-13.13 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 1} | 
| +} {2 11 12} | 
| +do_test limit-13.14 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4 OFFSET 1} | 
| +} {2 11 12 21} | 
| +do_test limit-13.15 { | 
| +  db eval {SELECT z FROM v13c LIMIT 5 OFFSET 1} | 
| +} {2 11 12 21 22} | 
| +do_test limit-13.16 { | 
| +  db eval {SELECT z FROM v13c LIMIT 6 OFFSET 1} | 
| +} {2 11 12 21 22 31} | 
| +do_test limit-13.17 { | 
| +  db eval {SELECT z FROM v13c LIMIT 7 OFFSET 1} | 
| +} {2 11 12 21 22 31 32} | 
| +do_test limit-13.18 { | 
| +  db eval {SELECT z FROM v13c LIMIT 8 OFFSET 1} | 
| +} {2 11 12 21 22 31 32} | 
| +do_test limit-13.21 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 2} | 
| +} {11} | 
| +do_test limit-13.22 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 2} | 
| +} {11 12} | 
| +do_test limit-13.23 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 2} | 
| +} {11 12 21} | 
| +do_test limit-13.24 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4 OFFSET 2} | 
| +} {11 12 21 22} | 
| +do_test limit-13.25 { | 
| +  db eval {SELECT z FROM v13c LIMIT 5 OFFSET 2} | 
| +} {11 12 21 22 31} | 
| +do_test limit-13.26 { | 
| +  db eval {SELECT z FROM v13c LIMIT 6 OFFSET 2} | 
| +} {11 12 21 22 31 32} | 
| +do_test limit-13.27 { | 
| +  db eval {SELECT z FROM v13c LIMIT 7 OFFSET 2} | 
| +} {11 12 21 22 31 32} | 
| +do_test limit-13.31 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 3} | 
| +} {12} | 
| +do_test limit-13.32 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 3} | 
| +} {12 21} | 
| +do_test limit-13.33 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 3} | 
| +} {12 21 22} | 
| +do_test limit-13.34 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4 OFFSET 3} | 
| +} {12 21 22 31} | 
| +do_test limit-13.35 { | 
| +  db eval {SELECT z FROM v13c LIMIT 5 OFFSET 3} | 
| +} {12 21 22 31 32} | 
| +do_test limit-13.36 { | 
| +  db eval {SELECT z FROM v13c LIMIT 6 OFFSET 3} | 
| +} {12 21 22 31 32} | 
| +do_test limit-13.41 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 4} | 
| +} {21} | 
| +do_test limit-13.42 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 4} | 
| +} {21 22} | 
| +do_test limit-13.43 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 4} | 
| +} {21 22 31} | 
| +do_test limit-13.44 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4 OFFSET 4} | 
| +} {21 22 31 32} | 
| +do_test limit-13.45 { | 
| +  db eval {SELECT z FROM v13c LIMIT 5 OFFSET 4} | 
| +} {21 22 31 32} | 
| +do_test limit-13.51 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 5} | 
| +} {22} | 
| +do_test limit-13.52 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 5} | 
| +} {22 31} | 
| +do_test limit-13.53 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 5} | 
| +} {22 31 32} | 
| +do_test limit-13.54 { | 
| +  db eval {SELECT z FROM v13c LIMIT 4 OFFSET 5} | 
| +} {22 31 32} | 
| +do_test limit-13.61 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 6} | 
| +} {31} | 
| +do_test limit-13.62 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 6} | 
| +} {31 32} | 
| +do_test limit-13.63 { | 
| +  db eval {SELECT z FROM v13c LIMIT 3 OFFSET 6} | 
| +} {31 32} | 
| +do_test limit-13.71 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 7} | 
| +} {32} | 
| +do_test limit-13.72 { | 
| +  db eval {SELECT z FROM v13c LIMIT 2 OFFSET 7} | 
| +} {32} | 
| +do_test limit-13.81 { | 
| +  db eval {SELECT z FROM v13c LIMIT 1 OFFSET 8} | 
| +} {} | 
| + | 
| +do_execsql_test limit-14.1 { | 
| +  SELECT 123 LIMIT 1 OFFSET 0 | 
| +} {123} | 
| +do_execsql_test limit-14.2 { | 
| +  SELECT 123 LIMIT 1 OFFSET 1 | 
| +} {} | 
| +do_execsql_test limit-14.3 { | 
| +  SELECT 123 LIMIT 0 OFFSET 0 | 
| +} {} | 
| +do_execsql_test limit-14.4 { | 
| +  SELECT 123 LIMIT 0 OFFSET 1 | 
| +} {} | 
| +do_execsql_test limit-14.6 { | 
| +  SELECT 123 LIMIT -1 OFFSET 0 | 
| +} {123} | 
| +do_execsql_test limit-14.7 { | 
| +  SELECT 123 LIMIT -1 OFFSET 1 | 
| +} {} | 
| + | 
|  | 
| finish_test | 
|  |