1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-01 06:27:03 +03:00

Fix a problem involving window function aliases being referenced from sub-selects.

FossilOrigin-Name: e3b5fc05c00fc58be7a7c94ce1d97a5b05113f39aba03df64aab08364f85616b
This commit is contained in:
dan
2019-12-27 19:46:07 +00:00
parent 6473ba95a0
commit e3735bf466
4 changed files with 59 additions and 10 deletions

View File

@ -1444,4 +1444,51 @@ do_execsql_test 42.7 {
SELECT sum(b), sum( sum(b) ) OVER (ORDER BY a) FROM t2;
} {21 21}
#-------------------------------------------------------------------------
reset_db
do_execsql_test 43.1.1 {
CREATE TABLE t1(x INTEGER PRIMARY KEY);
INSERT INTO t1 VALUES (10);
}
do_catchsql_test 43.1.2 {
SELECT count() OVER() AS m FROM t1 ORDER BY (SELECT m);
} {1 {misuse of aliased window function m}}
reset_db
do_execsql_test 43.2.1 {
CREATE TABLE t1(a INTEGER PRIMARY KEY, b INTEGER);
INSERT INTO t1(a, b) VALUES(1, 10); -- 10
INSERT INTO t1(a, b) VALUES(2, 15); -- 25
INSERT INTO t1(a, b) VALUES(3, -5); -- 20
INSERT INTO t1(a, b) VALUES(4, -5); -- 15
INSERT INTO t1(a, b) VALUES(5, 20); -- 35
INSERT INTO t1(a, b) VALUES(6, -11); -- 24
}
do_execsql_test 43.2.2 {
SELECT a, sum(b) OVER (ORDER BY a) AS abc FROM t1 ORDER BY 2
} {
1 10 4 15 3 20 6 24 2 25 5 35
}
do_execsql_test 43.2.3 {
SELECT a, sum(b) OVER (ORDER BY a) AS abc FROM t1 ORDER BY abc
} {
1 10 4 15 3 20 6 24 2 25 5 35
}
do_execsql_test 43.2.4 {
SELECT a, sum(b) OVER (ORDER BY a) AS abc FROM t1 ORDER BY abc+5
} {
1 10 4 15 3 20 6 24 2 25 5 35
}
do_catchsql_test 43.2.5 {
SELECT a, sum(b) OVER (ORDER BY a) AS abc FROM t1 ORDER BY (SELECT abc)
} {1 {misuse of aliased window function abc}}
do_catchsql_test 43.2.6 {
SELECT a, 1+sum(b) OVER (ORDER BY a) AS abc FROM t1 ORDER BY (SELECT abc)
} {1 {misuse of aliased window function abc}}
finish_test