Fix a bug in the lead() and lag() window functions causing them to fail when

used in queries featuring multiple window functions.

FossilOrigin-Name: 3839fb18f917e4f705821198d624b19d84eb07f1ee29ad23314ab7cec6bf6a2b
This commit is contained in:
dan
2018-06-15 16:10:44 +00:00
parent 303451a8f7
commit e0a5e20fa8
6 changed files with 109 additions and 13 deletions
+43
View File
@@ -1123,4 +1123,47 @@ do_execsql_test 4.5.73.2 {
FROM ttt ORDER BY a
} {1 1 2 2 3 3 3 3 5 5 7 7 6 6 9 9 12 12}
#==========================================================================
do_execsql_test 7.0 {
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(x INTEGER, y INTEGER);
INSERT INTO t1 VALUES(1, 2);
INSERT INTO t1 VALUES(3, 4);
INSERT INTO t1 VALUES(5, 6);
INSERT INTO t1 VALUES(7, 8);
INSERT INTO t1 VALUES(9, 10);
} {}
do_execsql_test 7.1 {
SELECT lead(y) OVER win FROM t1
WINDOW win AS (ORDER BY x)
} {4 6 8 10 {}}
do_execsql_test 7.2 {
SELECT lead(y, 2) OVER win FROM t1
WINDOW win AS (ORDER BY x)
} {6 8 10 {} {}}
do_execsql_test 7.3 {
SELECT lead(y, 3, -1) OVER win FROM t1
WINDOW win AS (ORDER BY x)
} {8 10 -1 -1 -1}
do_execsql_test 7.4 {
SELECT
lead(y) OVER win, lead(y) OVER win
FROM t1
WINDOW win AS (ORDER BY x)
} {4 4 6 6 8 8 10 10 {} {}}
do_execsql_test 7.5 {
SELECT
lead(y) OVER win,
lead(y, 2) OVER win,
lead(y, 3, -1) OVER win
FROM t1
WINDOW win AS (ORDER BY x)
} {4 6 8 6 8 10 8 10 -1 10 {} -1 {} {} -1}
finish_test