| Index: third_party/sqlite/src/test/select6.test
|
| diff --git a/third_party/sqlite/src/test/select6.test b/third_party/sqlite/src/test/select6.test
|
| index e0ff165c550e7b3fcb80eaeaddb8116b290970f1..64a8519d890e46712a54bf7ff3bcc90c9a7bfeca 100644
|
| --- a/third_party/sqlite/src/test/select6.test
|
| +++ b/third_party/sqlite/src/test/select6.test
|
| @@ -22,6 +22,7 @@ ifcapable !subquery {
|
| finish_test
|
| return
|
| }
|
| +set ::testprefix select6
|
|
|
| do_test select6-1.0 {
|
| execsql {
|
| @@ -513,5 +514,48 @@ do_test select6-9.11 {
|
| } {2 12 3 13 4 14}
|
|
|
|
|
| +#-------------------------------------------------------------------------
|
| +# Test that if a UNION ALL sub-query that would otherwise be eligible for
|
| +# flattening consists of two or more SELECT statements that do not all
|
| +# return the same number of result columns, the error is detected.
|
| +#
|
| +do_execsql_test 10.1 {
|
| + CREATE TABLE t(i,j,k);
|
| + CREATE TABLE j(l,m);
|
| + CREATE TABLE k(o);
|
| +}
|
| +
|
| +set err [list 1 {SELECTs to the left and right of UNION ALL do not have the same number of result columns}]
|
| +
|
| +do_execsql_test 10.2 {
|
| + SELECT * FROM (SELECT * FROM t), j;
|
| +}
|
| +do_catchsql_test 10.3 {
|
| + SELECT * FROM t UNION ALL SELECT * FROM j
|
| +} $err
|
| +do_catchsql_test 10.4 {
|
| + SELECT * FROM (SELECT i FROM t UNION ALL SELECT l, m FROM j)
|
| +} $err
|
| +do_catchsql_test 10.5 {
|
| + SELECT * FROM (SELECT j FROM t UNION ALL SELECT * FROM j)
|
| +} $err
|
| +do_catchsql_test 10.6 {
|
| + SELECT * FROM (SELECT * FROM t UNION ALL SELECT * FROM j)
|
| +} $err
|
| +do_catchsql_test 10.7 {
|
| + SELECT * FROM (
|
| + SELECT * FROM t UNION ALL
|
| + SELECT l,m,l FROM j UNION ALL
|
| + SELECT * FROM k
|
| + )
|
| +} $err
|
| +do_catchsql_test 10.8 {
|
| + SELECT * FROM (
|
| + SELECT * FROM k UNION ALL
|
| + SELECT * FROM t UNION ALL
|
| + SELECT l,m,l FROM j
|
| + )
|
| +} $err
|
| +
|
|
|
| finish_test
|
|
|