xref: /sqlite-3.40.0/test/windowD.test (revision 410fac35)
1*410fac35Sdan# 2022 June 2
2*410fac35Sdan#
3*410fac35Sdan# The author disclaims copyright to this source code.  In place of
4*410fac35Sdan# a legal notice, here is a blessing:
5*410fac35Sdan#
6*410fac35Sdan#    May you do good and not evil.
7*410fac35Sdan#    May you find forgiveness for yourself and forgive others.
8*410fac35Sdan#    May you share freely, never taking more than you give.
9*410fac35Sdan#
10*410fac35Sdan#***********************************************************************
11*410fac35Sdan#
12*410fac35Sdan
13*410fac35Sdanset testdir [file dirname $argv0]
14*410fac35Sdansource $testdir/tester.tcl
15*410fac35Sdanset testprefix windowD
16*410fac35Sdan
17*410fac35Sdan
18*410fac35Sdando_execsql_test 1.0 {
19*410fac35Sdan  CREATE TABLE t0(c0 TEXT);
20*410fac35Sdan  CREATE VIEW v0(c0, c1)
21*410fac35Sdan    AS SELECT CUME_DIST() OVER (PARTITION BY t0.c0), TRUE FROM t0;
22*410fac35Sdan  INSERT INTO t0 VALUES ('x');
23*410fac35Sdan}
24*410fac35Sdan
25*410fac35Sdando_execsql_test 1.1 {
26*410fac35Sdan  SELECT ('500') IS (v0.c1) FROM v0;
27*410fac35Sdan} {
28*410fac35Sdan  0
29*410fac35Sdan}
30*410fac35Sdan
31*410fac35Sdando_execsql_test 1.2 {
32*410fac35Sdan  SELECT (('500') IS (v0.c1)) FROM v0, t0;
33*410fac35Sdan} {
34*410fac35Sdan  0
35*410fac35Sdan}
36*410fac35Sdan
37*410fac35Sdando_execsql_test 1.2 {
38*410fac35Sdan  SELECT (('500') IS (v0.c1)) IS FALSE FROM v0;
39*410fac35Sdan} {
40*410fac35Sdan  1
41*410fac35Sdan}
42*410fac35Sdan
43*410fac35Sdando_execsql_test 1.3 {
44*410fac35Sdan  SELECT * FROM v0;
45*410fac35Sdan} {
46*410fac35Sdan  1.0 1
47*410fac35Sdan}
48*410fac35Sdan
49*410fac35Sdando_execsql_test 1.4 {
50*410fac35Sdan  SELECT * FROM v0 WHERE ('500' IS v0.c1) IS FALSE;
51*410fac35Sdan} {
52*410fac35Sdan  1.0 1
53*410fac35Sdan}
54*410fac35Sdan
55*410fac35Sdan#-------------------------------------------------------------------------
56*410fac35Sdan
57*410fac35Sdanreset_db
58*410fac35Sdando_execsql_test 2.0 {
59*410fac35Sdan  CREATE TABLE t1(x);
60*410fac35Sdan  INSERT INTO t1 VALUES('value');
61*410fac35Sdan  CREATE VIEW v1(a, b, c, d) AS SELECT 1, 2, TRUE, FALSE FROM t1;
62*410fac35Sdan}
63*410fac35Sdan
64*410fac35Sdando_execsql_test 2.1 {
65*410fac35Sdan  SELECT 500 IS a, 500 IS b, 500 IS c, 500 IS d FROM v1
66*410fac35Sdan} {0 0 0 0}
67*410fac35Sdan
68*410fac35Sdando_execsql_test 2.2 {
69*410fac35Sdan  SELECT * FROM v1 WHERE 500 IS c;
70*410fac35Sdan} {}
71*410fac35Sdan
72*410fac35Sdando_execsql_test 2.3 {
73*410fac35Sdan  SELECT * FROM v1 WHERE 500 IS d;
74*410fac35Sdan} {}
75*410fac35Sdan
76*410fac35Sdando_execsql_test 2.4 {
77*410fac35Sdan  CREATE VIEW v2 AS SELECT max(x) OVER () AS a, TRUE AS c FROM t1;
78*410fac35Sdan}
79*410fac35Sdan
80*410fac35Sdando_execsql_test 2.5 {
81*410fac35Sdan  SELECT 500 IS c FROM v2;
82*410fac35Sdan} 0
83*410fac35Sdan
84*410fac35Sdando_execsql_test 2.6 {
85*410fac35Sdan  SELECT * FROM v2 WHERE 500 IS c;
86*410fac35Sdan} {}
87*410fac35Sdan
88*410fac35Sdan
89*410fac35Sdan
90*410fac35Sdan
91*410fac35Sdan
92*410fac35Sdan
93*410fac35Sdanfinish_test
94*410fac35Sdan
95