mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Fix problems with using window functions in CREATE VIEW statements.
FossilOrigin-Name: 943bccd2a6bd4cf3e0534c1fa46885bfa2ba7b780ddcdff9f1ea4cbb3f04e786
This commit is contained in:
@ -269,6 +269,7 @@ do_execsql_test 7.3 {
|
||||
SELECT row_number() OVER (ORDER BY x) FROM t1
|
||||
} {1 2 3 4 5}
|
||||
|
||||
breakpoint
|
||||
do_execsql_test 7.4 {
|
||||
SELECT
|
||||
row_number() OVER win,
|
||||
@ -277,5 +278,46 @@ do_execsql_test 7.4 {
|
||||
WINDOW win AS (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
|
||||
} {1 3 2 5 3 7 4 9 5 {}}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Attempt to use a window function in a view.
|
||||
#
|
||||
do_execsql_test 8.0 {
|
||||
CREATE TABLE t3(a, b, c);
|
||||
|
||||
WITH s(i) AS ( VALUES(1) UNION ALL SELECT i+1 FROM s WHERE i<6 )
|
||||
INSERT INTO t3 SELECT i, i, i FROM s;
|
||||
|
||||
CREATE VIEW v1 AS SELECT
|
||||
sum(b) OVER (ORDER BY c),
|
||||
min(b) OVER (ORDER BY c),
|
||||
max(b) OVER (ORDER BY c)
|
||||
FROM t3;
|
||||
|
||||
CREATE VIEW v2 AS SELECT
|
||||
sum(b) OVER win,
|
||||
min(b) OVER win,
|
||||
max(b) OVER win
|
||||
FROM t3
|
||||
WINDOW win AS (ORDER BY c);
|
||||
}
|
||||
|
||||
do_execsql_test 8.1.1 {
|
||||
SELECT * FROM v1
|
||||
} {1 1 1 3 1 2 6 1 3 10 1 4 15 1 5 21 1 6}
|
||||
do_execsql_test 8.1.2 {
|
||||
SELECT * FROM v2
|
||||
} {1 1 1 3 1 2 6 1 3 10 1 4 15 1 5 21 1 6}
|
||||
|
||||
db close
|
||||
sqlite3 db test.db
|
||||
do_execsql_test 8.2.1 {
|
||||
SELECT * FROM v1
|
||||
} {1 1 1 3 1 2 6 1 3 10 1 4 15 1 5 21 1 6}
|
||||
do_execsql_test 8.2.2 {
|
||||
SELECT * FROM v2
|
||||
} {1 1 1 3 1 2 6 1 3 10 1 4 15 1 5 21 1 6}
|
||||
|
||||
|
||||
|
||||
finish_test
|
||||
|
||||
|
Reference in New Issue
Block a user