| 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
|
|
|