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