blob: f20bcdaaa844b14f9271444194821ce9b28b6740 [file] [log] [blame]
danac79fa12022-10-18 15:02:08 +00001# 2022 October 18
2#
3# The author disclaims copyright to this source code. In place of
4# a legal notice, here is a blessing:
5#
6# May you do good and not evil.
7# May you find forgiveness for yourself and forgive others.
8# May you share freely, never taking more than you give.
9#
10#***********************************************************************
11#
12
13set testdir [file dirname $argv0]
14source $testdir/tester.tcl
15set testprefix windowE
16
17proc custom {a b} { return [string compare $a $b] }
18db collate custom custom
19
20do_execsql_test 1.0 {
21 CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT COLLATE custom);
22 INSERT INTO t1 VALUES(1, 'one');
23 INSERT INTO t1 VALUES(2, 'two');
24 INSERT INTO t1 VALUES(3, 'three');
25 INSERT INTO t1 VALUES(4, 'four');
26 INSERT INTO t1 VALUES(5, 'five');
27 INSERT INTO t1 VALUES(6, 'six');
28 CREATE INDEX t1b ON t1(b);
29}
30
31do_execsql_test 1.1 {
32 SELECT * FROM t1
33} {
34 1 one 2 two 3 three 4 four 5 five 6 six
35}
36
37do_execsql_test 1.2 {
38 SELECT group_concat(a,',') OVER win FROM t1
39 WINDOW win AS (
40 ORDER BY b RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
41 )
42} {
43 5 4 1 6 3 2
44}
45
46proc custom {a b} { return [string compare $b $a] }
47
48do_execsql_test 1.3 {
49 SELECT group_concat(a,',') OVER win FROM t1
50 WINDOW win AS (
51 ORDER BY b RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
52 )
53} {
54 5 5,4 5,4,1 5,4,1,6 5,4,1,6,3 5,4,1,6,3,2
55}
56
57finish_test
58