aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/altertab.test31
-rw-r--r--test/window1.test7
-rw-r--r--test/window8.tcl54
-rw-r--r--test/window8.test55
4 files changed, 147 insertions, 0 deletions
diff --git a/test/altertab.test b/test/altertab.test
index d8dd98741..576d391ce 100644
--- a/test/altertab.test
+++ b/test/altertab.test
@@ -768,4 +768,35 @@ do_execsql_test 26.1 {
SELECT * FROM t1x;
} {2 1}
+#-------------------------------------------------------------------------
+reset_db
+
+do_execsql_test 27.1 {
+
+ create table t_sa (
+ c_muyat INTEGER NOT NULL,
+ c_d4u TEXT
+ );
+
+ create table t2 ( abc );
+
+ CREATE TRIGGER trig AFTER DELETE ON t_sa
+ BEGIN
+ DELETE FROM t_sa WHERE (
+ SELECT 123 FROM t2
+ WINDOW oamat7fzf AS ( PARTITION BY t_sa.c_d4u )
+ );
+ END;
+}
+
+
+breakpoint
+do_execsql_test 27.2 {
+ alter table t_sa rename column c_muyat to c_dg;
+}
+
+
+
+
+
finish_test
diff --git a/test/window1.test b/test/window1.test
index ccf798caa..a75489a38 100644
--- a/test/window1.test
+++ b/test/window1.test
@@ -2090,6 +2090,13 @@ do_catchsql_test 67.1 {
SELECT nth_value(a,2) OVER w1
WINDOW w1 AS ( ORDER BY ((SELECT 1 FROM v1)) )
)
+} {1 {no such table: v1}}
+
+do_catchsql_test 67.2 {
+ SELECT a,c,b FROM t1 INTERSECT SELECT a,b,c FROM t1 ORDER BY (
+ SELECT nth_value(a,2) OVER w1
+ WINDOW w1 AS ( ORDER BY ((SELECT 1 FROM t2)) )
+ )
} {1 {1st ORDER BY term does not match any column in the result set}}
# 2021-05-07
diff --git a/test/window8.tcl b/test/window8.tcl
index a8333f190..d07777d74 100644
--- a/test/window8.tcl
+++ b/test/window8.tcl
@@ -418,6 +418,60 @@ execsql_test 7.$tn.9 "
"
}
+==========
+
+execsql_test 8.0 {
+ DROP TABLE IF EXISTS tx;
+ CREATE TABLE tx(a INTEGER PRIMARY KEY);
+ INSERT INTO tx VALUES(1), (2), (3), (4), (5), (6);
+
+ DROP TABLE IF EXISTS map;
+ CREATE TABLE map(v INTEGER PRIMARY KEY, t TEXT);
+ INSERT INTO map VALUES
+ (1, 'odd'), (2, 'even'), (3, 'odd'),
+ (4, 'even'), (5, 'odd'), (6, 'even');
+}
+
+execsql_test 8.1 {
+ SELECT sum(a) OVER (
+ PARTITION BY (
+ SELECT t FROM map WHERE v=a
+ ) ORDER BY a
+ ) FROM tx;
+}
+
+execsql_test 8.2 {
+ SELECT sum(a) OVER win FROM tx
+ WINDOW win AS (
+ PARTITION BY (
+ SELECT t FROM map WHERE v=a
+ ) ORDER BY a
+ );
+}
+
+execsql_test 8.3 {
+ WITH map2 AS (
+ SELECT * FROM map
+ )
+ SELECT sum(a) OVER (
+ PARTITION BY (
+ SELECT t FROM map2 WHERE v=a
+ ) ORDER BY a
+ ) FROM tx;
+}
+
+execsql_test 8.4 {
+ WITH map2 AS (
+ SELECT * FROM map
+ )
+ SELECT sum(a) OVER win FROM tx
+ WINDOW win AS (
+ PARTITION BY (
+ SELECT t FROM map2 WHERE v=a
+ ) ORDER BY a
+ );
+}
+
finish_test
diff --git a/test/window8.test b/test/window8.test
index ed720ebd4..167cba8e6 100644
--- a/test/window8.test
+++ b/test/window8.test
@@ -6469,4 +6469,59 @@ do_execsql_test 7.4.9 {
);
} {4 4 4 {} {} {}}
+#==========================================================================
+
+do_execsql_test 8.0 {
+ DROP TABLE IF EXISTS tx;
+ CREATE TABLE tx(a INTEGER PRIMARY KEY);
+ INSERT INTO tx VALUES(1), (2), (3), (4), (5), (6);
+
+ DROP TABLE IF EXISTS map;
+ CREATE TABLE map(v INTEGER PRIMARY KEY, t TEXT);
+ INSERT INTO map VALUES
+ (1, 'odd'), (2, 'even'), (3, 'odd'),
+ (4, 'even'), (5, 'odd'), (6, 'even');
+} {}
+
+do_execsql_test 8.1 {
+ SELECT sum(a) OVER (
+ PARTITION BY (
+ SELECT t FROM map WHERE v=a
+ ) ORDER BY a
+ ) FROM tx;
+} {2 6 12 1 4 9}
+
+do_execsql_test 8.2 {
+ SELECT sum(a) OVER win FROM tx
+ WINDOW win AS (
+ PARTITION BY (
+ SELECT t FROM map WHERE v=a
+ ) ORDER BY a
+ );
+} {2 6 12 1 4 9}
+
+do_execsql_test 8.3 {
+ WITH map2 AS (
+ SELECT * FROM map
+ )
+ SELECT sum(a) OVER (
+ PARTITION BY (
+ SELECT t FROM map2 WHERE v=a
+ ) ORDER BY a
+ ) FROM tx;
+} {2 6 12 1 4 9}
+
+breakpoint
+do_execsql_test 8.4 {
+ WITH map2 AS (
+ SELECT * FROM map
+ )
+ SELECT sum(a) OVER win FROM tx
+ WINDOW win AS (
+ PARTITION BY (
+ SELECT t FROM map2 WHERE v=a
+ ) ORDER BY a
+ );
+} {2 6 12 1 4 9}
+
finish_test