| Index: third_party/sqlite/sqlite-src-3100200/test/select6.test
|
| diff --git a/third_party/sqlite/src/test/select6.test b/third_party/sqlite/sqlite-src-3100200/test/select6.test
|
| similarity index 89%
|
| copy from third_party/sqlite/src/test/select6.test
|
| copy to third_party/sqlite/sqlite-src-3100200/test/select6.test
|
| index 64a8519d890e46712a54bf7ff3bcc90c9a7bfeca..590512a6b0709b8004bf5c9f1994cc063b83bff3 100644
|
| --- a/third_party/sqlite/src/test/select6.test
|
| +++ b/third_party/sqlite/sqlite-src-3100200/test/select6.test
|
| @@ -557,5 +557,61 @@ do_catchsql_test 10.8 {
|
| )
|
| } $err
|
|
|
| +# 2015-02-09 Ticket [2f7170d73bf9abf80339187aa3677dce3dbcd5ca]
|
| +# "misuse of aggregate" error if aggregate column from FROM
|
| +# subquery is used in correlated subquery
|
| +#
|
| +do_execsql_test 11.1 {
|
| + DROP TABLE IF EXISTS t1;
|
| + CREATE TABLE t1(w INT, x INT);
|
| + INSERT INTO t1(w,x)
|
| + VALUES(1,10),(2,20),(3,30),
|
| + (2,21),(3,31),
|
| + (3,32);
|
| + CREATE INDEX t1wx ON t1(w,x);
|
| +
|
| + DROP TABLE IF EXISTS t2;
|
| + CREATE TABLE t2(w INT, y VARCHAR(8));
|
| + INSERT INTO t2(w,y) VALUES(1,'one'),(2,'two'),(3,'three'),(4,'four');
|
| + CREATE INDEX t2wy ON t2(w,y);
|
| +
|
| + SELECT cnt, xyz, (SELECT y FROM t2 WHERE w=cnt), '|'
|
| + FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2)
|
| + ORDER BY cnt, xyz;
|
| +} {1 1 one | 2 2 two | 3 3 three |}
|
| +do_execsql_test 11.2 {
|
| + SELECT cnt, xyz, lower((SELECT y FROM t2 WHERE w=cnt)), '|'
|
| + FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2)
|
| + ORDER BY cnt, xyz;
|
| +} {1 1 one | 2 2 two | 3 3 three |}
|
| +do_execsql_test 11.3 {
|
| + SELECT cnt, xyz, '|'
|
| + FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2)
|
| + WHERE (SELECT y FROM t2 WHERE w=cnt)!='two'
|
| + ORDER BY cnt, xyz;
|
| +} {1 1 | 3 3 |}
|
| +do_execsql_test 11.4 {
|
| + SELECT cnt, xyz, '|'
|
| + FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2)
|
| + ORDER BY lower((SELECT y FROM t2 WHERE w=cnt));
|
| +} {1 1 | 3 3 | 2 2 |}
|
| +do_execsql_test 11.5 {
|
| + SELECT cnt, xyz,
|
| + CASE WHEN (SELECT y FROM t2 WHERE w=cnt)=='two'
|
| + THEN 'aaa' ELSE 'bbb'
|
| + END, '|'
|
| + FROM (SELECT count(*) AS cnt, w AS xyz FROM t1 GROUP BY 2)
|
| + ORDER BY +cnt;
|
| +} {1 1 bbb | 2 2 aaa | 3 3 bbb |}
|
| +
|
| +do_execsql_test 11.100 {
|
| + DROP TABLE t1;
|
| + DROP TABLE t2;
|
| + CREATE TABLE t1(x);
|
| + CREATE TABLE t2(y, z);
|
| + SELECT ( SELECT y FROM t2 WHERE z = cnt )
|
| + FROM ( SELECT count(*) AS cnt FROM t1 );
|
| +} {{}}
|
| +
|
|
|
| finish_test
|
|
|