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:
@ -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
|
||||
|
Reference in New Issue
Block a user