1# 2019 March 01
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# This file implements regression tests for SQLite library.
12#
13
14####################################################
15# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED!
16####################################################
17
18set testdir [file dirname $argv0]
19source $testdir/tester.tcl
20set testprefix window8
21
22ifcapable !windowfunc { finish_test ; return }
23do_execsql_test 1.0 {
24  DROP TABLE IF EXISTS t3;
25  CREATE TABLE t3(a TEXT, b TEXT, c INTEGER);
26  INSERT INTO t3 VALUES
27    ('HH', 'bb', 355), ('CC', 'aa', 158), ('BB', 'aa', 399),
28    ('FF', 'bb', 938), ('HH', 'aa', 480), ('FF', 'bb', 870),
29    ('JJ', 'aa', 768), ('JJ', 'aa', 899), ('GG', 'bb', 929),
30    ('II', 'bb', 421), ('GG', 'bb', 844), ('FF', 'bb', 574),
31    ('CC', 'bb', 822), ('GG', 'bb', 938), ('BB', 'aa', 660),
32    ('HH', 'aa', 979), ('BB', 'bb', 792), ('DD', 'aa', 845),
33    ('JJ', 'bb', 354), ('FF', 'bb', 295), ('JJ', 'aa', 234),
34    ('BB', 'bb', 840), ('AA', 'aa', 934), ('EE', 'aa', 113),
35    ('AA', 'bb', 309), ('BB', 'aa', 412), ('AA', 'aa', 911),
36    ('AA', 'bb', 572), ('II', 'aa', 398), ('II', 'bb', 250),
37    ('II', 'aa', 652), ('BB', 'bb', 633), ('AA', 'aa', 239),
38    ('FF', 'aa', 670), ('BB', 'bb', 705), ('HH', 'bb', 963),
39    ('CC', 'bb', 346), ('II', 'bb', 671), ('BB', 'aa', 247),
40    ('AA', 'aa', 223), ('GG', 'aa', 480), ('HH', 'aa', 790),
41    ('FF', 'aa', 208), ('BB', 'bb', 711), ('EE', 'aa', 777),
42    ('DD', 'bb', 716), ('CC', 'aa', 759), ('CC', 'aa', 430),
43    ('CC', 'aa', 607), ('DD', 'bb', 794), ('GG', 'aa', 148),
44    ('GG', 'aa', 634), ('JJ', 'bb', 257), ('DD', 'bb', 959),
45    ('FF', 'bb', 726), ('BB', 'aa', 762), ('JJ', 'bb', 336),
46    ('GG', 'aa', 335), ('HH', 'bb', 330), ('GG', 'bb', 160),
47    ('JJ', 'bb', 839), ('FF', 'aa', 618), ('BB', 'aa', 393),
48    ('EE', 'bb', 629), ('FF', 'aa', 667), ('AA', 'bb', 870),
49    ('FF', 'bb', 102), ('JJ', 'aa', 113), ('DD', 'aa', 224),
50    ('AA', 'bb', 627), ('HH', 'bb', 730), ('II', 'bb', 443),
51    ('HH', 'bb', 133), ('EE', 'bb', 252), ('II', 'bb', 805),
52    ('BB', 'bb', 786), ('EE', 'bb', 768), ('HH', 'bb', 683),
53    ('DD', 'bb', 238), ('DD', 'aa', 256);
54} {}
55
56do_execsql_test 1.1.1 {
57  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
58} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
59  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
60  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
61  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
62  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
63  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 19179
64  EE aa 19179   EE bb 19179   EE bb 19179   EE bb 19179   FF aa 21718
65  FF aa 21718   FF aa 21718   FF aa 21718   FF bb 21718   FF bb 21718
66  FF bb 21718   FF bb 21718   FF bb 21718   FF bb 21718   GG aa 27386
67  GG aa 27386   GG aa 27386   GG aa 27386   GG bb 27386   GG bb 27386
68  GG bb 27386   GG bb 27386   HH aa 31854   HH aa 31854   HH aa 31854
69  HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854
70  HH bb 31854   II aa 37297   II aa 37297   II bb 37297   II bb 37297
71  II bb 37297   II bb 37297   II bb 37297   JJ aa 40937   JJ aa 40937
72  JJ aa 40937   JJ aa 40937   JJ bb 40937   JJ bb 40937   JJ bb 40937
73  JJ bb 40937}
74
75do_execsql_test 1.1.2 {
76  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
77} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
78  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
79  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
80  BB bb 7558   BB bb 7558   CC aa 12025   CC aa 12025   CC aa 12025
81  CC aa 12025   CC bb 13979   CC bb 13979   DD aa 15147   DD aa 15147
82  DD aa 15147   DD bb 16472   DD bb 16472   DD bb 16472   DD bb 16472
83  EE aa 19179   EE aa 19179   EE bb 20069   EE bb 20069   EE bb 20069
84  FF aa 21718   FF aa 21718   FF aa 21718   FF aa 21718   FF bb 23881
85  FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881
86  GG aa 27386   GG aa 27386   GG aa 27386   GG aa 27386   GG bb 28983
87  GG bb 28983   GG bb 28983   GG bb 28983   HH aa 31854   HH aa 31854
88  HH aa 31854   HH bb 34103   HH bb 34103   HH bb 34103   HH bb 34103
89  HH bb 34103   HH bb 34103   II aa 37297   II aa 37297   II bb 38347
90  II bb 38347   II bb 38347   II bb 38347   II bb 38347   JJ aa 40937
91  JJ aa 40937   JJ aa 40937   JJ aa 40937   JJ bb 42951   JJ bb 42951
92  JJ bb 42951   JJ bb 42951}
93
94do_execsql_test 1.1.3 {
95  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
96} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
97  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
98  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
99  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
100  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
101  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
102  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
103  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
104  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
105  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
106  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
107  JJ bb 73   JJ bb 73   JJ bb 73}
108
109do_execsql_test 1.1.4 {
110  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
111} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
112  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
113  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
114  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
115  CC bb 934   CC bb 934   DD aa 934   DD aa 934   DD aa 934   DD bb 934
116  DD bb 934   DD bb 934   DD bb 934   EE aa 959   EE aa 959   EE bb 959
117  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
118  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
119  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 959   GG bb 959
120  GG bb 959   GG bb 959   HH aa 959   HH aa 959   HH aa 959   HH bb 979
121  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
122  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
123  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
124  JJ bb 979   JJ bb 979}
125
126do_execsql_test 1.1.5 {
127  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
128} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
129  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
130  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
131  BB bb 223   BB bb 223   CC aa 223   CC aa 223   CC aa 223   CC aa 223
132  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
133  DD bb 158   DD bb 158   DD bb 158   EE aa 158   EE aa 158   EE bb 113
134  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
135  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
136  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
137  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
138  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
139  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
140  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
141  JJ bb 102   JJ bb 102}
142
143do_execsql_test 1.1.6 {
144  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
145} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
146  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
147  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
148  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
149  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
150  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 19179
151  EE aa 19179   EE bb 19179   EE bb 19179   EE bb 19179   FF aa 21718
152  FF aa 21718   FF aa 21718   FF aa 21718   FF bb 21718   FF bb 21718
153  FF bb 21718   FF bb 21718   FF bb 21718   FF bb 21718   GG aa 27386
154  GG aa 27386   GG aa 27386   GG aa 27386   GG bb 27386   GG bb 27386
155  GG bb 27386   GG bb 27386   HH aa 31854   HH aa 31854   HH aa 31854
156  HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854   HH bb 31854
157  HH bb 31854   II aa 37297   II aa 37297   II bb 37297   II bb 37297
158  II bb 37297   II bb 37297   II bb 37297   JJ aa 40937   JJ aa 40937
159  JJ aa 40937   JJ aa 40937   JJ bb 40937   JJ bb 40937   JJ bb 40937
160  JJ bb 40937}
161
162do_execsql_test 1.1.7 {
163  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
164} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
165  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
166  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
167  BB bb 7558   BB bb 7558   CC aa 12025   CC aa 12025   CC aa 12025
168  CC aa 12025   CC bb 13979   CC bb 13979   DD aa 15147   DD aa 15147
169  DD aa 15147   DD bb 16472   DD bb 16472   DD bb 16472   DD bb 16472
170  EE aa 19179   EE aa 19179   EE bb 20069   EE bb 20069   EE bb 20069
171  FF aa 21718   FF aa 21718   FF aa 21718   FF aa 21718   FF bb 23881
172  FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881   FF bb 23881
173  GG aa 27386   GG aa 27386   GG aa 27386   GG aa 27386   GG bb 28983
174  GG bb 28983   GG bb 28983   GG bb 28983   HH aa 31854   HH aa 31854
175  HH aa 31854   HH bb 34103   HH bb 34103   HH bb 34103   HH bb 34103
176  HH bb 34103   HH bb 34103   II aa 37297   II aa 37297   II bb 38347
177  II bb 38347   II bb 38347   II bb 38347   II bb 38347   JJ aa 40937
178  JJ aa 40937   JJ aa 40937   JJ aa 40937   JJ bb 42951   JJ bb 42951
179  JJ bb 42951   JJ bb 42951}
180
181do_execsql_test 1.1.8 {
182  SELECT a, b,
183      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW),
184      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ),
185      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING  EXCLUDE CURRENT ROW),
186      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING )
187    FROM t3 ORDER BY 1, 2, 3;
188} {AA aa {} {} {} {}   AA aa {} {} {} {}   AA aa {} {} {} {}
189  AA aa {} {} {} {}   AA bb {} {} 2307 2307   AA bb {} {} 2307 2307
190  AA bb {} {} 2307 2307   AA bb {} {} 2307 2307   BB aa 4685 4685 4685 4685
191  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
192  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
193  BB aa 4685 4685 4685 4685   BB bb 4685 4685 7558 7558
194  BB bb 4685 4685 7558 7558   BB bb 4685 4685 7558 7558
195  BB bb 4685 4685 7558 7558   BB bb 4685 4685 7558 7558
196  BB bb 4685 4685 7558 7558   CC aa 12025 12025 12025 12025
197  CC aa 12025 12025 12025 12025   CC aa 12025 12025 12025 12025
198  CC aa 12025 12025 12025 12025   CC bb 12025 12025 13979 13979
199  CC bb 12025 12025 13979 13979   DD aa 15147 15147 15147 15147
200  DD aa 15147 15147 15147 15147   DD aa 15147 15147 15147 15147
201  DD bb 15147 15147 16472 16472   DD bb 15147 15147 16472 16472
202  DD bb 15147 15147 16472 16472   DD bb 15147 15147 16472 16472
203  EE aa 19179 19179 19179 19179   EE aa 19179 19179 19179 19179
204  EE bb 19179 19179 20069 20069   EE bb 19179 19179 20069 20069
205  EE bb 19179 19179 20069 20069   FF aa 21718 21718 21718 21718
206  FF aa 21718 21718 21718 21718   FF aa 21718 21718 21718 21718
207  FF aa 21718 21718 21718 21718   FF bb 21718 21718 23881 23881
208  FF bb 21718 21718 23881 23881   FF bb 21718 21718 23881 23881
209  FF bb 21718 21718 23881 23881   FF bb 21718 21718 23881 23881
210  FF bb 21718 21718 23881 23881   GG aa 27386 27386 27386 27386
211  GG aa 27386 27386 27386 27386   GG aa 27386 27386 27386 27386
212  GG aa 27386 27386 27386 27386   GG bb 27386 27386 28983 28983
213  GG bb 27386 27386 28983 28983   GG bb 27386 27386 28983 28983
214  GG bb 27386 27386 28983 28983   HH aa 31854 31854 31854 31854
215  HH aa 31854 31854 31854 31854   HH aa 31854 31854 31854 31854
216  HH bb 31854 31854 34103 34103   HH bb 31854 31854 34103 34103
217  HH bb 31854 31854 34103 34103   HH bb 31854 31854 34103 34103
218  HH bb 31854 31854 34103 34103   HH bb 31854 31854 34103 34103
219  II aa 37297 37297 37297 37297   II aa 37297 37297 37297 37297
220  II bb 37297 37297 38347 38347   II bb 37297 37297 38347 38347
221  II bb 37297 37297 38347 38347   II bb 37297 37297 38347 38347
222  II bb 37297 37297 38347 38347   JJ aa 40937 40937 40937 40937
223  JJ aa 40937 40937 40937 40937   JJ aa 40937 40937 40937 40937
224  JJ aa 40937 40937 40937 40937   JJ bb 40937 40937 42951 42951
225  JJ bb 40937 40937 42951 42951   JJ bb 40937 40937 42951 42951
226  JJ bb 40937 40937 42951 42951}
227
228do_execsql_test 1.2.1 {
229  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
230} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
231  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
232  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
233  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
234  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
235  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
236  DD bb 19179   DD bb 19179   EE aa 21718   EE aa 21718   EE bb 21718
237  EE bb 21718   EE bb 21718   FF aa 27386   FF aa 27386   FF aa 27386
238  FF aa 27386   FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386
239  FF bb 27386   FF bb 27386   GG aa 31854   GG aa 31854   GG aa 31854
240  GG aa 31854   GG bb 31854   GG bb 31854   GG bb 31854   GG bb 31854
241  HH aa 37297   HH aa 37297   HH aa 37297   HH bb 37297   HH bb 37297
242  HH bb 37297   HH bb 37297   HH bb 37297   HH bb 37297   II aa 40937
243  II aa 40937   II bb 40937   II bb 40937   II bb 40937   II bb 40937
244  II bb 40937   JJ aa 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
245  JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
246
247do_execsql_test 1.2.2 {
248  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
249} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
250  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
251  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
252  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 13979   CC aa 13979
253  CC aa 13979   CC aa 13979   CC bb 15147   CC bb 15147   DD aa 16472
254  DD aa 16472   DD aa 16472   DD bb 19179   DD bb 19179   DD bb 19179
255  DD bb 19179   EE aa 20069   EE aa 20069   EE bb 21718   EE bb 21718
256  EE bb 21718   FF aa 23881   FF aa 23881   FF aa 23881   FF aa 23881
257  FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386   FF bb 27386
258  FF bb 27386   GG aa 28983   GG aa 28983   GG aa 28983   GG aa 28983
259  GG bb 31854   GG bb 31854   GG bb 31854   GG bb 31854   HH aa 34103
260  HH aa 34103   HH aa 34103   HH bb 37297   HH bb 37297   HH bb 37297
261  HH bb 37297   HH bb 37297   HH bb 37297   II aa 38347   II aa 38347
262  II bb 40937   II bb 40937   II bb 40937   II bb 40937   II bb 40937
263  JJ aa 42951   JJ aa 42951   JJ aa 42951   JJ aa 42951   JJ bb 44737
264  JJ bb 44737   JJ bb 44737   JJ bb 44737}
265
266do_execsql_test 1.2.3 {
267  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
268} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
269  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
270  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
271  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
272  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
273  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
274  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
275  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
276  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
277  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
278  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
279  JJ bb 73   JJ bb 73   JJ bb 73}
280
281do_execsql_test 1.2.4 {
282  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
283} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
284  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
285  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
286  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
287  CC bb 934   CC bb 934   DD aa 934   DD aa 934   DD aa 934   DD bb 959
288  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
289  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
290  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
291  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 959   GG bb 959
292  GG bb 959   GG bb 959   HH aa 979   HH aa 979   HH aa 979   HH bb 979
293  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
294  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
295  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
296  JJ bb 979   JJ bb 979}
297
298do_execsql_test 1.2.5 {
299  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
300} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
301  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
302  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
303  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
304  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
305  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
306  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
307  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
308  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
309  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
310  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
311  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
312  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
313  JJ bb 102   JJ bb 102}
314
315do_execsql_test 1.2.6 {
316  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
317} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
318  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
319  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
320  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
321  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
322  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
323  DD bb 18463   DD bb 18941   EE aa 20941   EE aa 21605   EE bb 20950
324  EE bb 21089   EE bb 21466   FF aa 26716   FF aa 26719   FF aa 26768
325  FF aa 27178   FF bb 26448   FF bb 26516   FF bb 26660   FF bb 26812
326  FF bb 27091   FF bb 27284   GG aa 31220   GG aa 31374   GG aa 31519
327  GG aa 31706   GG bb 30916   GG bb 30925   GG bb 31010   GG bb 31694
328  HH aa 36318   HH aa 36507   HH aa 36817   HH bb 36334   HH bb 36567
329  HH bb 36614   HH bb 36942   HH bb 36967   HH bb 37164   II aa 40285
330  II aa 40539   II bb 40132   II bb 40266   II bb 40494   II bb 40516
331  II bb 40687   JJ aa 43838   JJ aa 43969   JJ aa 44503   JJ aa 44624
332  JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
333
334do_execsql_test 1.2.7 {
335  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
336} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
337  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
338  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
339  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 13220   CC aa 13372
340  CC aa 13549   CC aa 13821   CC bb 14325   CC bb 14801   DD aa 15627
341  DD aa 16216   DD aa 16248   DD bb 18220   DD bb 18385   DD bb 18463
342  DD bb 18941   EE aa 19292   EE aa 19956   EE bb 20950   EE bb 21089
343  EE bb 21466   FF aa 23211   FF aa 23214   FF aa 23263   FF aa 23673
344  FF bb 26448   FF bb 26516   FF bb 26660   FF bb 26812   FF bb 27091
345  FF bb 27284   GG aa 28349   GG aa 28503   GG aa 28648   GG aa 28835
346  GG bb 30916   GG bb 30925   GG bb 31010   GG bb 31694   HH aa 33124
347  HH aa 33313   HH aa 33623   HH bb 36334   HH bb 36567   HH bb 36614
348  HH bb 36942   HH bb 36967   HH bb 37164   II aa 37695   II aa 37949
349  II bb 40132   II bb 40266   II bb 40494   II bb 40516   II bb 40687
350  JJ aa 42052   JJ aa 42183   JJ aa 42717   JJ aa 42838   JJ bb 43898
351  JJ bb 44383   JJ bb 44401   JJ bb 44480}
352
353do_execsql_test 1.2.8 {
354  SELECT a, b,
355      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW),
356      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ),
357      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW),
358      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )
359    FROM t3 ORDER BY 1, 2, 3;
360} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
361  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
362  AA bb 3815 4685 3815 4685   AA bb 4058 4685 4058 4685
363  AA bb 4113 4685 4113 4685   AA bb 4376 4685 4376 4685
364  BB aa 11263 12025 6796 7558   BB aa 11365 12025 6898 7558
365  BB aa 11613 12025 7146 7558   BB aa 11626 12025 7159 7558
366  BB aa 11632 12025 7165 7558   BB aa 11778 12025 7311 7558
367  BB bb 11185 12025 11185 12025   BB bb 11233 12025 11233 12025
368  BB bb 11239 12025 11239 12025   BB bb 11314 12025 11314 12025
369  BB bb 11320 12025 11320 12025   BB bb 11392 12025 11392 12025
370  CC aa 14388 15147 13220 13979   CC aa 14540 15147 13372 13979
371  CC aa 14717 15147 13549 13979   CC aa 14989 15147 13821 13979
372  CC bb 14325 15147 14325 15147   CC bb 14801 15147 14801 15147
373  DD aa 18334 19179 15627 16472   DD aa 18923 19179 16216 16472
374  DD aa 18955 19179 16248 16472   DD bb 18220 19179 18220 19179
375  DD bb 18385 19179 18385 19179   DD bb 18463 19179 18463 19179
376  DD bb 18941 19179 18941 19179   EE aa 20941 21718 19292 20069
377  EE aa 21605 21718 19956 20069   EE bb 20950 21718 20950 21718
378  EE bb 21089 21718 21089 21718   EE bb 21466 21718 21466 21718
379  FF aa 26716 27386 23211 23881   FF aa 26719 27386 23214 23881
380  FF aa 26768 27386 23263 23881   FF aa 27178 27386 23673 23881
381  FF bb 26448 27386 26448 27386   FF bb 26516 27386 26516 27386
382  FF bb 26660 27386 26660 27386   FF bb 26812 27386 26812 27386
383  FF bb 27091 27386 27091 27386   FF bb 27284 27386 27284 27386
384  GG aa 31220 31854 28349 28983   GG aa 31374 31854 28503 28983
385  GG aa 31519 31854 28648 28983   GG aa 31706 31854 28835 28983
386  GG bb 30916 31854 30916 31854   GG bb 30925 31854 30925 31854
387  GG bb 31010 31854 31010 31854   GG bb 31694 31854 31694 31854
388  HH aa 36318 37297 33124 34103   HH aa 36507 37297 33313 34103
389  HH aa 36817 37297 33623 34103   HH bb 36334 37297 36334 37297
390  HH bb 36567 37297 36567 37297   HH bb 36614 37297 36614 37297
391  HH bb 36942 37297 36942 37297   HH bb 36967 37297 36967 37297
392  HH bb 37164 37297 37164 37297   II aa 40285 40937 37695 38347
393  II aa 40539 40937 37949 38347   II bb 40132 40937 40132 40937
394  II bb 40266 40937 40266 40937   II bb 40494 40937 40494 40937
395  II bb 40516 40937 40516 40937   II bb 40687 40937 40687 40937
396  JJ aa 43838 44737 42052 42951   JJ aa 43969 44737 42183 42951
397  JJ aa 44503 44737 42717 42951   JJ aa 44624 44737 42838 42951
398  JJ bb 43898 44737 43898 44737   JJ bb 44383 44737 44383 44737
399  JJ bb 44401 44737 44401 44737   JJ bb 44480 44737 44480 44737}
400
401do_execsql_test 1.3.1 {
402  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
403} {AA aa 12025   AA aa 12025   AA aa 12025   AA aa 12025   AA bb 12025
404  AA bb 12025   AA bb 12025   AA bb 12025   BB aa 15147   BB aa 15147
405  BB aa 15147   BB aa 15147   BB aa 15147   BB aa 15147   BB bb 15147
406  BB bb 15147   BB bb 15147   BB bb 15147   BB bb 15147   BB bb 15147
407  CC aa 19179   CC aa 19179   CC aa 19179   CC aa 19179   CC bb 19179
408  CC bb 19179   DD aa 21718   DD aa 21718   DD aa 21718   DD bb 21718
409  DD bb 21718   DD bb 21718   DD bb 21718   EE aa 27386   EE aa 27386
410  EE bb 27386   EE bb 27386   EE bb 27386   FF aa 31854   FF aa 31854
411  FF aa 31854   FF aa 31854   FF bb 31854   FF bb 31854   FF bb 31854
412  FF bb 31854   FF bb 31854   FF bb 31854   GG aa 37297   GG aa 37297
413  GG aa 37297   GG aa 37297   GG bb 37297   GG bb 37297   GG bb 37297
414  GG bb 37297   HH aa 40937   HH aa 40937   HH aa 40937   HH bb 40937
415  HH bb 40937   HH bb 40937   HH bb 40937   HH bb 40937   HH bb 40937
416  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
417  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
418  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
419
420do_execsql_test 1.3.2 {
421  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
422} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 7558   AA bb 7558
423  AA bb 7558   AA bb 7558   BB aa 12025   BB aa 12025   BB aa 12025
424  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 13979   BB bb 13979
425  BB bb 13979   BB bb 13979   BB bb 13979   BB bb 13979   CC aa 15147
426  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 16472   CC bb 16472
427  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 20069   DD bb 20069
428  DD bb 20069   DD bb 20069   EE aa 21718   EE aa 21718   EE bb 23881
429  EE bb 23881   EE bb 23881   FF aa 27386   FF aa 27386   FF aa 27386
430  FF aa 27386   FF bb 28983   FF bb 28983   FF bb 28983   FF bb 28983
431  FF bb 28983   FF bb 28983   GG aa 31854   GG aa 31854   GG aa 31854
432  GG aa 31854   GG bb 34103   GG bb 34103   GG bb 34103   GG bb 34103
433  HH aa 37297   HH aa 37297   HH aa 37297   HH bb 38347   HH bb 38347
434  HH bb 38347   HH bb 38347   HH bb 38347   HH bb 38347   II aa 40937
435  II aa 40937   II bb 42951   II bb 42951   II bb 42951   II bb 42951
436  II bb 42951   JJ aa 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
437  JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
438
439do_execsql_test 1.3.3 {
440  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
441} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
442  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
443  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
444  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
445  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
446  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
447  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
448  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
449  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
450  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
451  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
452  JJ bb 73   JJ bb 73   JJ bb 73}
453
454do_execsql_test 1.3.4 {
455  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
456} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
457  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
458  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
459  BB bb 934   BB bb 934   CC aa 934   CC aa 934   CC aa 934   CC aa 934
460  CC bb 934   CC bb 934   DD aa 959   DD aa 959   DD aa 959   DD bb 959
461  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
462  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
463  FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959   FF bb 959
464  GG aa 959   GG aa 959   GG aa 959   GG aa 959   GG bb 979   GG bb 979
465  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
466  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
467  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
468  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
469  JJ bb 979   JJ bb 979}
470
471do_execsql_test 1.3.5 {
472  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
473} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
474  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
475  BB aa 223   BB aa 223   BB bb 158   BB bb 158   BB bb 158   BB bb 158
476  BB bb 158   BB bb 158   CC aa 158   CC aa 158   CC aa 158   CC aa 158
477  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 113
478  DD bb 113   DD bb 113   DD bb 113   EE aa 113   EE aa 113   EE bb 113
479  EE bb 113   EE bb 113   FF aa 102   FF aa 102   FF aa 102   FF aa 102
480  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
481  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
482  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
483  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
484  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
485  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
486  JJ bb 102   JJ bb 102}
487
488do_execsql_test 1.3.6 {
489  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
490} {AA aa 11091   AA aa 11114   AA aa 11786   AA aa 11802   AA bb 11155
491  AA bb 11398   AA bb 11453   AA bb 11716   BB aa 14385   BB aa 14487
492  BB aa 14735   BB aa 14748   BB aa 14754   BB aa 14900   BB bb 14307
493  BB bb 14355   BB bb 14361   BB bb 14436   BB bb 14442   BB bb 14514
494  CC aa 18420   CC aa 18572   CC aa 18749   CC aa 19021   CC bb 18357
495  CC bb 18833   DD aa 20873   DD aa 21462   DD aa 21494   DD bb 20759
496  DD bb 20924   DD bb 21002   DD bb 21480   EE aa 26609   EE aa 27273
497  EE bb 26618   EE bb 26757   EE bb 27134   FF aa 31184   FF aa 31187
498  FF aa 31236   FF aa 31646   FF bb 30916   FF bb 30984   FF bb 31128
499  FF bb 31280   FF bb 31559   FF bb 31752   GG aa 36663   GG aa 36817
500  GG aa 36962   GG aa 37149   GG bb 36359   GG bb 36368   GG bb 36453
501  GG bb 37137   HH aa 39958   HH aa 40147   HH aa 40457   HH bb 39974
502  HH bb 40207   HH bb 40254   HH bb 40582   HH bb 40607   HH bb 40804
503  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
504  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
505  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
506
507do_execsql_test 1.3.7 {
508  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
509} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 6688   AA bb 6931
510  AA bb 6986   AA bb 7249   BB aa 11263   BB aa 11365   BB aa 11613
511  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 13139   BB bb 13187
512  BB bb 13193   BB bb 13268   BB bb 13274   BB bb 13346   CC aa 14388
513  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 15650   CC bb 16126
514  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 19110   DD bb 19275
515  DD bb 19353   DD bb 19831   EE aa 20941   EE aa 21605   EE bb 23113
516  EE bb 23252   EE bb 23629   FF aa 26716   FF aa 26719   FF aa 26768
517  FF aa 27178   FF bb 28045   FF bb 28113   FF bb 28257   FF bb 28409
518  FF bb 28688   FF bb 28881   GG aa 31220   GG aa 31374   GG aa 31519
519  GG aa 31706   GG bb 33165   GG bb 33174   GG bb 33259   GG bb 33943
520  HH aa 36318   HH aa 36507   HH aa 36817   HH bb 37384   HH bb 37617
521  HH bb 37664   HH bb 37992   HH bb 38017   HH bb 38214   II aa 40285
522  II aa 40539   II bb 42146   II bb 42280   II bb 42508   II bb 42530
523  II bb 42701   JJ aa 43838   JJ aa 43969   JJ aa 44503   JJ aa 44624
524  JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
525
526do_execsql_test 1.3.8 {
527  SELECT a, b,
528      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW),
529      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ),
530      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING  EXCLUDE CURRENT ROW),
531      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING )
532    FROM t3 ORDER BY 1, 2, 3;
533} {AA aa 11091 12025 3751 4685   AA aa 11114 12025 3774 4685
534  AA aa 11786 12025 4446 4685   AA aa 11802 12025 4462 4685
535  AA bb 11155 12025 6688 7558   AA bb 11398 12025 6931 7558
536  AA bb 11453 12025 6986 7558   AA bb 11716 12025 7249 7558
537  BB aa 14385 15147 11263 12025   BB aa 14487 15147 11365 12025
538  BB aa 14735 15147 11613 12025   BB aa 14748 15147 11626 12025
539  BB aa 14754 15147 11632 12025   BB aa 14900 15147 11778 12025
540  BB bb 14307 15147 13139 13979   BB bb 14355 15147 13187 13979
541  BB bb 14361 15147 13193 13979   BB bb 14436 15147 13268 13979
542  BB bb 14442 15147 13274 13979   BB bb 14514 15147 13346 13979
543  CC aa 18420 19179 14388 15147   CC aa 18572 19179 14540 15147
544  CC aa 18749 19179 14717 15147   CC aa 19021 19179 14989 15147
545  CC bb 18357 19179 15650 16472   CC bb 18833 19179 16126 16472
546  DD aa 20873 21718 18334 19179   DD aa 21462 21718 18923 19179
547  DD aa 21494 21718 18955 19179   DD bb 20759 21718 19110 20069
548  DD bb 20924 21718 19275 20069   DD bb 21002 21718 19353 20069
549  DD bb 21480 21718 19831 20069   EE aa 26609 27386 20941 21718
550  EE aa 27273 27386 21605 21718   EE bb 26618 27386 23113 23881
551  EE bb 26757 27386 23252 23881   EE bb 27134 27386 23629 23881
552  FF aa 31184 31854 26716 27386   FF aa 31187 31854 26719 27386
553  FF aa 31236 31854 26768 27386   FF aa 31646 31854 27178 27386
554  FF bb 30916 31854 28045 28983   FF bb 30984 31854 28113 28983
555  FF bb 31128 31854 28257 28983   FF bb 31280 31854 28409 28983
556  FF bb 31559 31854 28688 28983   FF bb 31752 31854 28881 28983
557  GG aa 36663 37297 31220 31854   GG aa 36817 37297 31374 31854
558  GG aa 36962 37297 31519 31854   GG aa 37149 37297 31706 31854
559  GG bb 36359 37297 33165 34103   GG bb 36368 37297 33174 34103
560  GG bb 36453 37297 33259 34103   GG bb 37137 37297 33943 34103
561  HH aa 39958 40937 36318 37297   HH aa 40147 40937 36507 37297
562  HH aa 40457 40937 36817 37297   HH bb 39974 40937 37384 38347
563  HH bb 40207 40937 37617 38347   HH bb 40254 40937 37664 38347
564  HH bb 40582 40937 37992 38347   HH bb 40607 40937 38017 38347
565  HH bb 40804 40937 38214 38347   II aa 44085 44737 40285 40937
566  II aa 44339 44737 40539 40937   II bb 43932 44737 42146 42951
567  II bb 44066 44737 42280 42951   II bb 44294 44737 42508 42951
568  II bb 44316 44737 42530 42951   II bb 44487 44737 42701 42951
569  JJ aa 43838 44737 43838 44737   JJ aa 43969 44737 43969 44737
570  JJ aa 44503 44737 44503 44737   JJ aa 44624 44737 44624 44737
571  JJ bb 43898 44737 43898 44737   JJ bb 44383 44737 44383 44737
572  JJ bb 44401 44737 44401 44737   JJ bb 44480 44737 44480 44737}
573
574do_execsql_test 1.4.1 {
575  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
576} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
577  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
578  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
579  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
580  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
581  CC bb 44737   DD aa 44737   DD aa 44737   DD aa 44737   DD bb 44737
582  DD bb 44737   DD bb 44737   DD bb 44737   EE aa 44737   EE aa 44737
583  EE bb 44737   EE bb 44737   EE bb 44737   FF aa 44737   FF aa 44737
584  FF aa 44737   FF aa 44737   FF bb 44737   FF bb 44737   FF bb 44737
585  FF bb 44737   FF bb 44737   FF bb 44737   GG aa 44737   GG aa 44737
586  GG aa 44737   GG aa 44737   GG bb 44737   GG bb 44737   GG bb 44737
587  GG bb 44737   HH aa 44737   HH aa 44737   HH aa 44737   HH bb 44737
588  HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737
589  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
590  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
591  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
592
593do_execsql_test 1.4.2 {
594  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
595} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
596  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
597  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
598  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
599  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
600  CC bb 44737   DD aa 44737   DD aa 44737   DD aa 44737   DD bb 44737
601  DD bb 44737   DD bb 44737   DD bb 44737   EE aa 44737   EE aa 44737
602  EE bb 44737   EE bb 44737   EE bb 44737   FF aa 44737   FF aa 44737
603  FF aa 44737   FF aa 44737   FF bb 44737   FF bb 44737   FF bb 44737
604  FF bb 44737   FF bb 44737   FF bb 44737   GG aa 44737   GG aa 44737
605  GG aa 44737   GG aa 44737   GG bb 44737   GG bb 44737   GG bb 44737
606  GG bb 44737   HH aa 44737   HH aa 44737   HH aa 44737   HH bb 44737
607  HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737   HH bb 44737
608  II aa 44737   II aa 44737   II bb 44737   II bb 44737   II bb 44737
609  II bb 44737   II bb 44737   JJ aa 44737   JJ aa 44737   JJ aa 44737
610  JJ aa 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737   JJ bb 44737}
611
612do_execsql_test 1.4.3 {
613  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
614} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
615  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
616  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
617  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
618  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
619  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
620  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
621  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
622  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
623  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
624  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
625  JJ bb 73   JJ bb 73   JJ bb 73}
626
627do_execsql_test 1.4.4 {
628  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
629} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
630  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
631  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
632  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
633  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
634  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
635  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
636  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
637  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
638  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
639  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
640  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
641  JJ aa 979   JJ aa 979   JJ aa 979   JJ aa 979   JJ bb 979   JJ bb 979
642  JJ bb 979   JJ bb 979}
643
644do_execsql_test 1.4.5 {
645  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
646} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
647  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
648  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
649  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
650  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
651  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
652  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
653  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
654  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
655  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 102
656  HH bb 102   HH bb 102   HH bb 102   HH bb 102   HH bb 102   II aa 102
657  II aa 102   II bb 102   II bb 102   II bb 102   II bb 102   II bb 102
658  JJ aa 102   JJ aa 102   JJ aa 102   JJ aa 102   JJ bb 102   JJ bb 102
659  JJ bb 102   JJ bb 102}
660
661do_execsql_test 1.4.6 {
662  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
663} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
664  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
665  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
666  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
667  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
668  CC bb 44391   DD aa 43892   DD aa 44481   DD aa 44513   DD bb 43778
669  DD bb 43943   DD bb 44021   DD bb 44499   EE aa 43960   EE aa 44624
670  EE bb 43969   EE bb 44108   EE bb 44485   FF aa 44067   FF aa 44070
671  FF aa 44119   FF aa 44529   FF bb 43799   FF bb 43867   FF bb 44011
672  FF bb 44163   FF bb 44442   FF bb 44635   GG aa 44103   GG aa 44257
673  GG aa 44402   GG aa 44589   GG bb 43799   GG bb 43808   GG bb 43893
674  GG bb 44577   HH aa 43758   HH aa 43947   HH aa 44257   HH bb 43774
675  HH bb 44007   HH bb 44054   HH bb 44382   HH bb 44407   HH bb 44604
676  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
677  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
678  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
679
680do_execsql_test 1.4.7 {
681  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
682} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
683  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
684  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
685  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
686  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
687  CC bb 44391   DD aa 43892   DD aa 44481   DD aa 44513   DD bb 43778
688  DD bb 43943   DD bb 44021   DD bb 44499   EE aa 43960   EE aa 44624
689  EE bb 43969   EE bb 44108   EE bb 44485   FF aa 44067   FF aa 44070
690  FF aa 44119   FF aa 44529   FF bb 43799   FF bb 43867   FF bb 44011
691  FF bb 44163   FF bb 44442   FF bb 44635   GG aa 44103   GG aa 44257
692  GG aa 44402   GG aa 44589   GG bb 43799   GG bb 43808   GG bb 43893
693  GG bb 44577   HH aa 43758   HH aa 43947   HH aa 44257   HH bb 43774
694  HH bb 44007   HH bb 44054   HH bb 44382   HH bb 44407   HH bb 44604
695  II aa 44085   II aa 44339   II bb 43932   II bb 44066   II bb 44294
696  II bb 44316   II bb 44487   JJ aa 43838   JJ aa 43969   JJ aa 44503
697  JJ aa 44624   JJ bb 43898   JJ bb 44383   JJ bb 44401   JJ bb 44480}
698
699do_execsql_test 1.4.8 {
700  SELECT a, b,
701      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
702      sum(c) OVER (ORDER BY a  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ),
703      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
704      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
705    FROM t3 ORDER BY 1, 2, 3;
706} {AA aa 43803 44737 43803 44737   AA aa 43826 44737 43826 44737
707  AA aa 44498 44737 44498 44737   AA aa 44514 44737 44514 44737
708  AA bb 43867 44737 43867 44737   AA bb 44110 44737 44110 44737
709  AA bb 44165 44737 44165 44737   AA bb 44428 44737 44428 44737
710  BB aa 43975 44737 43975 44737   BB aa 44077 44737 44077 44737
711  BB aa 44325 44737 44325 44737   BB aa 44338 44737 44338 44737
712  BB aa 44344 44737 44344 44737   BB aa 44490 44737 44490 44737
713  BB bb 43897 44737 43897 44737   BB bb 43945 44737 43945 44737
714  BB bb 43951 44737 43951 44737   BB bb 44026 44737 44026 44737
715  BB bb 44032 44737 44032 44737   BB bb 44104 44737 44104 44737
716  CC aa 43978 44737 43978 44737   CC aa 44130 44737 44130 44737
717  CC aa 44307 44737 44307 44737   CC aa 44579 44737 44579 44737
718  CC bb 43915 44737 43915 44737   CC bb 44391 44737 44391 44737
719  DD aa 43892 44737 43892 44737   DD aa 44481 44737 44481 44737
720  DD aa 44513 44737 44513 44737   DD bb 43778 44737 43778 44737
721  DD bb 43943 44737 43943 44737   DD bb 44021 44737 44021 44737
722  DD bb 44499 44737 44499 44737   EE aa 43960 44737 43960 44737
723  EE aa 44624 44737 44624 44737   EE bb 43969 44737 43969 44737
724  EE bb 44108 44737 44108 44737   EE bb 44485 44737 44485 44737
725  FF aa 44067 44737 44067 44737   FF aa 44070 44737 44070 44737
726  FF aa 44119 44737 44119 44737   FF aa 44529 44737 44529 44737
727  FF bb 43799 44737 43799 44737   FF bb 43867 44737 43867 44737
728  FF bb 44011 44737 44011 44737   FF bb 44163 44737 44163 44737
729  FF bb 44442 44737 44442 44737   FF bb 44635 44737 44635 44737
730  GG aa 44103 44737 44103 44737   GG aa 44257 44737 44257 44737
731  GG aa 44402 44737 44402 44737   GG aa 44589 44737 44589 44737
732  GG bb 43799 44737 43799 44737   GG bb 43808 44737 43808 44737
733  GG bb 43893 44737 43893 44737   GG bb 44577 44737 44577 44737
734  HH aa 43758 44737 43758 44737   HH aa 43947 44737 43947 44737
735  HH aa 44257 44737 44257 44737   HH bb 43774 44737 43774 44737
736  HH bb 44007 44737 44007 44737   HH bb 44054 44737 44054 44737
737  HH bb 44382 44737 44382 44737   HH bb 44407 44737 44407 44737
738  HH bb 44604 44737 44604 44737   II aa 44085 44737 44085 44737
739  II aa 44339 44737 44339 44737   II bb 43932 44737 43932 44737
740  II bb 44066 44737 44066 44737   II bb 44294 44737 44294 44737
741  II bb 44316 44737 44316 44737   II bb 44487 44737 44487 44737
742  JJ aa 43838 44737 43838 44737   JJ aa 43969 44737 43969 44737
743  JJ aa 44503 44737 44503 44737   JJ aa 44624 44737 44624 44737
744  JJ bb 43898 44737 43898 44737   JJ bb 44383 44737 44383 44737
745  JJ bb 44401 44737 44401 44737   JJ bb 44480 44737 44480 44737}
746
747do_execsql_test 1.5.1 {
748  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
749} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
750  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
751  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
752  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
753  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
754  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
755  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
756  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
757  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
758  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
759  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
760  JJ bb {}   JJ bb {}   JJ bb {}}
761
762do_execsql_test 1.5.2 {
763  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
764} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
765  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
766  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
767  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
768  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
769  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
770  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
771  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
772  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
773  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
774  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
775  JJ bb {}   JJ bb {}   JJ bb {}}
776
777do_execsql_test 1.5.3 {
778  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
779} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
780  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
781  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
782  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
783  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
784  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
785  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
786  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
787  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
788  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
789  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
790  JJ bb 73   JJ bb 73   JJ bb 73}
791
792do_execsql_test 1.5.4 {
793  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
794} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
795  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
796  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
797  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
798  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
799  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
800  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
801  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
802  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
803  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
804  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
805  JJ bb {}   JJ bb {}   JJ bb {}}
806
807do_execsql_test 1.5.5 {
808  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
809} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
810  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
811  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
812  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
813  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
814  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
815  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
816  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
817  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
818  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
819  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
820  JJ bb {}   JJ bb {}   JJ bb {}}
821
822do_execsql_test 1.5.6 {
823  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
824} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
825  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
826  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
827  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
828  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
829  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
830  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
831  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
832  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
833  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
834  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
835  JJ bb {}   JJ bb {}   JJ bb {}}
836
837do_execsql_test 1.5.7 {
838  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
839} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
840  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
841  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
842  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
843  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
844  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
845  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
846  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
847  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
848  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
849  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
850  JJ bb {}   JJ bb {}   JJ bb {}}
851
852do_execsql_test 1.5.8 {
853  SELECT a, b,
854      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW),
855      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING ),
856      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING  EXCLUDE CURRENT ROW),
857      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 PRECEDING         AND 2 PRECEDING )
858    FROM t3 ORDER BY 1, 2, 3;
859} {AA aa {} {} {} {}   AA aa {} {} {} {}   AA aa {} {} {} {}
860  AA aa {} {} {} {}   AA bb {} {} {} {}   AA bb {} {} {} {}
861  AA bb {} {} {} {}   AA bb {} {} {} {}   BB aa {} {} {} {}
862  BB aa {} {} {} {}   BB aa {} {} {} {}   BB aa {} {} {} {}
863  BB aa {} {} {} {}   BB aa {} {} {} {}   BB bb {} {} {} {}
864  BB bb {} {} {} {}   BB bb {} {} {} {}   BB bb {} {} {} {}
865  BB bb {} {} {} {}   BB bb {} {} {} {}   CC aa {} {} {} {}
866  CC aa {} {} {} {}   CC aa {} {} {} {}   CC aa {} {} {} {}
867  CC bb {} {} {} {}   CC bb {} {} {} {}   DD aa {} {} {} {}
868  DD aa {} {} {} {}   DD aa {} {} {} {}   DD bb {} {} {} {}
869  DD bb {} {} {} {}   DD bb {} {} {} {}   DD bb {} {} {} {}
870  EE aa {} {} {} {}   EE aa {} {} {} {}   EE bb {} {} {} {}
871  EE bb {} {} {} {}   EE bb {} {} {} {}   FF aa {} {} {} {}
872  FF aa {} {} {} {}   FF aa {} {} {} {}   FF aa {} {} {} {}
873  FF bb {} {} {} {}   FF bb {} {} {} {}   FF bb {} {} {} {}
874  FF bb {} {} {} {}   FF bb {} {} {} {}   FF bb {} {} {} {}
875  GG aa {} {} {} {}   GG aa {} {} {} {}   GG aa {} {} {} {}
876  GG aa {} {} {} {}   GG bb {} {} {} {}   GG bb {} {} {} {}
877  GG bb {} {} {} {}   GG bb {} {} {} {}   HH aa {} {} {} {}
878  HH aa {} {} {} {}   HH aa {} {} {} {}   HH bb {} {} {} {}
879  HH bb {} {} {} {}   HH bb {} {} {} {}   HH bb {} {} {} {}
880  HH bb {} {} {} {}   HH bb {} {} {} {}   II aa {} {} {} {}
881  II aa {} {} {} {}   II bb {} {} {} {}   II bb {} {} {} {}
882  II bb {} {} {} {}   II bb {} {} {} {}   II bb {} {} {} {}
883  JJ aa {} {} {} {}   JJ aa {} {} {} {}   JJ aa {} {} {} {}
884  JJ aa {} {} {} {}   JJ bb {} {} {} {}   JJ bb {} {} {} {}
885  JJ bb {} {} {} {}   JJ bb {} {} {} {}}
886
887do_execsql_test 1.6.1 {
888  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
889} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
890  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
891  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
892  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
893  CC bb 12025   CC bb 12025   DD aa 10462   DD aa 10462   DD aa 10462
894  DD bb 10462   DD bb 10462   DD bb 10462   DD bb 10462   EE aa 7154
895  EE aa 7154   EE bb 7154   EE bb 7154   EE bb 7154   FF aa 6571   FF aa 6571
896  FF aa 6571   FF aa 6571   FF bb 6571   FF bb 6571   FF bb 6571   FF bb 6571
897  FF bb 6571   FF bb 6571   GG aa 8207   GG aa 8207   GG aa 8207   GG aa 8207
898  GG bb 8207   GG bb 8207   GG bb 8207   GG bb 8207   HH aa 10136
899  HH aa 10136   HH aa 10136   HH bb 10136   HH bb 10136   HH bb 10136
900  HH bb 10136   HH bb 10136   HH bb 10136   II aa 9911   II aa 9911
901  II bb 9911   II bb 9911   II bb 9911   II bb 9911   II bb 9911   JJ aa 9083
902  JJ aa 9083   JJ aa 9083   JJ aa 9083   JJ bb 9083   JJ bb 9083   JJ bb 9083
903  JJ bb 9083}
904
905do_execsql_test 1.6.2 {
906  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
907} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
908  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
909  BB aa 4685   BB aa 4685   BB bb 5251   BB bb 5251   BB bb 5251   BB bb 5251
910  BB bb 5251   BB bb 5251   CC aa 7340   CC aa 7340   CC aa 7340   CC aa 7340
911  CC bb 6421   CC bb 6421   DD aa 3122   DD aa 3122   DD aa 3122   DD bb 2493
912  DD bb 2493   DD bb 2493   DD bb 2493   EE aa 4032   EE aa 4032   EE bb 3597
913  EE bb 3597   EE bb 3597   FF aa 2539   FF aa 2539   FF aa 2539   FF aa 2539
914  FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812
915  GG aa 5668   GG aa 5668   GG aa 5668   GG aa 5668   GG bb 5102   GG bb 5102
916  GG bb 5102   GG bb 5102   HH aa 4468   HH aa 4468   HH aa 4468   HH bb 5120
917  HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   II aa 5443
918  II aa 5443   II bb 4244   II bb 4244   II bb 4244   II bb 4244   II bb 4244
919  JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ bb 4604   JJ bb 4604
920  JJ bb 4604   JJ bb 4604}
921
922do_execsql_test 1.6.3 {
923  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
924} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
925  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
926  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
927  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
928  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
929  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
930  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
931  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
932  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
933  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
934  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
935  JJ bb 73   JJ bb 73   JJ bb 73}
936
937do_execsql_test 1.6.4 {
938  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
939} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
940  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
941  BB aa 934   BB aa 934   BB bb 870   BB bb 870   BB bb 870   BB bb 870
942  BB bb 870   BB bb 870   CC aa 840   CC aa 840   CC aa 840   CC aa 840
943  CC bb 840   CC bb 840   DD aa 822   DD aa 822   DD aa 822   DD bb 845
944  DD bb 845   DD bb 845   DD bb 845   EE aa 959   EE aa 959   EE bb 959
945  EE bb 959   EE bb 959   FF aa 777   FF aa 777   FF aa 777   FF aa 777
946  FF bb 768   FF bb 768   FF bb 768   FF bb 768   FF bb 768   FF bb 768
947  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
948  GG bb 938   GG bb 938   HH aa 938   HH aa 938   HH aa 938   HH bb 979
949  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
950  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
951  JJ aa 805   JJ aa 805   JJ aa 805   JJ aa 805   JJ bb 899   JJ bb 899
952  JJ bb 899   JJ bb 899}
953
954do_execsql_test 1.6.5 {
955  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
956} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
957  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
958  BB aa 223   BB aa 223   BB bb 247   BB bb 247   BB bb 247   BB bb 247
959  BB bb 247   BB bb 247   CC aa 247   CC aa 247   CC aa 247   CC aa 247
960  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 224
961  DD bb 224   DD bb 224   DD bb 224   EE aa 224   EE aa 224   EE bb 113
962  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
963  FF bb 208   FF bb 208   FF bb 208   FF bb 208   FF bb 208   FF bb 208
964  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
965  GG bb 102   GG bb 102   HH aa 148   HH aa 148   HH aa 148   HH bb 160
966  HH bb 160   HH bb 160   HH bb 160   HH bb 160   HH bb 160   II aa 133
967  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
968  JJ aa 250   JJ aa 250   JJ aa 250   JJ aa 250   JJ bb 113   JJ bb 113
969  JJ bb 113   JJ bb 113}
970
971do_execsql_test 1.6.6 {
972  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
973} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
974  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
975  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
976  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
977  CC bb 12025   CC bb 12025   DD aa 10462   DD aa 10462   DD aa 10462
978  DD bb 10462   DD bb 10462   DD bb 10462   DD bb 10462   EE aa 7154
979  EE aa 7154   EE bb 7154   EE bb 7154   EE bb 7154   FF aa 6571   FF aa 6571
980  FF aa 6571   FF aa 6571   FF bb 6571   FF bb 6571   FF bb 6571   FF bb 6571
981  FF bb 6571   FF bb 6571   GG aa 8207   GG aa 8207   GG aa 8207   GG aa 8207
982  GG bb 8207   GG bb 8207   GG bb 8207   GG bb 8207   HH aa 10136
983  HH aa 10136   HH aa 10136   HH bb 10136   HH bb 10136   HH bb 10136
984  HH bb 10136   HH bb 10136   HH bb 10136   II aa 9911   II aa 9911
985  II bb 9911   II bb 9911   II bb 9911   II bb 9911   II bb 9911   JJ aa 9083
986  JJ aa 9083   JJ aa 9083   JJ aa 9083   JJ bb 9083   JJ bb 9083   JJ bb 9083
987  JJ bb 9083}
988
989do_execsql_test 1.6.7 {
990  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
991} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
992  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
993  BB aa 4685   BB aa 4685   BB bb 5251   BB bb 5251   BB bb 5251   BB bb 5251
994  BB bb 5251   BB bb 5251   CC aa 7340   CC aa 7340   CC aa 7340   CC aa 7340
995  CC bb 6421   CC bb 6421   DD aa 3122   DD aa 3122   DD aa 3122   DD bb 2493
996  DD bb 2493   DD bb 2493   DD bb 2493   EE aa 4032   EE aa 4032   EE bb 3597
997  EE bb 3597   EE bb 3597   FF aa 2539   FF aa 2539   FF aa 2539   FF aa 2539
998  FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812   FF bb 3812
999  GG aa 5668   GG aa 5668   GG aa 5668   GG aa 5668   GG bb 5102   GG bb 5102
1000  GG bb 5102   GG bb 5102   HH aa 4468   HH aa 4468   HH aa 4468   HH bb 5120
1001  HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   HH bb 5120   II aa 5443
1002  II aa 5443   II bb 4244   II bb 4244   II bb 4244   II bb 4244   II bb 4244
1003  JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ aa 3640   JJ bb 4604   JJ bb 4604
1004  JJ bb 4604   JJ bb 4604}
1005
1006do_execsql_test 1.6.8 {
1007  SELECT a, b,
1008      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW),
1009      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING ),
1010      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW),
1011      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND 1 PRECEDING )
1012    FROM t3 ORDER BY 1, 2, 3;
1013} {AA aa {} {} {} {}   AA aa {} {} {} {}   AA aa {} {} {} {}
1014  AA aa {} {} {} {}   AA bb {} {} 2307 2307   AA bb {} {} 2307 2307
1015  AA bb {} {} 2307 2307   AA bb {} {} 2307 2307   BB aa 4685 4685 4685 4685
1016  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
1017  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
1018  BB aa 4685 4685 4685 4685   BB bb 4685 4685 5251 5251
1019  BB bb 4685 4685 5251 5251   BB bb 4685 4685 5251 5251
1020  BB bb 4685 4685 5251 5251   BB bb 4685 4685 5251 5251
1021  BB bb 4685 4685 5251 5251   CC aa 12025 12025 7340 7340
1022  CC aa 12025 12025 7340 7340   CC aa 12025 12025 7340 7340
1023  CC aa 12025 12025 7340 7340   CC bb 12025 12025 6421 6421
1024  CC bb 12025 12025 6421 6421   DD aa 10462 10462 3122 3122
1025  DD aa 10462 10462 3122 3122   DD aa 10462 10462 3122 3122
1026  DD bb 10462 10462 2493 2493   DD bb 10462 10462 2493 2493
1027  DD bb 10462 10462 2493 2493   DD bb 10462 10462 2493 2493
1028  EE aa 7154 7154 4032 4032   EE aa 7154 7154 4032 4032
1029  EE bb 7154 7154 3597 3597   EE bb 7154 7154 3597 3597
1030  EE bb 7154 7154 3597 3597   FF aa 6571 6571 2539 2539
1031  FF aa 6571 6571 2539 2539   FF aa 6571 6571 2539 2539
1032  FF aa 6571 6571 2539 2539   FF bb 6571 6571 3812 3812
1033  FF bb 6571 6571 3812 3812   FF bb 6571 6571 3812 3812
1034  FF bb 6571 6571 3812 3812   FF bb 6571 6571 3812 3812
1035  FF bb 6571 6571 3812 3812   GG aa 8207 8207 5668 5668
1036  GG aa 8207 8207 5668 5668   GG aa 8207 8207 5668 5668
1037  GG aa 8207 8207 5668 5668   GG bb 8207 8207 5102 5102
1038  GG bb 8207 8207 5102 5102   GG bb 8207 8207 5102 5102
1039  GG bb 8207 8207 5102 5102   HH aa 10136 10136 4468 4468
1040  HH aa 10136 10136 4468 4468   HH aa 10136 10136 4468 4468
1041  HH bb 10136 10136 5120 5120   HH bb 10136 10136 5120 5120
1042  HH bb 10136 10136 5120 5120   HH bb 10136 10136 5120 5120
1043  HH bb 10136 10136 5120 5120   HH bb 10136 10136 5120 5120
1044  II aa 9911 9911 5443 5443   II aa 9911 9911 5443 5443
1045  II bb 9911 9911 4244 4244   II bb 9911 9911 4244 4244
1046  II bb 9911 9911 4244 4244   II bb 9911 9911 4244 4244
1047  II bb 9911 9911 4244 4244   JJ aa 9083 9083 3640 3640
1048  JJ aa 9083 9083 3640 3640   JJ aa 9083 9083 3640 3640
1049  JJ aa 9083 9083 3640 3640   JJ bb 9083 9083 4604 4604
1050  JJ bb 9083 9083 4604 4604   JJ bb 9083 9083 4604 4604
1051  JJ bb 9083 9083 4604 4604}
1052
1053do_execsql_test 1.7.1 {
1054  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1055} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
1056  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
1057  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
1058  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
1059  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
1060  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 14494
1061  EE aa 14494   EE bb 14494   EE bb 14494   EE bb 14494   FF aa 9693
1062  FF aa 9693   FF aa 9693   FF aa 9693   FF bb 9693   FF bb 9693   FF bb 9693
1063  FF bb 9693   FF bb 9693   FF bb 9693   GG aa 12239   GG aa 12239
1064  GG aa 12239   GG aa 12239   GG bb 12239   GG bb 12239   GG bb 12239
1065  GG bb 12239   HH aa 12675   HH aa 12675   HH aa 12675   HH bb 12675
1066  HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675
1067  II aa 15579   II aa 15579   II bb 15579   II bb 15579   II bb 15579
1068  II bb 15579   II bb 15579   JJ aa 13551   JJ aa 13551   JJ aa 13551
1069  JJ aa 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551}
1070
1071do_execsql_test 1.7.2 {
1072  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1073} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
1074  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
1075  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
1076  BB bb 7558   BB bb 7558   CC aa 9718   CC aa 9718   CC aa 9718   CC aa 9718
1077  CC bb 9294   CC bb 9294   DD aa 7589   DD aa 7589   DD aa 7589   DD bb 4447
1078  DD bb 4447   DD bb 4447   DD bb 4447   EE aa 5200   EE aa 5200   EE bb 4922
1079  EE bb 4922   EE bb 4922   FF aa 5246   FF aa 5246   FF aa 5246   FF aa 5246
1080  FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702
1081  GG aa 7317   GG aa 7317   GG aa 7317   GG aa 7317   GG bb 7265   GG bb 7265
1082  GG bb 7265   GG bb 7265   HH aa 7973   HH aa 7973   HH aa 7973   HH bb 6717
1083  HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   II aa 8314
1084  II aa 8314   II bb 6493   II bb 6493   II bb 6493   II bb 6493   II bb 6493
1085  JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ bb 5654   JJ bb 5654
1086  JJ bb 5654   JJ bb 5654}
1087
1088do_execsql_test 1.7.3 {
1089  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1090} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1091  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1092  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1093  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1094  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1095  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1096  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1097  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1098  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1099  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1100  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1101  JJ bb 73   JJ bb 73   JJ bb 73}
1102
1103do_execsql_test 1.7.4 {
1104  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1105} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 934   AA bb 934
1106  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1107  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
1108  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
1109  CC bb 840   CC bb 840   DD aa 840   DD aa 840   DD aa 840   DD bb 845
1110  DD bb 845   DD bb 845   DD bb 845   EE aa 959   EE aa 959   EE bb 959
1111  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
1112  FF bb 777   FF bb 777   FF bb 777   FF bb 777   FF bb 777   FF bb 777
1113  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1114  GG bb 938   GG bb 938   HH aa 938   HH aa 938   HH aa 938   HH bb 979
1115  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1116  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
1117  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
1118  JJ bb 899   JJ bb 899}
1119
1120do_execsql_test 1.7.5 {
1121  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1122} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 223   AA bb 223
1123  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1124  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
1125  BB bb 223   BB bb 223   CC aa 247   CC aa 247   CC aa 247   CC aa 247
1126  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
1127  DD bb 158   DD bb 158   DD bb 158   EE aa 224   EE aa 224   EE bb 113
1128  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1129  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
1130  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1131  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 148
1132  HH bb 148   HH bb 148   HH bb 148   HH bb 148   HH bb 148   II aa 133
1133  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1134  JJ aa 133   JJ aa 133   JJ aa 133   JJ aa 133   JJ bb 113   JJ bb 113
1135  JJ bb 113   JJ bb 113}
1136
1137do_execsql_test 1.7.6 {
1138  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1139} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
1140  AA bb {}   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
1141  BB aa 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685   BB bb 4685
1142  BB bb 4685   CC aa 12025   CC aa 12025   CC aa 12025   CC aa 12025
1143  CC bb 12025   CC bb 12025   DD aa 15147   DD aa 15147   DD aa 15147
1144  DD bb 15147   DD bb 15147   DD bb 15147   DD bb 15147   EE aa 14494
1145  EE aa 14494   EE bb 14494   EE bb 14494   EE bb 14494   FF aa 9693
1146  FF aa 9693   FF aa 9693   FF aa 9693   FF bb 9693   FF bb 9693   FF bb 9693
1147  FF bb 9693   FF bb 9693   FF bb 9693   GG aa 12239   GG aa 12239
1148  GG aa 12239   GG aa 12239   GG bb 12239   GG bb 12239   GG bb 12239
1149  GG bb 12239   HH aa 12675   HH aa 12675   HH aa 12675   HH bb 12675
1150  HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675   HH bb 12675
1151  II aa 15579   II aa 15579   II bb 15579   II bb 15579   II bb 15579
1152  II bb 15579   II bb 15579   JJ aa 13551   JJ aa 13551   JJ aa 13551
1153  JJ aa 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551   JJ bb 13551}
1154
1155do_execsql_test 1.7.7 {
1156  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1157} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb 2307   AA bb 2307
1158  AA bb 2307   AA bb 2307   BB aa 4685   BB aa 4685   BB aa 4685   BB aa 4685
1159  BB aa 4685   BB aa 4685   BB bb 7558   BB bb 7558   BB bb 7558   BB bb 7558
1160  BB bb 7558   BB bb 7558   CC aa 9718   CC aa 9718   CC aa 9718   CC aa 9718
1161  CC bb 9294   CC bb 9294   DD aa 7589   DD aa 7589   DD aa 7589   DD bb 4447
1162  DD bb 4447   DD bb 4447   DD bb 4447   EE aa 5200   EE aa 5200   EE bb 4922
1163  EE bb 4922   EE bb 4922   FF aa 5246   FF aa 5246   FF aa 5246   FF aa 5246
1164  FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702   FF bb 4702
1165  GG aa 7317   GG aa 7317   GG aa 7317   GG aa 7317   GG bb 7265   GG bb 7265
1166  GG bb 7265   GG bb 7265   HH aa 7973   HH aa 7973   HH aa 7973   HH bb 6717
1167  HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   HH bb 6717   II aa 8314
1168  II aa 8314   II bb 6493   II bb 6493   II bb 6493   II bb 6493   II bb 6493
1169  JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ aa 6834   JJ bb 5654   JJ bb 5654
1170  JJ bb 5654   JJ bb 5654}
1171
1172do_execsql_test 1.7.8 {
1173  SELECT a, b,
1174      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW),
1175      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING ),
1176      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING  EXCLUDE CURRENT ROW),
1177      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 1 PRECEDING )
1178    FROM t3 ORDER BY 1, 2, 3;
1179} {AA aa {} {} {} {}   AA aa {} {} {} {}   AA aa {} {} {} {}
1180  AA aa {} {} {} {}   AA bb {} {} 2307 2307   AA bb {} {} 2307 2307
1181  AA bb {} {} 2307 2307   AA bb {} {} 2307 2307   BB aa 4685 4685 4685 4685
1182  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
1183  BB aa 4685 4685 4685 4685   BB aa 4685 4685 4685 4685
1184  BB aa 4685 4685 4685 4685   BB bb 4685 4685 7558 7558
1185  BB bb 4685 4685 7558 7558   BB bb 4685 4685 7558 7558
1186  BB bb 4685 4685 7558 7558   BB bb 4685 4685 7558 7558
1187  BB bb 4685 4685 7558 7558   CC aa 12025 12025 9718 9718
1188  CC aa 12025 12025 9718 9718   CC aa 12025 12025 9718 9718
1189  CC aa 12025 12025 9718 9718   CC bb 12025 12025 9294 9294
1190  CC bb 12025 12025 9294 9294   DD aa 15147 15147 7589 7589
1191  DD aa 15147 15147 7589 7589   DD aa 15147 15147 7589 7589
1192  DD bb 15147 15147 4447 4447   DD bb 15147 15147 4447 4447
1193  DD bb 15147 15147 4447 4447   DD bb 15147 15147 4447 4447
1194  EE aa 14494 14494 5200 5200   EE aa 14494 14494 5200 5200
1195  EE bb 14494 14494 4922 4922   EE bb 14494 14494 4922 4922
1196  EE bb 14494 14494 4922 4922   FF aa 9693 9693 5246 5246
1197  FF aa 9693 9693 5246 5246   FF aa 9693 9693 5246 5246
1198  FF aa 9693 9693 5246 5246   FF bb 9693 9693 4702 4702
1199  FF bb 9693 9693 4702 4702   FF bb 9693 9693 4702 4702
1200  FF bb 9693 9693 4702 4702   FF bb 9693 9693 4702 4702
1201  FF bb 9693 9693 4702 4702   GG aa 12239 12239 7317 7317
1202  GG aa 12239 12239 7317 7317   GG aa 12239 12239 7317 7317
1203  GG aa 12239 12239 7317 7317   GG bb 12239 12239 7265 7265
1204  GG bb 12239 12239 7265 7265   GG bb 12239 12239 7265 7265
1205  GG bb 12239 12239 7265 7265   HH aa 12675 12675 7973 7973
1206  HH aa 12675 12675 7973 7973   HH aa 12675 12675 7973 7973
1207  HH bb 12675 12675 6717 6717   HH bb 12675 12675 6717 6717
1208  HH bb 12675 12675 6717 6717   HH bb 12675 12675 6717 6717
1209  HH bb 12675 12675 6717 6717   HH bb 12675 12675 6717 6717
1210  II aa 15579 15579 8314 8314   II aa 15579 15579 8314 8314
1211  II bb 15579 15579 6493 6493   II bb 15579 15579 6493 6493
1212  II bb 15579 15579 6493 6493   II bb 15579 15579 6493 6493
1213  II bb 15579 15579 6493 6493   JJ aa 13551 13551 6834 6834
1214  JJ aa 13551 13551 6834 6834   JJ aa 13551 13551 6834 6834
1215  JJ aa 13551 13551 6834 6834   JJ bb 13551 13551 5654 5654
1216  JJ bb 13551 13551 5654 5654   JJ bb 13551 13551 5654 5654
1217  JJ bb 13551 13551 5654 5654}
1218
1219do_execsql_test 1.8.1 {
1220  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1221} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1222  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
1223  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
1224  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
1225  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
1226  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
1227  DD bb 19179   DD bb 19179   EE aa 17033   EE aa 17033   EE bb 17033
1228  EE bb 17033   EE bb 17033   FF aa 15361   FF aa 15361   FF aa 15361
1229  FF aa 15361   FF bb 15361   FF bb 15361   FF bb 15361   FF bb 15361
1230  FF bb 15361   FF bb 15361   GG aa 16707   GG aa 16707   GG aa 16707
1231  GG aa 16707   GG bb 16707   GG bb 16707   GG bb 16707   GG bb 16707
1232  HH aa 18118   HH aa 18118   HH aa 18118   HH bb 18118   HH bb 18118
1233  HH bb 18118   HH bb 18118   HH bb 18118   HH bb 18118   II aa 19219
1234  II aa 19219   II bb 19219   II bb 19219   II bb 19219   II bb 19219
1235  II bb 19219   JJ aa 17351   JJ aa 17351   JJ aa 17351   JJ aa 17351
1236  JJ bb 17351   JJ bb 17351   JJ bb 17351   JJ bb 17351}
1237
1238do_execsql_test 1.8.2 {
1239  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1240} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
1241  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
1242  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
1243  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 11672   CC aa 11672
1244  CC aa 11672   CC aa 11672   CC bb 10462   CC bb 10462   DD aa 8914
1245  DD aa 8914   DD aa 8914   DD bb 7154   DD bb 7154   DD bb 7154   DD bb 7154
1246  EE aa 6090   EE aa 6090   EE bb 6571   EE bb 6571   EE bb 6571   FF aa 7409
1247  FF aa 7409   FF aa 7409   FF aa 7409   FF bb 8207   FF bb 8207   FF bb 8207
1248  FF bb 8207   FF bb 8207   FF bb 8207   GG aa 8914   GG aa 8914   GG aa 8914
1249  GG aa 8914   GG bb 10136   GG bb 10136   GG bb 10136   GG bb 10136
1250  HH aa 10222   HH aa 10222   HH aa 10222   HH bb 9911   HH bb 9911
1251  HH bb 9911   HH bb 9911   HH bb 9911   HH bb 9911   II aa 9364   II aa 9364
1252  II bb 9083   II bb 9083   II bb 9083   II bb 9083   II bb 9083   JJ aa 8848
1253  JJ aa 8848   JJ aa 8848   JJ aa 8848   JJ bb 7440   JJ bb 7440   JJ bb 7440
1254  JJ bb 7440}
1255
1256do_execsql_test 1.8.3 {
1257  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1258} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1259  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1260  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1261  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1262  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1263  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1264  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1265  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1266  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1267  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1268  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1269  JJ bb 73   JJ bb 73   JJ bb 73}
1270
1271do_execsql_test 1.8.4 {
1272  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1273} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
1274  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1275  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
1276  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
1277  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1278  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
1279  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
1280  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1281  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1282  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1283  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1284  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
1285  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
1286  JJ bb 899   JJ bb 899}
1287
1288do_execsql_test 1.8.5 {
1289  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3;
1290} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
1291  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1292  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
1293  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1294  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
1295  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
1296  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1297  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1298  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1299  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 133
1300  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
1301  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1302  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1303  JJ bb 113   JJ bb 113}
1304
1305do_execsql_test 1.8.6 {
1306  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1307} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1308  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
1309  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
1310  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
1311  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
1312  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
1313  DD bb 18463   DD bb 18941   EE aa 16256   EE aa 16920   EE bb 16265
1314  EE bb 16404   EE bb 16781   FF aa 14691   FF aa 14694   FF aa 14743
1315  FF aa 15153   FF bb 14423   FF bb 14491   FF bb 14635   FF bb 14787
1316  FF bb 15066   FF bb 15259   GG aa 16073   GG aa 16227   GG aa 16372
1317  GG aa 16559   GG bb 15769   GG bb 15778   GG bb 15863   GG bb 16547
1318  HH aa 17139   HH aa 17328   HH aa 17638   HH bb 17155   HH bb 17388
1319  HH bb 17435   HH bb 17763   HH bb 17788   HH bb 17985   II aa 18567
1320  II aa 18821   II bb 18414   II bb 18548   II bb 18776   II bb 18798
1321  II bb 18969   JJ aa 16452   JJ aa 16583   JJ aa 17117   JJ aa 17238
1322  JJ bb 16512   JJ bb 16997   JJ bb 17015   JJ bb 17094}
1323
1324do_execsql_test 1.8.7 {
1325  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1326} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1327  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1328  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
1329  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 10913   CC aa 11065
1330  CC aa 11242   CC aa 11514   CC bb 9640   CC bb 10116   DD aa 8069
1331  DD aa 8658   DD aa 8690   DD bb 6195   DD bb 6360   DD bb 6438   DD bb 6916
1332  EE aa 5313   EE aa 5977   EE bb 5803   EE bb 5942   EE bb 6319   FF aa 6739
1333  FF aa 6742   FF aa 6791   FF aa 7201   FF bb 7269   FF bb 7337   FF bb 7481
1334  FF bb 7633   FF bb 7912   FF bb 8105   GG aa 8280   GG aa 8434   GG aa 8579
1335  GG aa 8766   GG bb 9198   GG bb 9207   GG bb 9292   GG bb 9976   HH aa 9243
1336  HH aa 9432   HH aa 9742   HH bb 8948   HH bb 9181   HH bb 9228   HH bb 9556
1337  HH bb 9581   HH bb 9778   II aa 8712   II aa 8966   II bb 8278   II bb 8412
1338  II bb 8640   II bb 8662   II bb 8833   JJ aa 7949   JJ aa 8080   JJ aa 8614
1339  JJ aa 8735   JJ bb 6601   JJ bb 7086   JJ bb 7104   JJ bb 7183}
1340
1341do_execsql_test 1.8.8 {
1342  SELECT a, b,
1343      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW),
1344      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING ),
1345      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING  EXCLUDE CURRENT ROW),
1346      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 PRECEDING )
1347    FROM t3 ORDER BY 1, 2, 3;
1348} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
1349  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
1350  AA bb 3815 4685 3815 4685   AA bb 4058 4685 4058 4685
1351  AA bb 4113 4685 4113 4685   AA bb 4376 4685 4376 4685
1352  BB aa 11263 12025 6796 7558   BB aa 11365 12025 6898 7558
1353  BB aa 11613 12025 7146 7558   BB aa 11626 12025 7159 7558
1354  BB aa 11632 12025 7165 7558   BB aa 11778 12025 7311 7558
1355  BB bb 11185 12025 11185 12025   BB bb 11233 12025 11233 12025
1356  BB bb 11239 12025 11239 12025   BB bb 11314 12025 11314 12025
1357  BB bb 11320 12025 11320 12025   BB bb 11392 12025 11392 12025
1358  CC aa 14388 15147 10913 11672   CC aa 14540 15147 11065 11672
1359  CC aa 14717 15147 11242 11672   CC aa 14989 15147 11514 11672
1360  CC bb 14325 15147 9640 10462   CC bb 14801 15147 10116 10462
1361  DD aa 18334 19179 8069 8914   DD aa 18923 19179 8658 8914
1362  DD aa 18955 19179 8690 8914   DD bb 18220 19179 6195 7154
1363  DD bb 18385 19179 6360 7154   DD bb 18463 19179 6438 7154
1364  DD bb 18941 19179 6916 7154   EE aa 16256 17033 5313 6090
1365  EE aa 16920 17033 5977 6090   EE bb 16265 17033 5803 6571
1366  EE bb 16404 17033 5942 6571   EE bb 16781 17033 6319 6571
1367  FF aa 14691 15361 6739 7409   FF aa 14694 15361 6742 7409
1368  FF aa 14743 15361 6791 7409   FF aa 15153 15361 7201 7409
1369  FF bb 14423 15361 7269 8207   FF bb 14491 15361 7337 8207
1370  FF bb 14635 15361 7481 8207   FF bb 14787 15361 7633 8207
1371  FF bb 15066 15361 7912 8207   FF bb 15259 15361 8105 8207
1372  GG aa 16073 16707 8280 8914   GG aa 16227 16707 8434 8914
1373  GG aa 16372 16707 8579 8914   GG aa 16559 16707 8766 8914
1374  GG bb 15769 16707 9198 10136   GG bb 15778 16707 9207 10136
1375  GG bb 15863 16707 9292 10136   GG bb 16547 16707 9976 10136
1376  HH aa 17139 18118 9243 10222   HH aa 17328 18118 9432 10222
1377  HH aa 17638 18118 9742 10222   HH bb 17155 18118 8948 9911
1378  HH bb 17388 18118 9181 9911   HH bb 17435 18118 9228 9911
1379  HH bb 17763 18118 9556 9911   HH bb 17788 18118 9581 9911
1380  HH bb 17985 18118 9778 9911   II aa 18567 19219 8712 9364
1381  II aa 18821 19219 8966 9364   II bb 18414 19219 8278 9083
1382  II bb 18548 19219 8412 9083   II bb 18776 19219 8640 9083
1383  II bb 18798 19219 8662 9083   II bb 18969 19219 8833 9083
1384  JJ aa 16452 17351 7949 8848   JJ aa 16583 17351 8080 8848
1385  JJ aa 17117 17351 8614 8848   JJ aa 17238 17351 8735 8848
1386  JJ bb 16512 17351 6601 7440   JJ bb 16997 17351 7086 7440
1387  JJ bb 17015 17351 7104 7440   JJ bb 17094 17351 7183 7440}
1388
1389do_execsql_test 1.9.1 {
1390  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1391} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1392  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
1393  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
1394  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
1395  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
1396  DD aa 14494   DD aa 14494   DD aa 14494   DD bb 14494   DD bb 14494
1397  DD bb 14494   DD bb 14494   EE aa 9693   EE aa 9693   EE bb 9693
1398  EE bb 9693   EE bb 9693   FF aa 12239   FF aa 12239   FF aa 12239
1399  FF aa 12239   FF bb 12239   FF bb 12239   FF bb 12239   FF bb 12239
1400  FF bb 12239   FF bb 12239   GG aa 12675   GG aa 12675   GG aa 12675
1401  GG aa 12675   GG bb 12675   GG bb 12675   GG bb 12675   GG bb 12675
1402  HH aa 15579   HH aa 15579   HH aa 15579   HH bb 15579   HH bb 15579
1403  HH bb 15579   HH bb 15579   HH bb 15579   HH bb 15579   II aa 13551
1404  II aa 13551   II bb 13551   II bb 13551   II bb 13551   II bb 13551
1405  II bb 13551   JJ aa 12883   JJ aa 12883   JJ aa 12883   JJ aa 12883
1406  JJ bb 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883}
1407
1408do_execsql_test 1.9.2 {
1409  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1410} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
1411  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
1412  BB aa 7558   BB aa 7558   BB bb 9718   BB bb 9718   BB bb 9718   BB bb 9718
1413  BB bb 9718   BB bb 9718   CC aa 9294   CC aa 9294   CC aa 9294   CC aa 9294
1414  CC bb 7589   CC bb 7589   DD aa 4447   DD aa 4447   DD aa 4447   DD bb 5200
1415  DD bb 5200   DD bb 5200   DD bb 5200   EE aa 4922   EE aa 4922   EE bb 5246
1416  EE bb 5246   EE bb 5246   FF aa 4702   FF aa 4702   FF aa 4702   FF aa 4702
1417  FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317   FF bb 7317
1418  GG aa 7265   GG aa 7265   GG aa 7265   GG aa 7265   GG bb 7973   GG bb 7973
1419  GG bb 7973   GG bb 7973   HH aa 6717   HH aa 6717   HH aa 6717   HH bb 8314
1420  HH bb 8314   HH bb 8314   HH bb 8314   HH bb 8314   HH bb 8314   II aa 6493
1421  II aa 6493   II bb 6834   II bb 6834   II bb 6834   II bb 6834   II bb 6834
1422  JJ aa 5654   JJ aa 5654   JJ aa 5654   JJ aa 5654   JJ bb 6390   JJ bb 6390
1423  JJ bb 6390   JJ bb 6390}
1424
1425do_execsql_test 1.9.3 {
1426  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1427} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1428  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1429  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1430  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1431  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1432  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1433  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1434  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1435  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1436  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1437  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1438  JJ bb 73   JJ bb 73   JJ bb 73}
1439
1440do_execsql_test 1.9.4 {
1441  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1442} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
1443  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1444  BB aa 934   BB aa 934   BB bb 870   BB bb 870   BB bb 870   BB bb 870
1445  BB bb 870   BB bb 870   CC aa 840   CC aa 840   CC aa 840   CC aa 840
1446  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1447  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
1448  EE bb 959   EE bb 959   FF aa 777   FF aa 777   FF aa 777   FF aa 777
1449  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1450  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1451  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1452  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1453  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
1454  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 899   JJ bb 899
1455  JJ bb 899   JJ bb 899}
1456
1457do_execsql_test 1.9.5 {
1458  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3;
1459} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
1460  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1461  BB aa 223   BB aa 223   BB bb 247   BB bb 247   BB bb 247   BB bb 247
1462  BB bb 247   BB bb 247   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1463  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 224
1464  DD bb 224   DD bb 224   DD bb 224   EE aa 113   EE aa 113   EE bb 113
1465  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1466  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1467  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1468  GG bb 102   GG bb 102   HH aa 148   HH aa 148   HH aa 148   HH bb 133
1469  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
1470  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1471  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1472  JJ bb 113   JJ bb 113}
1473
1474do_execsql_test 1.9.6 {
1475  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1476} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1477  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
1478  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
1479  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
1480  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
1481  DD aa 13649   DD aa 14238   DD aa 14270   DD bb 13535   DD bb 13700
1482  DD bb 13778   DD bb 14256   EE aa 8916   EE aa 9580   EE bb 8925
1483  EE bb 9064   EE bb 9441   FF aa 11569   FF aa 11572   FF aa 11621
1484  FF aa 12031   FF bb 11301   FF bb 11369   FF bb 11513   FF bb 11665
1485  FF bb 11944   FF bb 12137   GG aa 12041   GG aa 12195   GG aa 12340
1486  GG aa 12527   GG bb 11737   GG bb 11746   GG bb 11831   GG bb 12515
1487  HH aa 14600   HH aa 14789   HH aa 15099   HH bb 14616   HH bb 14849
1488  HH bb 14896   HH bb 15224   HH bb 15249   HH bb 15446   II aa 12899
1489  II aa 13153   II bb 12746   II bb 12880   II bb 13108   II bb 13130
1490  II bb 13301   JJ aa 11984   JJ aa 12115   JJ aa 12649   JJ aa 12770
1491  JJ bb 12044   JJ bb 12529   JJ bb 12547   JJ bb 12626}
1492
1493do_execsql_test 1.9.7 {
1494  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1495} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1496  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1497  BB aa 7165   BB aa 7311   BB bb 8878   BB bb 8926   BB bb 8932   BB bb 9007
1498  BB bb 9013   BB bb 9085   CC aa 8535   CC aa 8687   CC aa 8864   CC aa 9136
1499  CC bb 6767   CC bb 7243   DD aa 3602   DD aa 4191   DD aa 4223   DD bb 4241
1500  DD bb 4406   DD bb 4484   DD bb 4962   EE aa 4145   EE aa 4809   EE bb 4478
1501  EE bb 4617   EE bb 4994   FF aa 4032   FF aa 4035   FF aa 4084   FF aa 4494
1502  FF bb 6379   FF bb 6447   FF bb 6591   FF bb 6743   FF bb 7022   FF bb 7215
1503  GG aa 6631   GG aa 6785   GG aa 6930   GG aa 7117   GG bb 7035   GG bb 7044
1504  GG bb 7129   GG bb 7813   HH aa 5738   HH aa 5927   HH aa 6237   HH bb 7351
1505  HH bb 7584   HH bb 7631   HH bb 7959   HH bb 7984   HH bb 8181   II aa 5841
1506  II aa 6095   II bb 6029   II bb 6163   II bb 6391   II bb 6413   II bb 6584
1507  JJ aa 4755   JJ aa 4886   JJ aa 5420   JJ aa 5541   JJ bb 5551   JJ bb 6036
1508  JJ bb 6054   JJ bb 6133}
1509
1510do_execsql_test 1.9.8 {
1511  SELECT a, b,
1512      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW),
1513      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW ),
1514      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW  EXCLUDE CURRENT ROW),
1515      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND CURRENT ROW )
1516    FROM t3 ORDER BY 1, 2, 3;
1517} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
1518  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
1519  AA bb 3815 4685 3815 4685   AA bb 4058 4685 4058 4685
1520  AA bb 4113 4685 4113 4685   AA bb 4376 4685 4376 4685
1521  BB aa 11263 12025 6796 7558   BB aa 11365 12025 6898 7558
1522  BB aa 11613 12025 7146 7558   BB aa 11626 12025 7159 7558
1523  BB aa 11632 12025 7165 7558   BB aa 11778 12025 7311 7558
1524  BB bb 11185 12025 8878 9718   BB bb 11233 12025 8926 9718
1525  BB bb 11239 12025 8932 9718   BB bb 11314 12025 9007 9718
1526  BB bb 11320 12025 9013 9718   BB bb 11392 12025 9085 9718
1527  CC aa 14388 15147 8535 9294   CC aa 14540 15147 8687 9294
1528  CC aa 14717 15147 8864 9294   CC aa 14989 15147 9136 9294
1529  CC bb 14325 15147 6767 7589   CC bb 14801 15147 7243 7589
1530  DD aa 13649 14494 3602 4447   DD aa 14238 14494 4191 4447
1531  DD aa 14270 14494 4223 4447   DD bb 13535 14494 4241 5200
1532  DD bb 13700 14494 4406 5200   DD bb 13778 14494 4484 5200
1533  DD bb 14256 14494 4962 5200   EE aa 8916 9693 4145 4922
1534  EE aa 9580 9693 4809 4922   EE bb 8925 9693 4478 5246
1535  EE bb 9064 9693 4617 5246   EE bb 9441 9693 4994 5246
1536  FF aa 11569 12239 4032 4702   FF aa 11572 12239 4035 4702
1537  FF aa 11621 12239 4084 4702   FF aa 12031 12239 4494 4702
1538  FF bb 11301 12239 6379 7317   FF bb 11369 12239 6447 7317
1539  FF bb 11513 12239 6591 7317   FF bb 11665 12239 6743 7317
1540  FF bb 11944 12239 7022 7317   FF bb 12137 12239 7215 7317
1541  GG aa 12041 12675 6631 7265   GG aa 12195 12675 6785 7265
1542  GG aa 12340 12675 6930 7265   GG aa 12527 12675 7117 7265
1543  GG bb 11737 12675 7035 7973   GG bb 11746 12675 7044 7973
1544  GG bb 11831 12675 7129 7973   GG bb 12515 12675 7813 7973
1545  HH aa 14600 15579 5738 6717   HH aa 14789 15579 5927 6717
1546  HH aa 15099 15579 6237 6717   HH bb 14616 15579 7351 8314
1547  HH bb 14849 15579 7584 8314   HH bb 14896 15579 7631 8314
1548  HH bb 15224 15579 7959 8314   HH bb 15249 15579 7984 8314
1549  HH bb 15446 15579 8181 8314   II aa 12899 13551 5841 6493
1550  II aa 13153 13551 6095 6493   II bb 12746 13551 6029 6834
1551  II bb 12880 13551 6163 6834   II bb 13108 13551 6391 6834
1552  II bb 13130 13551 6413 6834   II bb 13301 13551 6584 6834
1553  JJ aa 11984 12883 4755 5654   JJ aa 12115 12883 4886 5654
1554  JJ aa 12649 12883 5420 5654   JJ aa 12770 12883 5541 5654
1555  JJ bb 12044 12883 5551 6390   JJ bb 12529 12883 6036 6390
1556  JJ bb 12547 12883 6054 6390   JJ bb 12626 12883 6133 6390}
1557
1558do_execsql_test 1.10.1 {
1559  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1560} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1561  AA bb 4685   AA bb 4685   BB aa 12025   BB aa 12025   BB aa 12025
1562  BB aa 12025   BB aa 12025   BB aa 12025   BB bb 12025   BB bb 12025
1563  BB bb 12025   BB bb 12025   BB bb 12025   BB bb 12025   CC aa 15147
1564  CC aa 15147   CC aa 15147   CC aa 15147   CC bb 15147   CC bb 15147
1565  DD aa 19179   DD aa 19179   DD aa 19179   DD bb 19179   DD bb 19179
1566  DD bb 19179   DD bb 19179   EE aa 17033   EE aa 17033   EE bb 17033
1567  EE bb 17033   EE bb 17033   FF aa 15361   FF aa 15361   FF aa 15361
1568  FF aa 15361   FF bb 15361   FF bb 15361   FF bb 15361   FF bb 15361
1569  FF bb 15361   FF bb 15361   GG aa 16707   GG aa 16707   GG aa 16707
1570  GG aa 16707   GG bb 16707   GG bb 16707   GG bb 16707   GG bb 16707
1571  HH aa 18118   HH aa 18118   HH aa 18118   HH bb 18118   HH bb 18118
1572  HH bb 18118   HH bb 18118   HH bb 18118   HH bb 18118   II aa 19219
1573  II aa 19219   II bb 19219   II bb 19219   II bb 19219   II bb 19219
1574  II bb 19219   JJ aa 17351   JJ aa 17351   JJ aa 17351   JJ aa 17351
1575  JJ bb 17351   JJ bb 17351   JJ bb 17351   JJ bb 17351}
1576
1577do_execsql_test 1.10.2 {
1578  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1579} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 4685   AA bb 4685
1580  AA bb 4685   AA bb 4685   BB aa 7558   BB aa 7558   BB aa 7558   BB aa 7558
1581  BB aa 7558   BB aa 7558   BB bb 12025   BB bb 12025   BB bb 12025
1582  BB bb 12025   BB bb 12025   BB bb 12025   CC aa 11672   CC aa 11672
1583  CC aa 11672   CC aa 11672   CC bb 10462   CC bb 10462   DD aa 8914
1584  DD aa 8914   DD aa 8914   DD bb 7154   DD bb 7154   DD bb 7154   DD bb 7154
1585  EE aa 6090   EE aa 6090   EE bb 6571   EE bb 6571   EE bb 6571   FF aa 7409
1586  FF aa 7409   FF aa 7409   FF aa 7409   FF bb 8207   FF bb 8207   FF bb 8207
1587  FF bb 8207   FF bb 8207   FF bb 8207   GG aa 8914   GG aa 8914   GG aa 8914
1588  GG aa 8914   GG bb 10136   GG bb 10136   GG bb 10136   GG bb 10136
1589  HH aa 10222   HH aa 10222   HH aa 10222   HH bb 9911   HH bb 9911
1590  HH bb 9911   HH bb 9911   HH bb 9911   HH bb 9911   II aa 9364   II aa 9364
1591  II bb 9083   II bb 9083   II bb 9083   II bb 9083   II bb 9083   JJ aa 8848
1592  JJ aa 8848   JJ aa 8848   JJ aa 8848   JJ bb 7440   JJ bb 7440   JJ bb 7440
1593  JJ bb 7440}
1594
1595do_execsql_test 1.10.3 {
1596  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1597} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1598  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1599  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1600  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1601  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1602  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1603  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1604  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1605  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1606  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1607  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1608  JJ bb 73   JJ bb 73   JJ bb 73}
1609
1610do_execsql_test 1.10.4 {
1611  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1612} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 934   AA bb 934
1613  AA bb 934   AA bb 934   BB aa 934   BB aa 934   BB aa 934   BB aa 934
1614  BB aa 934   BB aa 934   BB bb 934   BB bb 934   BB bb 934   BB bb 934
1615  BB bb 934   BB bb 934   CC aa 870   CC aa 870   CC aa 870   CC aa 870
1616  CC bb 840   CC bb 840   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1617  DD bb 959   DD bb 959   DD bb 959   EE aa 959   EE aa 959   EE bb 959
1618  EE bb 959   EE bb 959   FF aa 959   FF aa 959   FF aa 959   FF aa 959
1619  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1620  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 938   GG bb 938
1621  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1622  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1623  II aa 979   II bb 979   II bb 979   II bb 979   II bb 979   II bb 979
1624  JJ aa 963   JJ aa 963   JJ aa 963   JJ aa 963   JJ bb 899   JJ bb 899
1625  JJ bb 899   JJ bb 899}
1626
1627do_execsql_test 1.10.5 {
1628  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1629} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 223   AA bb 223
1630  AA bb 223   AA bb 223   BB aa 223   BB aa 223   BB aa 223   BB aa 223
1631  BB aa 223   BB aa 223   BB bb 223   BB bb 223   BB bb 223   BB bb 223
1632  BB bb 223   BB bb 223   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1633  CC bb 158   CC bb 158   DD aa 158   DD aa 158   DD aa 158   DD bb 158
1634  DD bb 158   DD bb 158   DD bb 158   EE aa 113   EE aa 113   EE bb 113
1635  EE bb 113   EE bb 113   FF aa 113   FF aa 113   FF aa 113   FF aa 113
1636  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1637  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1638  GG bb 102   GG bb 102   HH aa 102   HH aa 102   HH aa 102   HH bb 133
1639  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 133
1640  II aa 133   II bb 133   II bb 133   II bb 133   II bb 133   II bb 133
1641  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1642  JJ bb 113   JJ bb 113}
1643
1644do_execsql_test 1.10.6 {
1645  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1646} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1647  AA bb 4113   AA bb 4376   BB aa 11263   BB aa 11365   BB aa 11613
1648  BB aa 11626   BB aa 11632   BB aa 11778   BB bb 11185   BB bb 11233
1649  BB bb 11239   BB bb 11314   BB bb 11320   BB bb 11392   CC aa 14388
1650  CC aa 14540   CC aa 14717   CC aa 14989   CC bb 14325   CC bb 14801
1651  DD aa 18334   DD aa 18923   DD aa 18955   DD bb 18220   DD bb 18385
1652  DD bb 18463   DD bb 18941   EE aa 16256   EE aa 16920   EE bb 16265
1653  EE bb 16404   EE bb 16781   FF aa 14691   FF aa 14694   FF aa 14743
1654  FF aa 15153   FF bb 14423   FF bb 14491   FF bb 14635   FF bb 14787
1655  FF bb 15066   FF bb 15259   GG aa 16073   GG aa 16227   GG aa 16372
1656  GG aa 16559   GG bb 15769   GG bb 15778   GG bb 15863   GG bb 16547
1657  HH aa 17139   HH aa 17328   HH aa 17638   HH bb 17155   HH bb 17388
1658  HH bb 17435   HH bb 17763   HH bb 17788   HH bb 17985   II aa 18567
1659  II aa 18821   II bb 18414   II bb 18548   II bb 18776   II bb 18798
1660  II bb 18969   JJ aa 16452   JJ aa 16583   JJ aa 17117   JJ aa 17238
1661  JJ bb 16512   JJ bb 16997   JJ bb 17015   JJ bb 17094}
1662
1663do_execsql_test 1.10.7 {
1664  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1665} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 3815   AA bb 4058
1666  AA bb 4113   AA bb 4376   BB aa 6796   BB aa 6898   BB aa 7146   BB aa 7159
1667  BB aa 7165   BB aa 7311   BB bb 11185   BB bb 11233   BB bb 11239
1668  BB bb 11314   BB bb 11320   BB bb 11392   CC aa 10913   CC aa 11065
1669  CC aa 11242   CC aa 11514   CC bb 9640   CC bb 10116   DD aa 8069
1670  DD aa 8658   DD aa 8690   DD bb 6195   DD bb 6360   DD bb 6438   DD bb 6916
1671  EE aa 5313   EE aa 5977   EE bb 5803   EE bb 5942   EE bb 6319   FF aa 6739
1672  FF aa 6742   FF aa 6791   FF aa 7201   FF bb 7269   FF bb 7337   FF bb 7481
1673  FF bb 7633   FF bb 7912   FF bb 8105   GG aa 8280   GG aa 8434   GG aa 8579
1674  GG aa 8766   GG bb 9198   GG bb 9207   GG bb 9292   GG bb 9976   HH aa 9243
1675  HH aa 9432   HH aa 9742   HH bb 8948   HH bb 9181   HH bb 9228   HH bb 9556
1676  HH bb 9581   HH bb 9778   II aa 8712   II aa 8966   II bb 8278   II bb 8412
1677  II bb 8640   II bb 8662   II bb 8833   JJ aa 7949   JJ aa 8080   JJ aa 8614
1678  JJ aa 8735   JJ bb 6601   JJ bb 7086   JJ bb 7104   JJ bb 7183}
1679
1680do_execsql_test 1.10.8 {
1681  SELECT a, b,
1682      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
1683      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING ),
1684      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
1685      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 3 PRECEDING         AND 0 FOLLOWING )
1686    FROM t3 ORDER BY 1, 2, 3;
1687} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
1688  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
1689  AA bb 3815 4685 3815 4685   AA bb 4058 4685 4058 4685
1690  AA bb 4113 4685 4113 4685   AA bb 4376 4685 4376 4685
1691  BB aa 11263 12025 6796 7558   BB aa 11365 12025 6898 7558
1692  BB aa 11613 12025 7146 7558   BB aa 11626 12025 7159 7558
1693  BB aa 11632 12025 7165 7558   BB aa 11778 12025 7311 7558
1694  BB bb 11185 12025 11185 12025   BB bb 11233 12025 11233 12025
1695  BB bb 11239 12025 11239 12025   BB bb 11314 12025 11314 12025
1696  BB bb 11320 12025 11320 12025   BB bb 11392 12025 11392 12025
1697  CC aa 14388 15147 10913 11672   CC aa 14540 15147 11065 11672
1698  CC aa 14717 15147 11242 11672   CC aa 14989 15147 11514 11672
1699  CC bb 14325 15147 9640 10462   CC bb 14801 15147 10116 10462
1700  DD aa 18334 19179 8069 8914   DD aa 18923 19179 8658 8914
1701  DD aa 18955 19179 8690 8914   DD bb 18220 19179 6195 7154
1702  DD bb 18385 19179 6360 7154   DD bb 18463 19179 6438 7154
1703  DD bb 18941 19179 6916 7154   EE aa 16256 17033 5313 6090
1704  EE aa 16920 17033 5977 6090   EE bb 16265 17033 5803 6571
1705  EE bb 16404 17033 5942 6571   EE bb 16781 17033 6319 6571
1706  FF aa 14691 15361 6739 7409   FF aa 14694 15361 6742 7409
1707  FF aa 14743 15361 6791 7409   FF aa 15153 15361 7201 7409
1708  FF bb 14423 15361 7269 8207   FF bb 14491 15361 7337 8207
1709  FF bb 14635 15361 7481 8207   FF bb 14787 15361 7633 8207
1710  FF bb 15066 15361 7912 8207   FF bb 15259 15361 8105 8207
1711  GG aa 16073 16707 8280 8914   GG aa 16227 16707 8434 8914
1712  GG aa 16372 16707 8579 8914   GG aa 16559 16707 8766 8914
1713  GG bb 15769 16707 9198 10136   GG bb 15778 16707 9207 10136
1714  GG bb 15863 16707 9292 10136   GG bb 16547 16707 9976 10136
1715  HH aa 17139 18118 9243 10222   HH aa 17328 18118 9432 10222
1716  HH aa 17638 18118 9742 10222   HH bb 17155 18118 8948 9911
1717  HH bb 17388 18118 9181 9911   HH bb 17435 18118 9228 9911
1718  HH bb 17763 18118 9556 9911   HH bb 17788 18118 9581 9911
1719  HH bb 17985 18118 9778 9911   II aa 18567 19219 8712 9364
1720  II aa 18821 19219 8966 9364   II bb 18414 19219 8278 9083
1721  II bb 18548 19219 8412 9083   II bb 18776 19219 8640 9083
1722  II bb 18798 19219 8662 9083   II bb 18969 19219 8833 9083
1723  JJ aa 16452 17351 7949 8848   JJ aa 16583 17351 8080 8848
1724  JJ aa 17117 17351 8614 8848   JJ aa 17238 17351 8735 8848
1725  JJ bb 16512 17351 6601 7440   JJ bb 16997 17351 7086 7440
1726  JJ bb 17015 17351 7104 7440   JJ bb 17094 17351 7183 7440}
1727
1728do_execsql_test 1.11.1 {
1729  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1730} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1731  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
1732  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 44737
1733  BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737   BB bb 44737
1734  CC aa 44737   CC aa 44737   CC aa 44737   CC aa 44737   CC bb 44737
1735  CC bb 44737   DD aa 40052   DD aa 40052   DD aa 40052   DD bb 40052
1736  DD bb 40052   DD bb 40052   DD bb 40052   EE aa 32712   EE aa 32712
1737  EE bb 32712   EE bb 32712   EE bb 32712   FF aa 29590   FF aa 29590
1738  FF aa 29590   FF aa 29590   FF bb 29590   FF bb 29590   FF bb 29590
1739  FF bb 29590   FF bb 29590   FF bb 29590   GG aa 25558   GG aa 25558
1740  GG aa 25558   GG aa 25558   GG bb 25558   GG bb 25558   GG bb 25558
1741  GG bb 25558   HH aa 23019   HH aa 23019   HH aa 23019   HH bb 23019
1742  HH bb 23019   HH bb 23019   HH bb 23019   HH bb 23019   HH bb 23019
1743  II aa 17351   II aa 17351   II bb 17351   II bb 17351   II bb 17351
1744  II bb 17351   II bb 17351   JJ aa 12883   JJ aa 12883   JJ aa 12883
1745  JJ aa 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883   JJ bb 12883}
1746
1747do_execsql_test 1.11.2 {
1748  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1749} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
1750  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 44737   BB aa 44737
1751  BB aa 44737   BB aa 44737   BB aa 44737   BB aa 44737   BB bb 42430
1752  BB bb 42430   BB bb 42430   BB bb 42430   BB bb 42430   BB bb 42430
1753  CC aa 40052   CC aa 40052   CC aa 40052   CC aa 40052   CC bb 37179
1754  CC bb 37179   DD aa 32712   DD aa 32712   DD aa 32712   DD bb 30758
1755  DD bb 30758   DD bb 30758   DD bb 30758   EE aa 29590   EE aa 29590
1756  EE bb 28265   EE bb 28265   EE bb 28265   FF aa 25558   FF aa 25558
1757  FF aa 25558   FF aa 25558   FF bb 24668   FF bb 24668   FF bb 24668
1758  FF bb 24668   FF bb 24668   FF bb 24668   GG aa 23019   GG aa 23019
1759  GG aa 23019   GG aa 23019   GG bb 20856   GG bb 20856   GG bb 20856
1760  GG bb 20856   HH aa 17351   HH aa 17351   HH aa 17351   HH bb 15754
1761  HH bb 15754   HH bb 15754   HH bb 15754   HH bb 15754   HH bb 15754
1762  II aa 12883   II aa 12883   II bb 10634   II bb 10634   II bb 10634
1763  II bb 10634   II bb 10634   JJ aa 7440   JJ aa 7440   JJ aa 7440
1764  JJ aa 7440   JJ bb 6390   JJ bb 6390   JJ bb 6390   JJ bb 6390}
1765
1766do_execsql_test 1.11.3 {
1767  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1768} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1769  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1770  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1771  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1772  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1773  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1774  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1775  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1776  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1777  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1778  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1779  JJ bb 73   JJ bb 73   JJ bb 73}
1780
1781do_execsql_test 1.11.4 {
1782  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1783} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
1784  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
1785  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
1786  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
1787  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
1788  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
1789  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
1790  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
1791  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
1792  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 979
1793  HH bb 979   HH bb 979   HH bb 979   HH bb 979   HH bb 979   II aa 979
1794  II aa 979   II bb 963   II bb 963   II bb 963   II bb 963   II bb 963
1795  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 899   JJ bb 899
1796  JJ bb 899   JJ bb 899}
1797
1798do_execsql_test 1.11.5 {
1799  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1800} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
1801  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
1802  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
1803  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
1804  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
1805  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
1806  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
1807  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1808  GG aa 102   GG aa 102   GG aa 102   GG aa 102   GG bb 102   GG bb 102
1809  GG bb 102   GG bb 102   HH aa 113   HH aa 113   HH aa 113   HH bb 113
1810  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
1811  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
1812  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 113   JJ bb 113
1813  JJ bb 113   JJ bb 113}
1814
1815do_execsql_test 1.11.6 {
1816  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1817} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1818  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
1819  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 43897
1820  BB bb 43945   BB bb 43951   BB bb 44026   BB bb 44032   BB bb 44104
1821  CC aa 43978   CC aa 44130   CC aa 44307   CC aa 44579   CC bb 43915
1822  CC bb 44391   DD aa 39207   DD aa 39796   DD aa 39828   DD bb 39093
1823  DD bb 39258   DD bb 39336   DD bb 39814   EE aa 31935   EE aa 32599
1824  EE bb 31944   EE bb 32083   EE bb 32460   FF aa 28920   FF aa 28923
1825  FF aa 28972   FF aa 29382   FF bb 28652   FF bb 28720   FF bb 28864
1826  FF bb 29016   FF bb 29295   FF bb 29488   GG aa 24924   GG aa 25078
1827  GG aa 25223   GG aa 25410   GG bb 24620   GG bb 24629   GG bb 24714
1828  GG bb 25398   HH aa 22040   HH aa 22229   HH aa 22539   HH bb 22056
1829  HH bb 22289   HH bb 22336   HH bb 22664   HH bb 22689   HH bb 22886
1830  II aa 16699   II aa 16953   II bb 16546   II bb 16680   II bb 16908
1831  II bb 16930   II bb 17101   JJ aa 11984   JJ aa 12115   JJ aa 12649
1832  JJ aa 12770   JJ bb 12044   JJ bb 12529   JJ bb 12547   JJ bb 12626}
1833
1834do_execsql_test 1.11.7 {
1835  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1836} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
1837  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 43975   BB aa 44077
1838  BB aa 44325   BB aa 44338   BB aa 44344   BB aa 44490   BB bb 41590
1839  BB bb 41638   BB bb 41644   BB bb 41719   BB bb 41725   BB bb 41797
1840  CC aa 39293   CC aa 39445   CC aa 39622   CC aa 39894   CC bb 36357
1841  CC bb 36833   DD aa 31867   DD aa 32456   DD aa 32488   DD bb 29799
1842  DD bb 29964   DD bb 30042   DD bb 30520   EE aa 28813   EE aa 29477
1843  EE bb 27497   EE bb 27636   EE bb 28013   FF aa 24888   FF aa 24891
1844  FF aa 24940   FF aa 25350   FF bb 23730   FF bb 23798   FF bb 23942
1845  FF bb 24094   FF bb 24373   FF bb 24566   GG aa 22385   GG aa 22539
1846  GG aa 22684   GG aa 22871   GG bb 19918   GG bb 19927   GG bb 20012
1847  GG bb 20696   HH aa 16372   HH aa 16561   HH aa 16871   HH bb 14791
1848  HH bb 15024   HH bb 15071   HH bb 15399   HH bb 15424   HH bb 15621
1849  II aa 12231   II aa 12485   II bb 9829   II bb 9963   II bb 10191
1850  II bb 10213   II bb 10384   JJ aa 6541   JJ aa 6672   JJ aa 7206
1851  JJ aa 7327   JJ bb 5551   JJ bb 6036   JJ bb 6054   JJ bb 6133}
1852
1853do_execsql_test 1.11.8 {
1854  SELECT a, b,
1855      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
1856      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING ),
1857      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
1858      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 2 PRECEDING         AND UNBOUNDED FOLLOWING )
1859    FROM t3 ORDER BY 1, 2, 3;
1860} {AA aa 43803 44737 43803 44737   AA aa 43826 44737 43826 44737
1861  AA aa 44498 44737 44498 44737   AA aa 44514 44737 44514 44737
1862  AA bb 43867 44737 43867 44737   AA bb 44110 44737 44110 44737
1863  AA bb 44165 44737 44165 44737   AA bb 44428 44737 44428 44737
1864  BB aa 43975 44737 43975 44737   BB aa 44077 44737 44077 44737
1865  BB aa 44325 44737 44325 44737   BB aa 44338 44737 44338 44737
1866  BB aa 44344 44737 44344 44737   BB aa 44490 44737 44490 44737
1867  BB bb 43897 44737 41590 42430   BB bb 43945 44737 41638 42430
1868  BB bb 43951 44737 41644 42430   BB bb 44026 44737 41719 42430
1869  BB bb 44032 44737 41725 42430   BB bb 44104 44737 41797 42430
1870  CC aa 43978 44737 39293 40052   CC aa 44130 44737 39445 40052
1871  CC aa 44307 44737 39622 40052   CC aa 44579 44737 39894 40052
1872  CC bb 43915 44737 36357 37179   CC bb 44391 44737 36833 37179
1873  DD aa 39207 40052 31867 32712   DD aa 39796 40052 32456 32712
1874  DD aa 39828 40052 32488 32712   DD bb 39093 40052 29799 30758
1875  DD bb 39258 40052 29964 30758   DD bb 39336 40052 30042 30758
1876  DD bb 39814 40052 30520 30758   EE aa 31935 32712 28813 29590
1877  EE aa 32599 32712 29477 29590   EE bb 31944 32712 27497 28265
1878  EE bb 32083 32712 27636 28265   EE bb 32460 32712 28013 28265
1879  FF aa 28920 29590 24888 25558   FF aa 28923 29590 24891 25558
1880  FF aa 28972 29590 24940 25558   FF aa 29382 29590 25350 25558
1881  FF bb 28652 29590 23730 24668   FF bb 28720 29590 23798 24668
1882  FF bb 28864 29590 23942 24668   FF bb 29016 29590 24094 24668
1883  FF bb 29295 29590 24373 24668   FF bb 29488 29590 24566 24668
1884  GG aa 24924 25558 22385 23019   GG aa 25078 25558 22539 23019
1885  GG aa 25223 25558 22684 23019   GG aa 25410 25558 22871 23019
1886  GG bb 24620 25558 19918 20856   GG bb 24629 25558 19927 20856
1887  GG bb 24714 25558 20012 20856   GG bb 25398 25558 20696 20856
1888  HH aa 22040 23019 16372 17351   HH aa 22229 23019 16561 17351
1889  HH aa 22539 23019 16871 17351   HH bb 22056 23019 14791 15754
1890  HH bb 22289 23019 15024 15754   HH bb 22336 23019 15071 15754
1891  HH bb 22664 23019 15399 15754   HH bb 22689 23019 15424 15754
1892  HH bb 22886 23019 15621 15754   II aa 16699 17351 12231 12883
1893  II aa 16953 17351 12485 12883   II bb 16546 17351 9829 10634
1894  II bb 16680 17351 9963 10634   II bb 16908 17351 10191 10634
1895  II bb 16930 17351 10213 10634   II bb 17101 17351 10384 10634
1896  JJ aa 11984 12883 6541 7440   JJ aa 12115 12883 6672 7440
1897  JJ aa 12649 12883 7206 7440   JJ aa 12770 12883 7327 7440
1898  JJ bb 12044 12883 5551 6390   JJ bb 12529 12883 6036 6390
1899  JJ bb 12547 12883 6054 6390   JJ bb 12626 12883 6133 6390}
1900
1901do_execsql_test 1.12.1 {
1902  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1903} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
1904  AA bb 4685   AA bb 4685   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
1905  BB aa 7340   BB aa 7340   BB bb 7340   BB bb 7340   BB bb 7340   BB bb 7340
1906  BB bb 7340   BB bb 7340   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
1907  CC bb 3122   CC bb 3122   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 4032
1908  DD bb 4032   DD bb 4032   DD bb 4032   EE aa 2539   EE aa 2539   EE bb 2539
1909  EE bb 2539   EE bb 2539   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
1910  FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668
1911  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 4468   GG bb 4468
1912  GG bb 4468   GG bb 4468   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 5443
1913  HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   II aa 3640
1914  II aa 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640
1915  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
1916  JJ bb 3800   JJ bb 3800}
1917
1918do_execsql_test 1.12.2 {
1919  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1920} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 2378   AA bb 2378
1921  AA bb 2378   AA bb 2378   BB aa 2873   BB aa 2873   BB aa 2873   BB aa 2873
1922  BB aa 2873   BB aa 2873   BB bb 4467   BB bb 4467   BB bb 4467   BB bb 4467
1923  BB bb 4467   BB bb 4467   CC aa 1954   CC aa 1954   CC aa 1954   CC aa 1954
1924  CC bb 1168   CC bb 1168   DD aa 1325   DD aa 1325   DD aa 1325   DD bb 2707
1925  DD bb 2707   DD bb 2707   DD bb 2707   EE aa 890   EE aa 890   EE bb 1649
1926  EE bb 1649   EE bb 1649   FF aa 2163   FF aa 2163   FF aa 2163   FF aa 2163
1927  FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505
1928  GG aa 1597   GG aa 1597   GG aa 1597   GG aa 1597   GG bb 2871   GG bb 2871
1929  GG bb 2871   GG bb 2871   HH aa 2249   HH aa 2249   HH aa 2249   HH bb 3194
1930  HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   II aa 1050
1931  II aa 1050   II bb 2590   II bb 2590   II bb 2590   II bb 2590   II bb 2590
1932  JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ bb 1786   JJ bb 1786
1933  JJ bb 1786   JJ bb 1786}
1934
1935do_execsql_test 1.12.3 {
1936  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1937} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
1938  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
1939  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
1940  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
1941  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
1942  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
1943  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
1944  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
1945  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
1946  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
1947  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
1948  JJ bb 73   JJ bb 73   JJ bb 73}
1949
1950do_execsql_test 1.12.4 {
1951  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1952} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
1953  AA bb 870   AA bb 870   BB aa 762   BB aa 762   BB aa 762   BB aa 762
1954  BB aa 762   BB aa 762   BB bb 840   BB bb 840   BB bb 840   BB bb 840
1955  BB bb 840   BB bb 840   CC aa 759   CC aa 759   CC aa 759   CC aa 759
1956  CC bb 822   CC bb 822   DD aa 845   DD aa 845   DD aa 845   DD bb 959
1957  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
1958  EE bb 768   EE bb 768   FF aa 670   FF aa 670   FF aa 670   FF aa 670
1959  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
1960  GG aa 634   GG aa 634   GG aa 634   GG aa 634   GG bb 938   GG bb 938
1961  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 963
1962  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 652
1963  II aa 652   II bb 805   II bb 805   II bb 805   II bb 805   II bb 805
1964  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
1965  JJ bb 839   JJ bb 839}
1966
1967do_execsql_test 1.12.5 {
1968  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
1969} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 309   AA bb 309
1970  AA bb 309   AA bb 309   BB aa 247   BB aa 247   BB aa 247   BB aa 247
1971  BB aa 247   BB aa 247   BB bb 633   BB bb 633   BB bb 633   BB bb 633
1972  BB bb 633   BB bb 633   CC aa 158   CC aa 158   CC aa 158   CC aa 158
1973  CC bb 346   CC bb 346   DD aa 224   DD aa 224   DD aa 224   DD bb 238
1974  DD bb 238   DD bb 238   DD bb 238   EE aa 113   EE aa 113   EE bb 252
1975  EE bb 252   EE bb 252   FF aa 208   FF aa 208   FF aa 208   FF aa 208
1976  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
1977  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
1978  GG bb 160   GG bb 160   HH aa 480   HH aa 480   HH aa 480   HH bb 133
1979  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 398
1980  II aa 398   II bb 250   II bb 250   II bb 250   II bb 250   II bb 250
1981  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
1982  JJ bb 257   JJ bb 257}
1983
1984do_execsql_test 1.12.6 {
1985  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
1986} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
1987  AA bb 4113   AA bb 4376   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
1988  BB aa 6947   BB aa 7093   BB bb 6500   BB bb 6548   BB bb 6554   BB bb 6629
1989  BB bb 6635   BB bb 6707   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
1990  CC bb 2300   CC bb 2776   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 3073
1991  DD bb 3238   DD bb 3316   DD bb 3794   EE aa 1762   EE aa 2426   EE bb 1771
1992  EE bb 1910   EE bb 2287   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
1993  FF bb 4730   FF bb 4798   FF bb 4942   FF bb 5094   FF bb 5373   FF bb 5566
1994  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 3530   GG bb 3539
1995  GG bb 3624   GG bb 4308   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 4480
1996  HH bb 4713   HH bb 4760   HH bb 5088   HH bb 5113   HH bb 5310   II aa 2988
1997  II aa 3242   II bb 2835   II bb 2969   II bb 3197   II bb 3219   II bb 3390
1998  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446
1999  JJ bb 3464   JJ bb 3543}
2000
2001do_execsql_test 1.12.7 {
2002  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2003} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 1508   AA bb 1751
2004  AA bb 1806   AA bb 2069   BB aa 2111   BB aa 2213   BB aa 2461   BB aa 2474
2005  BB aa 2480   BB aa 2626   BB bb 3627   BB bb 3675   BB bb 3681   BB bb 3756
2006  BB bb 3762   BB bb 3834   CC aa 1195   CC aa 1347   CC aa 1524   CC aa 1796
2007  CC bb 346   CC bb 822   DD aa 480   DD aa 1069   DD aa 1101   DD bb 1748
2008  DD bb 1913   DD bb 1991   DD bb 2469   EE aa 113   EE aa 777   EE bb 881
2009  EE bb 1020   EE bb 1397   FF aa 1493   FF aa 1496   FF aa 1545   FF aa 1955
2010  FF bb 2567   FF bb 2635   FF bb 2779   FF bb 2931   FF bb 3210   FF bb 3403
2011  GG aa 963   GG aa 1117   GG aa 1262   GG aa 1449   GG bb 1933   GG bb 1942
2012  GG bb 2027   GG bb 2711   HH aa 1270   HH aa 1459   HH aa 1769   HH bb 2231
2013  HH bb 2464   HH bb 2511   HH bb 2839   HH bb 2864   HH bb 3061   II aa 398
2014  II aa 652   II bb 1785   II bb 1919   II bb 2147   II bb 2169   II bb 2340
2015  JJ aa 1115   JJ aa 1246   JJ aa 1780   JJ aa 1901   JJ bb 947   JJ bb 1432
2016  JJ bb 1450   JJ bb 1529}
2017
2018do_execsql_test 1.12.8 {
2019  SELECT a, b,
2020      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2021      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING ),
2022      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2023      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 0 FOLLOWING )
2024    FROM t3 ORDER BY 1, 2, 3;
2025} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
2026  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
2027  AA bb 3815 4685 1508 2378   AA bb 4058 4685 1751 2378
2028  AA bb 4113 4685 1806 2378   AA bb 4376 4685 2069 2378
2029  BB aa 6578 7340 2111 2873   BB aa 6680 7340 2213 2873
2030  BB aa 6928 7340 2461 2873   BB aa 6941 7340 2474 2873
2031  BB aa 6947 7340 2480 2873   BB aa 7093 7340 2626 2873
2032  BB bb 6500 7340 3627 4467   BB bb 6548 7340 3675 4467
2033  BB bb 6554 7340 3681 4467   BB bb 6629 7340 3756 4467
2034  BB bb 6635 7340 3762 4467   BB bb 6707 7340 3834 4467
2035  CC aa 2363 3122 1195 1954   CC aa 2515 3122 1347 1954
2036  CC aa 2692 3122 1524 1954   CC aa 2964 3122 1796 1954
2037  CC bb 2300 3122 346 1168   CC bb 2776 3122 822 1168
2038  DD aa 3187 4032 480 1325   DD aa 3776 4032 1069 1325
2039  DD aa 3808 4032 1101 1325   DD bb 3073 4032 1748 2707
2040  DD bb 3238 4032 1913 2707   DD bb 3316 4032 1991 2707
2041  DD bb 3794 4032 2469 2707   EE aa 1762 2539 113 890
2042  EE aa 2426 2539 777 890   EE bb 1771 2539 881 1649
2043  EE bb 1910 2539 1020 1649   EE bb 2287 2539 1397 1649
2044  FF aa 4998 5668 1493 2163   FF aa 5001 5668 1496 2163
2045  FF aa 5050 5668 1545 2163   FF aa 5460 5668 1955 2163
2046  FF bb 4730 5668 2567 3505   FF bb 4798 5668 2635 3505
2047  FF bb 4942 5668 2779 3505   FF bb 5094 5668 2931 3505
2048  FF bb 5373 5668 3210 3505   FF bb 5566 5668 3403 3505
2049  GG aa 3834 4468 963 1597   GG aa 3988 4468 1117 1597
2050  GG aa 4133 4468 1262 1597   GG aa 4320 4468 1449 1597
2051  GG bb 3530 4468 1933 2871   GG bb 3539 4468 1942 2871
2052  GG bb 3624 4468 2027 2871   GG bb 4308 4468 2711 2871
2053  HH aa 4464 5443 1270 2249   HH aa 4653 5443 1459 2249
2054  HH aa 4963 5443 1769 2249   HH bb 4480 5443 2231 3194
2055  HH bb 4713 5443 2464 3194   HH bb 4760 5443 2511 3194
2056  HH bb 5088 5443 2839 3194   HH bb 5113 5443 2864 3194
2057  HH bb 5310 5443 3061 3194   II aa 2988 3640 398 1050
2058  II aa 3242 3640 652 1050   II bb 2835 3640 1785 2590
2059  II bb 2969 3640 1919 2590   II bb 3197 3640 2147 2590
2060  II bb 3219 3640 2169 2590   II bb 3390 3640 2340 2590
2061  JJ aa 2901 3800 1115 2014   JJ aa 3032 3800 1246 2014
2062  JJ aa 3566 3800 1780 2014   JJ aa 3687 3800 1901 2014
2063  JJ bb 2961 3800 947 1786   JJ bb 3446 3800 1432 1786
2064  JJ bb 3464 3800 1450 1786   JJ bb 3543 3800 1529 1786}
2065
2066do_execsql_test 1.13.1 {
2067  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2068} {AA aa 12025   AA aa 12025   AA aa 12025   AA aa 12025   AA bb 12025
2069  AA bb 12025   AA bb 12025   AA bb 12025   BB aa 10462   BB aa 10462
2070  BB aa 10462   BB aa 10462   BB aa 10462   BB aa 10462   BB bb 10462
2071  BB bb 10462   BB bb 10462   BB bb 10462   BB bb 10462   BB bb 10462
2072  CC aa 7154   CC aa 7154   CC aa 7154   CC aa 7154   CC bb 7154   CC bb 7154
2073  DD aa 6571   DD aa 6571   DD aa 6571   DD bb 6571   DD bb 6571   DD bb 6571
2074  DD bb 6571   EE aa 8207   EE aa 8207   EE bb 8207   EE bb 8207   EE bb 8207
2075  FF aa 10136   FF aa 10136   FF aa 10136   FF aa 10136   FF bb 10136
2076  FF bb 10136   FF bb 10136   FF bb 10136   FF bb 10136   FF bb 10136
2077  GG aa 9911   GG aa 9911   GG aa 9911   GG aa 9911   GG bb 9911   GG bb 9911
2078  GG bb 9911   GG bb 9911   HH aa 9083   HH aa 9083   HH aa 9083   HH bb 9083
2079  HH bb 9083   HH bb 9083   HH bb 9083   HH bb 9083   HH bb 9083   II aa 7440
2080  II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
2081  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
2082  JJ bb 3800   JJ bb 3800}
2083
2084do_execsql_test 1.13.2 {
2085  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2086} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 5251   AA bb 5251
2087  AA bb 5251   AA bb 5251   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
2088  BB aa 7340   BB aa 7340   BB bb 6421   BB bb 6421   BB bb 6421   BB bb 6421
2089  BB bb 6421   BB bb 6421   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
2090  CC bb 2493   CC bb 2493   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 3597
2091  DD bb 3597   DD bb 3597   DD bb 3597   EE aa 2539   EE aa 2539   EE bb 3812
2092  EE bb 3812   EE bb 3812   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
2093  FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102   FF bb 5102
2094  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 5120   GG bb 5120
2095  GG bb 5120   GG bb 5120   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 4244
2096  HH bb 4244   HH bb 4244   HH bb 4244   HH bb 4244   HH bb 4244   II aa 3640
2097  II aa 3640   II bb 4604   II bb 4604   II bb 4604   II bb 4604   II bb 4604
2098  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786   JJ bb 1786
2099  JJ bb 1786   JJ bb 1786}
2100
2101do_execsql_test 1.13.3 {
2102  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2103} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2104  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2105  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2106  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2107  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2108  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2109  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2110  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2111  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2112  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2113  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2114  JJ bb 73   JJ bb 73   JJ bb 73}
2115
2116do_execsql_test 1.13.4 {
2117  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2118} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
2119  AA bb 870   AA bb 870   BB aa 840   BB aa 840   BB aa 840   BB aa 840
2120  BB aa 840   BB aa 840   BB bb 840   BB bb 840   BB bb 840   BB bb 840
2121  BB bb 840   BB bb 840   CC aa 822   CC aa 822   CC aa 822   CC aa 822
2122  CC bb 845   CC bb 845   DD aa 959   DD aa 959   DD aa 959   DD bb 959
2123  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
2124  EE bb 768   EE bb 768   FF aa 938   FF aa 938   FF aa 938   FF aa 938
2125  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
2126  GG aa 938   GG aa 938   GG aa 938   GG aa 938   GG bb 979   GG bb 979
2127  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
2128  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 805
2129  II aa 805   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2130  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
2131  JJ bb 839   JJ bb 839}
2132
2133do_execsql_test 1.13.5 {
2134  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2135} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 247   AA bb 247
2136  AA bb 247   AA bb 247   BB aa 247   BB aa 247   BB aa 247   BB aa 247
2137  BB aa 247   BB aa 247   BB bb 158   BB bb 158   BB bb 158   BB bb 158
2138  BB bb 158   BB bb 158   CC aa 158   CC aa 158   CC aa 158   CC aa 158
2139  CC bb 224   CC bb 224   DD aa 224   DD aa 224   DD aa 224   DD bb 113
2140  DD bb 113   DD bb 113   DD bb 113   EE aa 113   EE aa 113   EE bb 208
2141  EE bb 208   EE bb 208   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2142  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
2143  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
2144  GG bb 160   GG bb 160   HH aa 133   HH aa 133   HH aa 133   HH bb 133
2145  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 250
2146  II aa 250   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2147  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
2148  JJ bb 257   JJ bb 257}
2149
2150do_execsql_test 1.13.6 {
2151  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2152} {AA aa 11091   AA aa 11114   AA aa 11786   AA aa 11802   AA bb 11155
2153  AA bb 11398   AA bb 11453   AA bb 11716   BB aa 9700   BB aa 9802
2154  BB aa 10050   BB aa 10063   BB aa 10069   BB aa 10215   BB bb 9622
2155  BB bb 9670   BB bb 9676   BB bb 9751   BB bb 9757   BB bb 9829   CC aa 6395
2156  CC aa 6547   CC aa 6724   CC aa 6996   CC bb 6332   CC bb 6808   DD aa 5726
2157  DD aa 6315   DD aa 6347   DD bb 5612   DD bb 5777   DD bb 5855   DD bb 6333
2158  EE aa 7430   EE aa 8094   EE bb 7439   EE bb 7578   EE bb 7955   FF aa 9466
2159  FF aa 9469   FF aa 9518   FF aa 9928   FF bb 9198   FF bb 9266   FF bb 9410
2160  FF bb 9562   FF bb 9841   FF bb 10034   GG aa 9277   GG aa 9431
2161  GG aa 9576   GG aa 9763   GG bb 8973   GG bb 8982   GG bb 9067   GG bb 9751
2162  HH aa 8104   HH aa 8293   HH aa 8603   HH bb 8120   HH bb 8353   HH bb 8400
2163  HH bb 8728   HH bb 8753   HH bb 8950   II aa 6788   II aa 7042   II bb 6635
2164  II bb 6769   II bb 6997   II bb 7019   II bb 7190   JJ aa 2901   JJ aa 3032
2165  JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446   JJ bb 3464   JJ bb 3543}
2166
2167do_execsql_test 1.13.7 {
2168  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2169} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 4381   AA bb 4624
2170  AA bb 4679   AA bb 4942   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
2171  BB aa 6947   BB aa 7093   BB bb 5581   BB bb 5629   BB bb 5635   BB bb 5710
2172  BB bb 5716   BB bb 5788   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
2173  CC bb 1671   CC bb 2147   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 2638
2174  DD bb 2803   DD bb 2881   DD bb 3359   EE aa 1762   EE aa 2426   EE bb 3044
2175  EE bb 3183   EE bb 3560   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
2176  FF bb 4164   FF bb 4232   FF bb 4376   FF bb 4528   FF bb 4807   FF bb 5000
2177  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 4182   GG bb 4191
2178  GG bb 4276   GG bb 4960   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 3281
2179  HH bb 3514   HH bb 3561   HH bb 3889   HH bb 3914   HH bb 4111   II aa 2988
2180  II aa 3242   II bb 3799   II bb 3933   II bb 4161   II bb 4183   II bb 4354
2181  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947   JJ bb 1432
2182  JJ bb 1450   JJ bb 1529}
2183
2184do_execsql_test 1.13.8 {
2185  SELECT a, b,
2186      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW),
2187      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING ),
2188      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING  EXCLUDE CURRENT ROW),
2189      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 1 FOLLOWING )
2190    FROM t3 ORDER BY 1, 2, 3;
2191} {AA aa 11091 12025 3751 4685   AA aa 11114 12025 3774 4685
2192  AA aa 11786 12025 4446 4685   AA aa 11802 12025 4462 4685
2193  AA bb 11155 12025 4381 5251   AA bb 11398 12025 4624 5251
2194  AA bb 11453 12025 4679 5251   AA bb 11716 12025 4942 5251
2195  BB aa 9700 10462 6578 7340   BB aa 9802 10462 6680 7340
2196  BB aa 10050 10462 6928 7340   BB aa 10063 10462 6941 7340
2197  BB aa 10069 10462 6947 7340   BB aa 10215 10462 7093 7340
2198  BB bb 9622 10462 5581 6421   BB bb 9670 10462 5629 6421
2199  BB bb 9676 10462 5635 6421   BB bb 9751 10462 5710 6421
2200  BB bb 9757 10462 5716 6421   BB bb 9829 10462 5788 6421
2201  CC aa 6395 7154 2363 3122   CC aa 6547 7154 2515 3122
2202  CC aa 6724 7154 2692 3122   CC aa 6996 7154 2964 3122
2203  CC bb 6332 7154 1671 2493   CC bb 6808 7154 2147 2493
2204  DD aa 5726 6571 3187 4032   DD aa 6315 6571 3776 4032
2205  DD aa 6347 6571 3808 4032   DD bb 5612 6571 2638 3597
2206  DD bb 5777 6571 2803 3597   DD bb 5855 6571 2881 3597
2207  DD bb 6333 6571 3359 3597   EE aa 7430 8207 1762 2539
2208  EE aa 8094 8207 2426 2539   EE bb 7439 8207 3044 3812
2209  EE bb 7578 8207 3183 3812   EE bb 7955 8207 3560 3812
2210  FF aa 9466 10136 4998 5668   FF aa 9469 10136 5001 5668
2211  FF aa 9518 10136 5050 5668   FF aa 9928 10136 5460 5668
2212  FF bb 9198 10136 4164 5102   FF bb 9266 10136 4232 5102
2213  FF bb 9410 10136 4376 5102   FF bb 9562 10136 4528 5102
2214  FF bb 9841 10136 4807 5102   FF bb 10034 10136 5000 5102
2215  GG aa 9277 9911 3834 4468   GG aa 9431 9911 3988 4468
2216  GG aa 9576 9911 4133 4468   GG aa 9763 9911 4320 4468
2217  GG bb 8973 9911 4182 5120   GG bb 8982 9911 4191 5120
2218  GG bb 9067 9911 4276 5120   GG bb 9751 9911 4960 5120
2219  HH aa 8104 9083 4464 5443   HH aa 8293 9083 4653 5443
2220  HH aa 8603 9083 4963 5443   HH bb 8120 9083 3281 4244
2221  HH bb 8353 9083 3514 4244   HH bb 8400 9083 3561 4244
2222  HH bb 8728 9083 3889 4244   HH bb 8753 9083 3914 4244
2223  HH bb 8950 9083 4111 4244   II aa 6788 7440 2988 3640
2224  II aa 7042 7440 3242 3640   II bb 6635 7440 3799 4604
2225  II bb 6769 7440 3933 4604   II bb 6997 7440 4161 4604
2226  II bb 7019 7440 4183 4604   II bb 7190 7440 4354 4604
2227  JJ aa 2901 3800 2901 3800   JJ aa 3032 3800 3032 3800
2228  JJ aa 3566 3800 3566 3800   JJ aa 3687 3800 3687 3800
2229  JJ bb 2961 3800 947 1786   JJ bb 3446 3800 1432 1786
2230  JJ bb 3464 3800 1450 1786   JJ bb 3543 3800 1529 1786}
2231
2232do_execsql_test 1.14.1 {
2233  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2234} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
2235  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 40052   BB aa 40052
2236  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 40052
2237  BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052
2238  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 32712
2239  CC bb 32712   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 29590
2240  DD bb 29590   DD bb 29590   DD bb 29590   EE aa 25558   EE aa 25558
2241  EE bb 25558   EE bb 25558   EE bb 25558   FF aa 23019   FF aa 23019
2242  FF aa 23019   FF aa 23019   FF bb 23019   FF bb 23019   FF bb 23019
2243  FF bb 23019   FF bb 23019   FF bb 23019   GG aa 17351   GG aa 17351
2244  GG aa 17351   GG aa 17351   GG bb 17351   GG bb 17351   GG bb 17351
2245  GG bb 17351   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 12883
2246  HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883
2247  II aa 7440   II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
2248  II bb 7440   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800
2249  JJ bb 3800   JJ bb 3800   JJ bb 3800}
2250
2251do_execsql_test 1.14.2 {
2252  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2253} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 42430
2254  AA bb 42430   AA bb 42430   AA bb 42430   BB aa 40052   BB aa 40052
2255  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 37179
2256  BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179
2257  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 30758
2258  CC bb 30758   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 28265
2259  DD bb 28265   DD bb 28265   DD bb 28265   EE aa 25558   EE aa 25558
2260  EE bb 24668   EE bb 24668   EE bb 24668   FF aa 23019   FF aa 23019
2261  FF aa 23019   FF aa 23019   FF bb 20856   FF bb 20856   FF bb 20856
2262  FF bb 20856   FF bb 20856   FF bb 20856   GG aa 17351   GG aa 17351
2263  GG aa 17351   GG aa 17351   GG bb 15754   GG bb 15754   GG bb 15754
2264  GG bb 15754   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 10634
2265  HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634
2266  II aa 7440   II aa 7440   II bb 6390   II bb 6390   II bb 6390   II bb 6390
2267  II bb 6390   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786
2268  JJ bb 1786   JJ bb 1786   JJ bb 1786}
2269
2270do_execsql_test 1.14.3 {
2271  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2272} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2273  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2274  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2275  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2276  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2277  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2278  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2279  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2280  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2281  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2282  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2283  JJ bb 73   JJ bb 73   JJ bb 73}
2284
2285do_execsql_test 1.14.4 {
2286  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2287} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
2288  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
2289  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
2290  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
2291  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
2292  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
2293  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
2294  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
2295  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
2296  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
2297  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 899
2298  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2299  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
2300  JJ bb 839   JJ bb 839}
2301
2302do_execsql_test 1.14.5 {
2303  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2304} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
2305  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
2306  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
2307  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
2308  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
2309  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
2310  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2311  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
2312  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
2313  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
2314  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
2315  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2316  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
2317  JJ bb 257   JJ bb 257}
2318
2319do_execsql_test 1.14.6 {
2320  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2321} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
2322  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 39290   BB aa 39392
2323  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 39212
2324  BB bb 39260   BB bb 39266   BB bb 39341   BB bb 39347   BB bb 39419
2325  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 31890
2326  CC bb 32366   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 28631
2327  DD bb 28796   DD bb 28874   DD bb 29352   EE aa 24781   EE aa 25445
2328  EE bb 24790   EE bb 24929   EE bb 25306   FF aa 22349   FF aa 22352
2329  FF aa 22401   FF aa 22811   FF bb 22081   FF bb 22149   FF bb 22293
2330  FF bb 22445   FF bb 22724   FF bb 22917   GG aa 16717   GG aa 16871
2331  GG aa 17016   GG aa 17203   GG bb 16413   GG bb 16422   GG bb 16507
2332  GG bb 17191   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 11920
2333  HH bb 12153   HH bb 12200   HH bb 12528   HH bb 12553   HH bb 12750
2334  II aa 6788   II aa 7042   II bb 6635   II bb 6769   II bb 6997   II bb 7019
2335  II bb 7190   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961
2336  JJ bb 3446   JJ bb 3464   JJ bb 3543}
2337
2338do_execsql_test 1.14.7 {
2339  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2340} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 41560
2341  AA bb 41803   AA bb 41858   AA bb 42121   BB aa 39290   BB aa 39392
2342  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 36339
2343  BB bb 36387   BB bb 36393   BB bb 36468   BB bb 36474   BB bb 36546
2344  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 29936
2345  CC bb 30412   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 27306
2346  DD bb 27471   DD bb 27549   DD bb 28027   EE aa 24781   EE aa 25445
2347  EE bb 23900   EE bb 24039   EE bb 24416   FF aa 22349   FF aa 22352
2348  FF aa 22401   FF aa 22811   FF bb 19918   FF bb 19986   FF bb 20130
2349  FF bb 20282   FF bb 20561   FF bb 20754   GG aa 16717   GG aa 16871
2350  GG aa 17016   GG aa 17203   GG bb 14816   GG bb 14825   GG bb 14910
2351  GG bb 15594   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 9671
2352  HH bb 9904   HH bb 9951   HH bb 10279   HH bb 10304   HH bb 10501
2353  II aa 6788   II aa 7042   II bb 5585   II bb 5719   II bb 5947   II bb 5969
2354  II bb 6140   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947
2355  JJ bb 1432   JJ bb 1450   JJ bb 1529}
2356
2357do_execsql_test 1.14.8 {
2358  SELECT a, b,
2359      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW),
2360      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING ),
2361      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING  EXCLUDE CURRENT ROW),
2362      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND 100 FOLLOWING )
2363    FROM t3 ORDER BY 1, 2, 3;
2364} {AA aa 43803 44737 43803 44737   AA aa 43826 44737 43826 44737
2365  AA aa 44498 44737 44498 44737   AA aa 44514 44737 44514 44737
2366  AA bb 43867 44737 41560 42430   AA bb 44110 44737 41803 42430
2367  AA bb 44165 44737 41858 42430   AA bb 44428 44737 42121 42430
2368  BB aa 39290 40052 39290 40052   BB aa 39392 40052 39392 40052
2369  BB aa 39640 40052 39640 40052   BB aa 39653 40052 39653 40052
2370  BB aa 39659 40052 39659 40052   BB aa 39805 40052 39805 40052
2371  BB bb 39212 40052 36339 37179   BB bb 39260 40052 36387 37179
2372  BB bb 39266 40052 36393 37179   BB bb 39341 40052 36468 37179
2373  BB bb 39347 40052 36474 37179   BB bb 39419 40052 36546 37179
2374  CC aa 31953 32712 31953 32712   CC aa 32105 32712 32105 32712
2375  CC aa 32282 32712 32282 32712   CC aa 32554 32712 32554 32712
2376  CC bb 31890 32712 29936 30758   CC bb 32366 32712 30412 30758
2377  DD aa 28745 29590 28745 29590   DD aa 29334 29590 29334 29590
2378  DD aa 29366 29590 29366 29590   DD bb 28631 29590 27306 28265
2379  DD bb 28796 29590 27471 28265   DD bb 28874 29590 27549 28265
2380  DD bb 29352 29590 28027 28265   EE aa 24781 25558 24781 25558
2381  EE aa 25445 25558 25445 25558   EE bb 24790 25558 23900 24668
2382  EE bb 24929 25558 24039 24668   EE bb 25306 25558 24416 24668
2383  FF aa 22349 23019 22349 23019   FF aa 22352 23019 22352 23019
2384  FF aa 22401 23019 22401 23019   FF aa 22811 23019 22811 23019
2385  FF bb 22081 23019 19918 20856   FF bb 22149 23019 19986 20856
2386  FF bb 22293 23019 20130 20856   FF bb 22445 23019 20282 20856
2387  FF bb 22724 23019 20561 20856   FF bb 22917 23019 20754 20856
2388  GG aa 16717 17351 16717 17351   GG aa 16871 17351 16871 17351
2389  GG aa 17016 17351 17016 17351   GG aa 17203 17351 17203 17351
2390  GG bb 16413 17351 14816 15754   GG bb 16422 17351 14825 15754
2391  GG bb 16507 17351 14910 15754   GG bb 17191 17351 15594 15754
2392  HH aa 11904 12883 11904 12883   HH aa 12093 12883 12093 12883
2393  HH aa 12403 12883 12403 12883   HH bb 11920 12883 9671 10634
2394  HH bb 12153 12883 9904 10634   HH bb 12200 12883 9951 10634
2395  HH bb 12528 12883 10279 10634   HH bb 12553 12883 10304 10634
2396  HH bb 12750 12883 10501 10634   II aa 6788 7440 6788 7440
2397  II aa 7042 7440 7042 7440   II bb 6635 7440 5585 6390
2398  II bb 6769 7440 5719 6390   II bb 6997 7440 5947 6390
2399  II bb 7019 7440 5969 6390   II bb 7190 7440 6140 6390
2400  JJ aa 2901 3800 2901 3800   JJ aa 3032 3800 3032 3800
2401  JJ aa 3566 3800 3566 3800   JJ aa 3687 3800 3687 3800
2402  JJ bb 2961 3800 947 1786   JJ bb 3446 3800 1432 1786
2403  JJ bb 3464 3800 1450 1786   JJ bb 3543 3800 1529 1786}
2404
2405do_execsql_test 1.15.1 {
2406  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2407} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 44737
2408  AA bb 44737   AA bb 44737   AA bb 44737   BB aa 40052   BB aa 40052
2409  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 40052
2410  BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052   BB bb 40052
2411  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 32712
2412  CC bb 32712   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 29590
2413  DD bb 29590   DD bb 29590   DD bb 29590   EE aa 25558   EE aa 25558
2414  EE bb 25558   EE bb 25558   EE bb 25558   FF aa 23019   FF aa 23019
2415  FF aa 23019   FF aa 23019   FF bb 23019   FF bb 23019   FF bb 23019
2416  FF bb 23019   FF bb 23019   FF bb 23019   GG aa 17351   GG aa 17351
2417  GG aa 17351   GG aa 17351   GG bb 17351   GG bb 17351   GG bb 17351
2418  GG bb 17351   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 12883
2419  HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883   HH bb 12883
2420  II aa 7440   II aa 7440   II bb 7440   II bb 7440   II bb 7440   II bb 7440
2421  II bb 7440   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800
2422  JJ bb 3800   JJ bb 3800   JJ bb 3800}
2423
2424do_execsql_test 1.15.2 {
2425  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2426} {AA aa 44737   AA aa 44737   AA aa 44737   AA aa 44737   AA bb 42430
2427  AA bb 42430   AA bb 42430   AA bb 42430   BB aa 40052   BB aa 40052
2428  BB aa 40052   BB aa 40052   BB aa 40052   BB aa 40052   BB bb 37179
2429  BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179   BB bb 37179
2430  CC aa 32712   CC aa 32712   CC aa 32712   CC aa 32712   CC bb 30758
2431  CC bb 30758   DD aa 29590   DD aa 29590   DD aa 29590   DD bb 28265
2432  DD bb 28265   DD bb 28265   DD bb 28265   EE aa 25558   EE aa 25558
2433  EE bb 24668   EE bb 24668   EE bb 24668   FF aa 23019   FF aa 23019
2434  FF aa 23019   FF aa 23019   FF bb 20856   FF bb 20856   FF bb 20856
2435  FF bb 20856   FF bb 20856   FF bb 20856   GG aa 17351   GG aa 17351
2436  GG aa 17351   GG aa 17351   GG bb 15754   GG bb 15754   GG bb 15754
2437  GG bb 15754   HH aa 12883   HH aa 12883   HH aa 12883   HH bb 10634
2438  HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634   HH bb 10634
2439  II aa 7440   II aa 7440   II bb 6390   II bb 6390   II bb 6390   II bb 6390
2440  II bb 6390   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 1786
2441  JJ bb 1786   JJ bb 1786   JJ bb 1786}
2442
2443do_execsql_test 1.15.3 {
2444  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2445} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2446  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2447  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2448  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2449  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2450  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2451  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2452  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2453  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2454  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2455  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2456  JJ bb 73   JJ bb 73   JJ bb 73}
2457
2458do_execsql_test 1.15.4 {
2459  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2460} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
2461  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
2462  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
2463  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
2464  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
2465  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
2466  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
2467  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
2468  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
2469  GG bb 979   GG bb 979   HH aa 979   HH aa 979   HH aa 979   HH bb 963
2470  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 899
2471  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2472  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
2473  JJ bb 839   JJ bb 839}
2474
2475do_execsql_test 1.15.5 {
2476  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2477} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
2478  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
2479  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
2480  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
2481  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
2482  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
2483  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2484  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
2485  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
2486  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
2487  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
2488  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2489  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
2490  JJ bb 257   JJ bb 257}
2491
2492do_execsql_test 1.15.6 {
2493  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2494} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 43867
2495  AA bb 44110   AA bb 44165   AA bb 44428   BB aa 39290   BB aa 39392
2496  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 39212
2497  BB bb 39260   BB bb 39266   BB bb 39341   BB bb 39347   BB bb 39419
2498  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 31890
2499  CC bb 32366   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 28631
2500  DD bb 28796   DD bb 28874   DD bb 29352   EE aa 24781   EE aa 25445
2501  EE bb 24790   EE bb 24929   EE bb 25306   FF aa 22349   FF aa 22352
2502  FF aa 22401   FF aa 22811   FF bb 22081   FF bb 22149   FF bb 22293
2503  FF bb 22445   FF bb 22724   FF bb 22917   GG aa 16717   GG aa 16871
2504  GG aa 17016   GG aa 17203   GG bb 16413   GG bb 16422   GG bb 16507
2505  GG bb 17191   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 11920
2506  HH bb 12153   HH bb 12200   HH bb 12528   HH bb 12553   HH bb 12750
2507  II aa 6788   II aa 7042   II bb 6635   II bb 6769   II bb 6997   II bb 7019
2508  II bb 7190   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961
2509  JJ bb 3446   JJ bb 3464   JJ bb 3543}
2510
2511do_execsql_test 1.15.7 {
2512  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2513} {AA aa 43803   AA aa 43826   AA aa 44498   AA aa 44514   AA bb 41560
2514  AA bb 41803   AA bb 41858   AA bb 42121   BB aa 39290   BB aa 39392
2515  BB aa 39640   BB aa 39653   BB aa 39659   BB aa 39805   BB bb 36339
2516  BB bb 36387   BB bb 36393   BB bb 36468   BB bb 36474   BB bb 36546
2517  CC aa 31953   CC aa 32105   CC aa 32282   CC aa 32554   CC bb 29936
2518  CC bb 30412   DD aa 28745   DD aa 29334   DD aa 29366   DD bb 27306
2519  DD bb 27471   DD bb 27549   DD bb 28027   EE aa 24781   EE aa 25445
2520  EE bb 23900   EE bb 24039   EE bb 24416   FF aa 22349   FF aa 22352
2521  FF aa 22401   FF aa 22811   FF bb 19918   FF bb 19986   FF bb 20130
2522  FF bb 20282   FF bb 20561   FF bb 20754   GG aa 16717   GG aa 16871
2523  GG aa 17016   GG aa 17203   GG bb 14816   GG bb 14825   GG bb 14910
2524  GG bb 15594   HH aa 11904   HH aa 12093   HH aa 12403   HH bb 9671
2525  HH bb 9904   HH bb 9951   HH bb 10279   HH bb 10304   HH bb 10501
2526  II aa 6788   II aa 7042   II bb 5585   II bb 5719   II bb 5947   II bb 5969
2527  II bb 6140   JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 947
2528  JJ bb 1432   JJ bb 1450   JJ bb 1529}
2529
2530do_execsql_test 1.15.8 {
2531  SELECT a, b,
2532      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
2533      sum(c) OVER (ORDER BY a  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING ),
2534      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
2535      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN CURRENT ROW         AND UNBOUNDED FOLLOWING )
2536    FROM t3 ORDER BY 1, 2, 3;
2537} {AA aa 43803 44737 43803 44737   AA aa 43826 44737 43826 44737
2538  AA aa 44498 44737 44498 44737   AA aa 44514 44737 44514 44737
2539  AA bb 43867 44737 41560 42430   AA bb 44110 44737 41803 42430
2540  AA bb 44165 44737 41858 42430   AA bb 44428 44737 42121 42430
2541  BB aa 39290 40052 39290 40052   BB aa 39392 40052 39392 40052
2542  BB aa 39640 40052 39640 40052   BB aa 39653 40052 39653 40052
2543  BB aa 39659 40052 39659 40052   BB aa 39805 40052 39805 40052
2544  BB bb 39212 40052 36339 37179   BB bb 39260 40052 36387 37179
2545  BB bb 39266 40052 36393 37179   BB bb 39341 40052 36468 37179
2546  BB bb 39347 40052 36474 37179   BB bb 39419 40052 36546 37179
2547  CC aa 31953 32712 31953 32712   CC aa 32105 32712 32105 32712
2548  CC aa 32282 32712 32282 32712   CC aa 32554 32712 32554 32712
2549  CC bb 31890 32712 29936 30758   CC bb 32366 32712 30412 30758
2550  DD aa 28745 29590 28745 29590   DD aa 29334 29590 29334 29590
2551  DD aa 29366 29590 29366 29590   DD bb 28631 29590 27306 28265
2552  DD bb 28796 29590 27471 28265   DD bb 28874 29590 27549 28265
2553  DD bb 29352 29590 28027 28265   EE aa 24781 25558 24781 25558
2554  EE aa 25445 25558 25445 25558   EE bb 24790 25558 23900 24668
2555  EE bb 24929 25558 24039 24668   EE bb 25306 25558 24416 24668
2556  FF aa 22349 23019 22349 23019   FF aa 22352 23019 22352 23019
2557  FF aa 22401 23019 22401 23019   FF aa 22811 23019 22811 23019
2558  FF bb 22081 23019 19918 20856   FF bb 22149 23019 19986 20856
2559  FF bb 22293 23019 20130 20856   FF bb 22445 23019 20282 20856
2560  FF bb 22724 23019 20561 20856   FF bb 22917 23019 20754 20856
2561  GG aa 16717 17351 16717 17351   GG aa 16871 17351 16871 17351
2562  GG aa 17016 17351 17016 17351   GG aa 17203 17351 17203 17351
2563  GG bb 16413 17351 14816 15754   GG bb 16422 17351 14825 15754
2564  GG bb 16507 17351 14910 15754   GG bb 17191 17351 15594 15754
2565  HH aa 11904 12883 11904 12883   HH aa 12093 12883 12093 12883
2566  HH aa 12403 12883 12403 12883   HH bb 11920 12883 9671 10634
2567  HH bb 12153 12883 9904 10634   HH bb 12200 12883 9951 10634
2568  HH bb 12528 12883 10279 10634   HH bb 12553 12883 10304 10634
2569  HH bb 12750 12883 10501 10634   II aa 6788 7440 6788 7440
2570  II aa 7042 7440 7042 7440   II bb 6635 7440 5585 6390
2571  II bb 6769 7440 5719 6390   II bb 6997 7440 5947 6390
2572  II bb 7019 7440 5969 6390   II bb 7190 7440 6140 6390
2573  JJ aa 2901 3800 2901 3800   JJ aa 3032 3800 3032 3800
2574  JJ aa 3566 3800 3566 3800   JJ aa 3687 3800 3687 3800
2575  JJ bb 2961 3800 947 1786   JJ bb 3446 3800 1432 1786
2576  JJ bb 3464 3800 1450 1786   JJ bb 3543 3800 1529 1786}
2577
2578do_execsql_test 1.16.1 {
2579  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2580} {AA aa 4685   AA aa 4685   AA aa 4685   AA aa 4685   AA bb 4685   AA bb 4685
2581  AA bb 4685   AA bb 4685   BB aa 7340   BB aa 7340   BB aa 7340   BB aa 7340
2582  BB aa 7340   BB aa 7340   BB bb 7340   BB bb 7340   BB bb 7340   BB bb 7340
2583  BB bb 7340   BB bb 7340   CC aa 3122   CC aa 3122   CC aa 3122   CC aa 3122
2584  CC bb 3122   CC bb 3122   DD aa 4032   DD aa 4032   DD aa 4032   DD bb 4032
2585  DD bb 4032   DD bb 4032   DD bb 4032   EE aa 2539   EE aa 2539   EE bb 2539
2586  EE bb 2539   EE bb 2539   FF aa 5668   FF aa 5668   FF aa 5668   FF aa 5668
2587  FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668   FF bb 5668
2588  GG aa 4468   GG aa 4468   GG aa 4468   GG aa 4468   GG bb 4468   GG bb 4468
2589  GG bb 4468   GG bb 4468   HH aa 5443   HH aa 5443   HH aa 5443   HH bb 5443
2590  HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   HH bb 5443   II aa 3640
2591  II aa 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640   II bb 3640
2592  JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ aa 3800   JJ bb 3800   JJ bb 3800
2593  JJ bb 3800   JJ bb 3800}
2594
2595do_execsql_test 1.16.2 {
2596  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2597} {AA aa 2307   AA aa 2307   AA aa 2307   AA aa 2307   AA bb 2378   AA bb 2378
2598  AA bb 2378   AA bb 2378   BB aa 2873   BB aa 2873   BB aa 2873   BB aa 2873
2599  BB aa 2873   BB aa 2873   BB bb 4467   BB bb 4467   BB bb 4467   BB bb 4467
2600  BB bb 4467   BB bb 4467   CC aa 1954   CC aa 1954   CC aa 1954   CC aa 1954
2601  CC bb 1168   CC bb 1168   DD aa 1325   DD aa 1325   DD aa 1325   DD bb 2707
2602  DD bb 2707   DD bb 2707   DD bb 2707   EE aa 890   EE aa 890   EE bb 1649
2603  EE bb 1649   EE bb 1649   FF aa 2163   FF aa 2163   FF aa 2163   FF aa 2163
2604  FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505   FF bb 3505
2605  GG aa 1597   GG aa 1597   GG aa 1597   GG aa 1597   GG bb 2871   GG bb 2871
2606  GG bb 2871   GG bb 2871   HH aa 2249   HH aa 2249   HH aa 2249   HH bb 3194
2607  HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   HH bb 3194   II aa 1050
2608  II aa 1050   II bb 2590   II bb 2590   II bb 2590   II bb 2590   II bb 2590
2609  JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ aa 2014   JJ bb 1786   JJ bb 1786
2610  JJ bb 1786   JJ bb 1786}
2611
2612do_execsql_test 1.16.3 {
2613  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2614} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2615  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2616  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2617  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2618  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2619  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2620  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2621  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2622  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2623  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2624  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2625  JJ bb 73   JJ bb 73   JJ bb 73}
2626
2627do_execsql_test 1.16.4 {
2628  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2629} {AA aa 934   AA aa 934   AA aa 934   AA aa 934   AA bb 870   AA bb 870
2630  AA bb 870   AA bb 870   BB aa 762   BB aa 762   BB aa 762   BB aa 762
2631  BB aa 762   BB aa 762   BB bb 840   BB bb 840   BB bb 840   BB bb 840
2632  BB bb 840   BB bb 840   CC aa 759   CC aa 759   CC aa 759   CC aa 759
2633  CC bb 822   CC bb 822   DD aa 845   DD aa 845   DD aa 845   DD bb 959
2634  DD bb 959   DD bb 959   DD bb 959   EE aa 777   EE aa 777   EE bb 768
2635  EE bb 768   EE bb 768   FF aa 670   FF aa 670   FF aa 670   FF aa 670
2636  FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938   FF bb 938
2637  GG aa 634   GG aa 634   GG aa 634   GG aa 634   GG bb 938   GG bb 938
2638  GG bb 938   GG bb 938   HH aa 979   HH aa 979   HH aa 979   HH bb 963
2639  HH bb 963   HH bb 963   HH bb 963   HH bb 963   HH bb 963   II aa 652
2640  II aa 652   II bb 805   II bb 805   II bb 805   II bb 805   II bb 805
2641  JJ aa 899   JJ aa 899   JJ aa 899   JJ aa 899   JJ bb 839   JJ bb 839
2642  JJ bb 839   JJ bb 839}
2643
2644do_execsql_test 1.16.5 {
2645  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2646} {AA aa 223   AA aa 223   AA aa 223   AA aa 223   AA bb 309   AA bb 309
2647  AA bb 309   AA bb 309   BB aa 247   BB aa 247   BB aa 247   BB aa 247
2648  BB aa 247   BB aa 247   BB bb 633   BB bb 633   BB bb 633   BB bb 633
2649  BB bb 633   BB bb 633   CC aa 158   CC aa 158   CC aa 158   CC aa 158
2650  CC bb 346   CC bb 346   DD aa 224   DD aa 224   DD aa 224   DD bb 238
2651  DD bb 238   DD bb 238   DD bb 238   EE aa 113   EE aa 113   EE bb 252
2652  EE bb 252   EE bb 252   FF aa 208   FF aa 208   FF aa 208   FF aa 208
2653  FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102   FF bb 102
2654  GG aa 148   GG aa 148   GG aa 148   GG aa 148   GG bb 160   GG bb 160
2655  GG bb 160   GG bb 160   HH aa 480   HH aa 480   HH aa 480   HH bb 133
2656  HH bb 133   HH bb 133   HH bb 133   HH bb 133   HH bb 133   II aa 398
2657  II aa 398   II bb 250   II bb 250   II bb 250   II bb 250   II bb 250
2658  JJ aa 113   JJ aa 113   JJ aa 113   JJ aa 113   JJ bb 257   JJ bb 257
2659  JJ bb 257   JJ bb 257}
2660
2661do_execsql_test 1.16.6 {
2662  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2663} {AA aa 3751   AA aa 3774   AA aa 4446   AA aa 4462   AA bb 3815   AA bb 4058
2664  AA bb 4113   AA bb 4376   BB aa 6578   BB aa 6680   BB aa 6928   BB aa 6941
2665  BB aa 6947   BB aa 7093   BB bb 6500   BB bb 6548   BB bb 6554   BB bb 6629
2666  BB bb 6635   BB bb 6707   CC aa 2363   CC aa 2515   CC aa 2692   CC aa 2964
2667  CC bb 2300   CC bb 2776   DD aa 3187   DD aa 3776   DD aa 3808   DD bb 3073
2668  DD bb 3238   DD bb 3316   DD bb 3794   EE aa 1762   EE aa 2426   EE bb 1771
2669  EE bb 1910   EE bb 2287   FF aa 4998   FF aa 5001   FF aa 5050   FF aa 5460
2670  FF bb 4730   FF bb 4798   FF bb 4942   FF bb 5094   FF bb 5373   FF bb 5566
2671  GG aa 3834   GG aa 3988   GG aa 4133   GG aa 4320   GG bb 3530   GG bb 3539
2672  GG bb 3624   GG bb 4308   HH aa 4464   HH aa 4653   HH aa 4963   HH bb 4480
2673  HH bb 4713   HH bb 4760   HH bb 5088   HH bb 5113   HH bb 5310   II aa 2988
2674  II aa 3242   II bb 2835   II bb 2969   II bb 3197   II bb 3219   II bb 3390
2675  JJ aa 2901   JJ aa 3032   JJ aa 3566   JJ aa 3687   JJ bb 2961   JJ bb 3446
2676  JJ bb 3464   JJ bb 3543}
2677
2678do_execsql_test 1.16.7 {
2679  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2680} {AA aa 1373   AA aa 1396   AA aa 2068   AA aa 2084   AA bb 1508   AA bb 1751
2681  AA bb 1806   AA bb 2069   BB aa 2111   BB aa 2213   BB aa 2461   BB aa 2474
2682  BB aa 2480   BB aa 2626   BB bb 3627   BB bb 3675   BB bb 3681   BB bb 3756
2683  BB bb 3762   BB bb 3834   CC aa 1195   CC aa 1347   CC aa 1524   CC aa 1796
2684  CC bb 346   CC bb 822   DD aa 480   DD aa 1069   DD aa 1101   DD bb 1748
2685  DD bb 1913   DD bb 1991   DD bb 2469   EE aa 113   EE aa 777   EE bb 881
2686  EE bb 1020   EE bb 1397   FF aa 1493   FF aa 1496   FF aa 1545   FF aa 1955
2687  FF bb 2567   FF bb 2635   FF bb 2779   FF bb 2931   FF bb 3210   FF bb 3403
2688  GG aa 963   GG aa 1117   GG aa 1262   GG aa 1449   GG bb 1933   GG bb 1942
2689  GG bb 2027   GG bb 2711   HH aa 1270   HH aa 1459   HH aa 1769   HH bb 2231
2690  HH bb 2464   HH bb 2511   HH bb 2839   HH bb 2864   HH bb 3061   II aa 398
2691  II aa 652   II bb 1785   II bb 1919   II bb 2147   II bb 2169   II bb 2340
2692  JJ aa 1115   JJ aa 1246   JJ aa 1780   JJ aa 1901   JJ bb 947   JJ bb 1432
2693  JJ bb 1450   JJ bb 1529}
2694
2695do_execsql_test 1.16.8 {
2696  SELECT a, b,
2697      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2698      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING ),
2699      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2700      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 0 FOLLOWING         AND 0 FOLLOWING )
2701    FROM t3 ORDER BY 1, 2, 3;
2702} {AA aa 3751 4685 1373 2307   AA aa 3774 4685 1396 2307
2703  AA aa 4446 4685 2068 2307   AA aa 4462 4685 2084 2307
2704  AA bb 3815 4685 1508 2378   AA bb 4058 4685 1751 2378
2705  AA bb 4113 4685 1806 2378   AA bb 4376 4685 2069 2378
2706  BB aa 6578 7340 2111 2873   BB aa 6680 7340 2213 2873
2707  BB aa 6928 7340 2461 2873   BB aa 6941 7340 2474 2873
2708  BB aa 6947 7340 2480 2873   BB aa 7093 7340 2626 2873
2709  BB bb 6500 7340 3627 4467   BB bb 6548 7340 3675 4467
2710  BB bb 6554 7340 3681 4467   BB bb 6629 7340 3756 4467
2711  BB bb 6635 7340 3762 4467   BB bb 6707 7340 3834 4467
2712  CC aa 2363 3122 1195 1954   CC aa 2515 3122 1347 1954
2713  CC aa 2692 3122 1524 1954   CC aa 2964 3122 1796 1954
2714  CC bb 2300 3122 346 1168   CC bb 2776 3122 822 1168
2715  DD aa 3187 4032 480 1325   DD aa 3776 4032 1069 1325
2716  DD aa 3808 4032 1101 1325   DD bb 3073 4032 1748 2707
2717  DD bb 3238 4032 1913 2707   DD bb 3316 4032 1991 2707
2718  DD bb 3794 4032 2469 2707   EE aa 1762 2539 113 890
2719  EE aa 2426 2539 777 890   EE bb 1771 2539 881 1649
2720  EE bb 1910 2539 1020 1649   EE bb 2287 2539 1397 1649
2721  FF aa 4998 5668 1493 2163   FF aa 5001 5668 1496 2163
2722  FF aa 5050 5668 1545 2163   FF aa 5460 5668 1955 2163
2723  FF bb 4730 5668 2567 3505   FF bb 4798 5668 2635 3505
2724  FF bb 4942 5668 2779 3505   FF bb 5094 5668 2931 3505
2725  FF bb 5373 5668 3210 3505   FF bb 5566 5668 3403 3505
2726  GG aa 3834 4468 963 1597   GG aa 3988 4468 1117 1597
2727  GG aa 4133 4468 1262 1597   GG aa 4320 4468 1449 1597
2728  GG bb 3530 4468 1933 2871   GG bb 3539 4468 1942 2871
2729  GG bb 3624 4468 2027 2871   GG bb 4308 4468 2711 2871
2730  HH aa 4464 5443 1270 2249   HH aa 4653 5443 1459 2249
2731  HH aa 4963 5443 1769 2249   HH bb 4480 5443 2231 3194
2732  HH bb 4713 5443 2464 3194   HH bb 4760 5443 2511 3194
2733  HH bb 5088 5443 2839 3194   HH bb 5113 5443 2864 3194
2734  HH bb 5310 5443 3061 3194   II aa 2988 3640 398 1050
2735  II aa 3242 3640 652 1050   II bb 2835 3640 1785 2590
2736  II bb 2969 3640 1919 2590   II bb 3197 3640 2147 2590
2737  II bb 3219 3640 2169 2590   II bb 3390 3640 2340 2590
2738  JJ aa 2901 3800 1115 2014   JJ aa 3032 3800 1246 2014
2739  JJ aa 3566 3800 1780 2014   JJ aa 3687 3800 1901 2014
2740  JJ bb 2961 3800 947 1786   JJ bb 3446 3800 1432 1786
2741  JJ bb 3464 3800 1450 1786   JJ bb 3543 3800 1529 1786}
2742
2743do_execsql_test 1.17.1 {
2744  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2745} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2746  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2747  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2748  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2749  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2750  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2751  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2752  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2753  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2754  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2755  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2756  JJ bb {}   JJ bb {}   JJ bb {}}
2757
2758do_execsql_test 1.17.2 {
2759  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2760} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2761  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2762  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2763  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2764  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2765  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2766  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2767  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2768  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2769  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2770  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2771  JJ bb {}   JJ bb {}   JJ bb {}}
2772
2773do_execsql_test 1.17.3 {
2774  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2775} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2776  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2777  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2778  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2779  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2780  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2781  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2782  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2783  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2784  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2785  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2786  JJ bb 73   JJ bb 73   JJ bb 73}
2787
2788do_execsql_test 1.17.4 {
2789  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2790} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2791  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2792  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2793  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2794  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2795  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2796  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2797  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2798  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2799  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2800  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2801  JJ bb {}   JJ bb {}   JJ bb {}}
2802
2803do_execsql_test 1.17.5 {
2804  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2805} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2806  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2807  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2808  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2809  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2810  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2811  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2812  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2813  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2814  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2815  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2816  JJ bb {}   JJ bb {}   JJ bb {}}
2817
2818do_execsql_test 1.17.6 {
2819  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2820} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2821  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2822  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2823  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2824  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2825  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2826  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2827  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2828  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2829  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2830  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2831  JJ bb {}   JJ bb {}   JJ bb {}}
2832
2833do_execsql_test 1.17.7 {
2834  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2835} {AA aa {}   AA aa {}   AA aa {}   AA aa {}   AA bb {}   AA bb {}   AA bb {}
2836  AA bb {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}   BB aa {}
2837  BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   BB bb {}   CC aa {}
2838  CC aa {}   CC aa {}   CC aa {}   CC bb {}   CC bb {}   DD aa {}   DD aa {}
2839  DD aa {}   DD bb {}   DD bb {}   DD bb {}   DD bb {}   EE aa {}   EE aa {}
2840  EE bb {}   EE bb {}   EE bb {}   FF aa {}   FF aa {}   FF aa {}   FF aa {}
2841  FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   FF bb {}   GG aa {}
2842  GG aa {}   GG aa {}   GG aa {}   GG bb {}   GG bb {}   GG bb {}   GG bb {}
2843  HH aa {}   HH aa {}   HH aa {}   HH bb {}   HH bb {}   HH bb {}   HH bb {}
2844  HH bb {}   HH bb {}   II aa {}   II aa {}   II bb {}   II bb {}   II bb {}
2845  II bb {}   II bb {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}
2846  JJ bb {}   JJ bb {}   JJ bb {}}
2847
2848do_execsql_test 1.17.8 {
2849  SELECT a, b,
2850      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2851      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING ),
2852      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING  EXCLUDE CURRENT ROW),
2853      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 0 FOLLOWING )
2854    FROM t3 ORDER BY 1, 2, 3;
2855} {AA aa {} {} {} {}   AA aa {} {} {} {}   AA aa {} {} {} {}
2856  AA aa {} {} {} {}   AA bb {} {} {} {}   AA bb {} {} {} {}
2857  AA bb {} {} {} {}   AA bb {} {} {} {}   BB aa {} {} {} {}
2858  BB aa {} {} {} {}   BB aa {} {} {} {}   BB aa {} {} {} {}
2859  BB aa {} {} {} {}   BB aa {} {} {} {}   BB bb {} {} {} {}
2860  BB bb {} {} {} {}   BB bb {} {} {} {}   BB bb {} {} {} {}
2861  BB bb {} {} {} {}   BB bb {} {} {} {}   CC aa {} {} {} {}
2862  CC aa {} {} {} {}   CC aa {} {} {} {}   CC aa {} {} {} {}
2863  CC bb {} {} {} {}   CC bb {} {} {} {}   DD aa {} {} {} {}
2864  DD aa {} {} {} {}   DD aa {} {} {} {}   DD bb {} {} {} {}
2865  DD bb {} {} {} {}   DD bb {} {} {} {}   DD bb {} {} {} {}
2866  EE aa {} {} {} {}   EE aa {} {} {} {}   EE bb {} {} {} {}
2867  EE bb {} {} {} {}   EE bb {} {} {} {}   FF aa {} {} {} {}
2868  FF aa {} {} {} {}   FF aa {} {} {} {}   FF aa {} {} {} {}
2869  FF bb {} {} {} {}   FF bb {} {} {} {}   FF bb {} {} {} {}
2870  FF bb {} {} {} {}   FF bb {} {} {} {}   FF bb {} {} {} {}
2871  GG aa {} {} {} {}   GG aa {} {} {} {}   GG aa {} {} {} {}
2872  GG aa {} {} {} {}   GG bb {} {} {} {}   GG bb {} {} {} {}
2873  GG bb {} {} {} {}   GG bb {} {} {} {}   HH aa {} {} {} {}
2874  HH aa {} {} {} {}   HH aa {} {} {} {}   HH bb {} {} {} {}
2875  HH bb {} {} {} {}   HH bb {} {} {} {}   HH bb {} {} {} {}
2876  HH bb {} {} {} {}   HH bb {} {} {} {}   II aa {} {} {} {}
2877  II aa {} {} {} {}   II bb {} {} {} {}   II bb {} {} {} {}
2878  II bb {} {} {} {}   II bb {} {} {} {}   II bb {} {} {} {}
2879  JJ aa {} {} {} {}   JJ aa {} {} {} {}   JJ aa {} {} {} {}
2880  JJ aa {} {} {} {}   JJ bb {} {} {} {}   JJ bb {} {} {} {}
2881  JJ bb {} {} {} {}   JJ bb {} {} {} {}}
2882
2883do_execsql_test 1.18.1 {
2884  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2885} {AA aa 22701   AA aa 22701   AA aa 22701   AA aa 22701   AA bb 22701
2886  AA bb 22701   AA bb 22701   AA bb 22701   BB aa 19829   BB aa 19829
2887  BB aa 19829   BB aa 19829   BB aa 19829   BB aa 19829   BB bb 19829
2888  BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829
2889  CC aa 22150   CC aa 22150   CC aa 22150   CC aa 22150   CC bb 22150
2890  CC bb 22150   DD aa 21758   DD aa 21758   DD aa 21758   DD bb 21758
2891  DD bb 21758   DD bb 21758   DD bb 21758   EE aa 23019   EE aa 23019
2892  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2893  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2894  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2895  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2896  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2897  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2898  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2899  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2900  JJ bb {}}
2901
2902do_execsql_test 1.18.2 {
2903  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2904} {AA aa 12840   AA aa 12840   AA aa 12840   AA aa 12840   AA bb 11787
2905  AA bb 11787   AA bb 11787   AA bb 11787   BB aa 11621   BB aa 11621
2906  BB aa 11621   BB aa 11621   BB aa 11621   BB aa 11621   BB bb 8044
2907  BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   CC aa 7739
2908  CC aa 7739   CC aa 7739   CC aa 7739   CC bb 8734   CC bb 8734
2909  DD aa 10914   DD aa 10914   DD aa 10914   DD bb 9804   DD bb 9804
2910  DD bb 9804   DD bb 9804   EE aa 11785   EE aa 11785   EE bb 12385
2911  EE bb 12385   EE bb 12385   FF aa 13416   FF aa 13416   FF aa 13416
2912  FF aa 13416   FF bb 10961   FF bb 10961   FF bb 10961   FF bb 10961
2913  FF bb 10961   FF bb 10961   GG aa 11954   GG aa 11954   GG aa 11954
2914  GG aa 11954   GG bb 11097   GG bb 11097   GG bb 11097   GG bb 11097
2915  HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440   HH bb 7440
2916  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390   II aa 6390
2917  II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   JJ aa 1786
2918  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}   JJ bb {}
2919  JJ bb {}}
2920
2921do_execsql_test 1.18.3 {
2922  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2923} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
2924  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
2925  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
2926  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
2927  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
2928  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
2929  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
2930  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
2931  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
2932  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
2933  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
2934  JJ bb 73   JJ bb 73   JJ bb 73}
2935
2936do_execsql_test 1.18.4 {
2937  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2938} {AA aa 870   AA aa 870   AA aa 870   AA aa 870   AA bb 845   AA bb 845
2939  AA bb 845   AA bb 845   BB aa 959   BB aa 959   BB aa 959   BB aa 959
2940  BB aa 959   BB aa 959   BB bb 959   BB bb 959   BB bb 959   BB bb 959
2941  BB bb 959   BB bb 959   CC aa 959   CC aa 959   CC aa 959   CC aa 959
2942  CC bb 959   CC bb 959   DD aa 959   DD aa 959   DD aa 959   DD bb 938
2943  DD bb 938   DD bb 938   DD bb 938   EE aa 938   EE aa 938   EE bb 979
2944  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
2945  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
2946  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
2947  GG bb 979   GG bb 979   HH aa 963   HH aa 963   HH aa 963   HH bb 899
2948  HH bb 899   HH bb 899   HH bb 899   HH bb 899   HH bb 899   II aa 899
2949  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
2950  JJ aa 839   JJ aa 839   JJ aa 839   JJ aa 839   JJ bb {}   JJ bb {}
2951  JJ bb {}   JJ bb {}}
2952
2953do_execsql_test 1.18.5 {
2954  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
2955} {AA aa 158   AA aa 158   AA aa 158   AA aa 158   AA bb 158   AA bb 158
2956  AA bb 158   AA bb 158   BB aa 158   BB aa 158   BB aa 158   BB aa 158
2957  BB aa 158   BB aa 158   BB bb 113   BB bb 113   BB bb 113   BB bb 113
2958  BB bb 113   BB bb 113   CC aa 113   CC aa 113   CC aa 113   CC aa 113
2959  CC bb 113   CC bb 113   DD aa 102   DD aa 102   DD aa 102   DD bb 102
2960  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
2961  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
2962  FF bb 133   FF bb 133   FF bb 133   FF bb 133   FF bb 133   FF bb 133
2963  GG aa 133   GG aa 133   GG aa 133   GG aa 133   GG bb 113   GG bb 113
2964  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
2965  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
2966  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
2967  JJ aa 257   JJ aa 257   JJ aa 257   JJ aa 257   JJ bb {}   JJ bb {}
2968  JJ bb {}   JJ bb {}}
2969
2970do_execsql_test 1.18.6 {
2971  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2972} {AA aa 22701   AA aa 22701   AA aa 22701   AA aa 22701   AA bb 22701
2973  AA bb 22701   AA bb 22701   AA bb 22701   BB aa 19829   BB aa 19829
2974  BB aa 19829   BB aa 19829   BB aa 19829   BB aa 19829   BB bb 19829
2975  BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829   BB bb 19829
2976  CC aa 22150   CC aa 22150   CC aa 22150   CC aa 22150   CC bb 22150
2977  CC bb 22150   DD aa 21758   DD aa 21758   DD aa 21758   DD bb 21758
2978  DD bb 21758   DD bb 21758   DD bb 21758   EE aa 23019   EE aa 23019
2979  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
2980  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
2981  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
2982  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
2983  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
2984  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
2985  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
2986  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
2987  JJ bb {}}
2988
2989do_execsql_test 1.18.7 {
2990  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
2991} {AA aa 12840   AA aa 12840   AA aa 12840   AA aa 12840   AA bb 11787
2992  AA bb 11787   AA bb 11787   AA bb 11787   BB aa 11621   BB aa 11621
2993  BB aa 11621   BB aa 11621   BB aa 11621   BB aa 11621   BB bb 8044
2994  BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   BB bb 8044   CC aa 7739
2995  CC aa 7739   CC aa 7739   CC aa 7739   CC bb 8734   CC bb 8734
2996  DD aa 10914   DD aa 10914   DD aa 10914   DD bb 9804   DD bb 9804
2997  DD bb 9804   DD bb 9804   EE aa 11785   EE aa 11785   EE bb 12385
2998  EE bb 12385   EE bb 12385   FF aa 13416   FF aa 13416   FF aa 13416
2999  FF aa 13416   FF bb 10961   FF bb 10961   FF bb 10961   FF bb 10961
3000  FF bb 10961   FF bb 10961   GG aa 11954   GG aa 11954   GG aa 11954
3001  GG aa 11954   GG bb 11097   GG bb 11097   GG bb 11097   GG bb 11097
3002  HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440   HH bb 7440
3003  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390   II aa 6390
3004  II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   JJ aa 1786
3005  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}   JJ bb {}
3006  JJ bb {}}
3007
3008do_execsql_test 1.18.8 {
3009  SELECT a, b,
3010      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW),
3011      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING ),
3012      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING  EXCLUDE CURRENT ROW),
3013      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND 5 FOLLOWING )
3014    FROM t3 ORDER BY 1, 2, 3;
3015} {AA aa 22701 22701 12840 12840   AA aa 22701 22701 12840 12840
3016  AA aa 22701 22701 12840 12840   AA aa 22701 22701 12840 12840
3017  AA bb 22701 22701 11787 11787   AA bb 22701 22701 11787 11787
3018  AA bb 22701 22701 11787 11787   AA bb 22701 22701 11787 11787
3019  BB aa 19829 19829 11621 11621   BB aa 19829 19829 11621 11621
3020  BB aa 19829 19829 11621 11621   BB aa 19829 19829 11621 11621
3021  BB aa 19829 19829 11621 11621   BB aa 19829 19829 11621 11621
3022  BB bb 19829 19829 8044 8044   BB bb 19829 19829 8044 8044
3023  BB bb 19829 19829 8044 8044   BB bb 19829 19829 8044 8044
3024  BB bb 19829 19829 8044 8044   BB bb 19829 19829 8044 8044
3025  CC aa 22150 22150 7739 7739   CC aa 22150 22150 7739 7739
3026  CC aa 22150 22150 7739 7739   CC aa 22150 22150 7739 7739
3027  CC bb 22150 22150 8734 8734   CC bb 22150 22150 8734 8734
3028  DD aa 21758 21758 10914 10914   DD aa 21758 21758 10914 10914
3029  DD aa 21758 21758 10914 10914   DD bb 21758 21758 9804 9804
3030  DD bb 21758 21758 9804 9804   DD bb 21758 21758 9804 9804
3031  DD bb 21758 21758 9804 9804   EE aa 23019 23019 11785 11785
3032  EE aa 23019 23019 11785 11785   EE bb 23019 23019 12385 12385
3033  EE bb 23019 23019 12385 12385   EE bb 23019 23019 12385 12385
3034  FF aa 17351 17351 13416 13416   FF aa 17351 17351 13416 13416
3035  FF aa 17351 17351 13416 13416   FF aa 17351 17351 13416 13416
3036  FF bb 17351 17351 10961 10961   FF bb 17351 17351 10961 10961
3037  FF bb 17351 17351 10961 10961   FF bb 17351 17351 10961 10961
3038  FF bb 17351 17351 10961 10961   FF bb 17351 17351 10961 10961
3039  GG aa 12883 12883 11954 11954   GG aa 12883 12883 11954 11954
3040  GG aa 12883 12883 11954 11954   GG aa 12883 12883 11954 11954
3041  GG bb 12883 12883 11097 11097   GG bb 12883 12883 11097 11097
3042  GG bb 12883 12883 11097 11097   GG bb 12883 12883 11097 11097
3043  HH aa 7440 7440 10634 10634   HH aa 7440 7440 10634 10634
3044  HH aa 7440 7440 10634 10634   HH bb 7440 7440 7440 7440
3045  HH bb 7440 7440 7440 7440   HH bb 7440 7440 7440 7440
3046  HH bb 7440 7440 7440 7440   HH bb 7440 7440 7440 7440
3047  HH bb 7440 7440 7440 7440   II aa 3800 3800 6390 6390
3048  II aa 3800 3800 6390 6390   II bb 3800 3800 3800 3800
3049  II bb 3800 3800 3800 3800   II bb 3800 3800 3800 3800
3050  II bb 3800 3800 3800 3800   II bb 3800 3800 3800 3800
3051  JJ aa {} {} 1786 1786   JJ aa {} {} 1786 1786   JJ aa {} {} 1786 1786
3052  JJ aa {} {} 1786 1786   JJ bb {} {} {} {}   JJ bb {} {} {} {}
3053  JJ bb {} {} {} {}   JJ bb {} {} {} {}}
3054
3055do_execsql_test 1.19.1 {
3056  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
3057} {AA aa 40052   AA aa 40052   AA aa 40052   AA aa 40052   AA bb 40052
3058  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 32712   BB aa 32712
3059  BB aa 32712   BB aa 32712   BB aa 32712   BB aa 32712   BB bb 32712
3060  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
3061  CC aa 29590   CC aa 29590   CC aa 29590   CC aa 29590   CC bb 29590
3062  CC bb 29590   DD aa 25558   DD aa 25558   DD aa 25558   DD bb 25558
3063  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 23019   EE aa 23019
3064  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
3065  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
3066  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
3067  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
3068  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
3069  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
3070  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
3071  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
3072  JJ bb {}}
3073
3074do_execsql_test 1.19.2 {
3075  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
3076} {AA aa 42430   AA aa 42430   AA aa 42430   AA aa 42430   AA bb 40052
3077  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 37179   BB aa 37179
3078  BB aa 37179   BB aa 37179   BB aa 37179   BB aa 37179   BB bb 32712
3079  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
3080  CC aa 30758   CC aa 30758   CC aa 30758   CC aa 30758   CC bb 29590
3081  CC bb 29590   DD aa 28265   DD aa 28265   DD aa 28265   DD bb 25558
3082  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 24668   EE aa 24668
3083  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 20856   FF aa 20856
3084  FF aa 20856   FF aa 20856   FF bb 17351   FF bb 17351   FF bb 17351
3085  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 15754   GG aa 15754
3086  GG aa 15754   GG aa 15754   GG bb 12883   GG bb 12883   GG bb 12883
3087  GG bb 12883   HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440
3088  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390
3089  II aa 6390   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
3090  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}
3091  JJ bb {}   JJ bb {}}
3092
3093do_execsql_test 1.19.3 {
3094  SELECT a, b, rank() OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
3095} {AA aa 1   AA aa 1   AA aa 1   AA aa 1   AA bb 1   AA bb 1   AA bb 1
3096  AA bb 1   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9   BB aa 9
3097  BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   BB bb 9   CC aa 21
3098  CC aa 21   CC aa 21   CC aa 21   CC bb 21   CC bb 21   DD aa 27   DD aa 27
3099  DD aa 27   DD bb 27   DD bb 27   DD bb 27   DD bb 27   EE aa 34   EE aa 34
3100  EE bb 34   EE bb 34   EE bb 34   FF aa 39   FF aa 39   FF aa 39   FF aa 39
3101  FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   FF bb 39   GG aa 49
3102  GG aa 49   GG aa 49   GG aa 49   GG bb 49   GG bb 49   GG bb 49   GG bb 49
3103  HH aa 57   HH aa 57   HH aa 57   HH bb 57   HH bb 57   HH bb 57   HH bb 57
3104  HH bb 57   HH bb 57   II aa 66   II aa 66   II bb 66   II bb 66   II bb 66
3105  II bb 66   II bb 66   JJ aa 73   JJ aa 73   JJ aa 73   JJ aa 73   JJ bb 73
3106  JJ bb 73   JJ bb 73   JJ bb 73}
3107
3108do_execsql_test 1.19.4 {
3109  SELECT a, b, max(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
3110} {AA aa 979   AA aa 979   AA aa 979   AA aa 979   AA bb 979   AA bb 979
3111  AA bb 979   AA bb 979   BB aa 979   BB aa 979   BB aa 979   BB aa 979
3112  BB aa 979   BB aa 979   BB bb 979   BB bb 979   BB bb 979   BB bb 979
3113  BB bb 979   BB bb 979   CC aa 979   CC aa 979   CC aa 979   CC aa 979
3114  CC bb 979   CC bb 979   DD aa 979   DD aa 979   DD aa 979   DD bb 979
3115  DD bb 979   DD bb 979   DD bb 979   EE aa 979   EE aa 979   EE bb 979
3116  EE bb 979   EE bb 979   FF aa 979   FF aa 979   FF aa 979   FF aa 979
3117  FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979   FF bb 979
3118  GG aa 979   GG aa 979   GG aa 979   GG aa 979   GG bb 979   GG bb 979
3119  GG bb 979   GG bb 979   HH aa 963   HH aa 963   HH aa 963   HH bb 899
3120  HH bb 899   HH bb 899   HH bb 899   HH bb 899   HH bb 899   II aa 899
3121  II aa 899   II bb 899   II bb 899   II bb 899   II bb 899   II bb 899
3122  JJ aa 839   JJ aa 839   JJ aa 839   JJ aa 839   JJ bb {}   JJ bb {}
3123  JJ bb {}   JJ bb {}}
3124
3125do_execsql_test 1.19.5 {
3126  SELECT a, b, min(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3;
3127} {AA aa 102   AA aa 102   AA aa 102   AA aa 102   AA bb 102   AA bb 102
3128  AA bb 102   AA bb 102   BB aa 102   BB aa 102   BB aa 102   BB aa 102
3129  BB aa 102   BB aa 102   BB bb 102   BB bb 102   BB bb 102   BB bb 102
3130  BB bb 102   BB bb 102   CC aa 102   CC aa 102   CC aa 102   CC aa 102
3131  CC bb 102   CC bb 102   DD aa 102   DD aa 102   DD aa 102   DD bb 102
3132  DD bb 102   DD bb 102   DD bb 102   EE aa 102   EE aa 102   EE bb 102
3133  EE bb 102   EE bb 102   FF aa 102   FF aa 102   FF aa 102   FF aa 102
3134  FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113   FF bb 113
3135  GG aa 113   GG aa 113   GG aa 113   GG aa 113   GG bb 113   GG bb 113
3136  GG bb 113   GG bb 113   HH aa 113   HH aa 113   HH aa 113   HH bb 113
3137  HH bb 113   HH bb 113   HH bb 113   HH bb 113   HH bb 113   II aa 113
3138  II aa 113   II bb 113   II bb 113   II bb 113   II bb 113   II bb 113
3139  JJ aa 257   JJ aa 257   JJ aa 257   JJ aa 257   JJ bb {}   JJ bb {}
3140  JJ bb {}   JJ bb {}}
3141
3142do_execsql_test 1.19.6 {
3143  SELECT a, b, sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
3144} {AA aa 40052   AA aa 40052   AA aa 40052   AA aa 40052   AA bb 40052
3145  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 32712   BB aa 32712
3146  BB aa 32712   BB aa 32712   BB aa 32712   BB aa 32712   BB bb 32712
3147  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
3148  CC aa 29590   CC aa 29590   CC aa 29590   CC aa 29590   CC bb 29590
3149  CC bb 29590   DD aa 25558   DD aa 25558   DD aa 25558   DD bb 25558
3150  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 23019   EE aa 23019
3151  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 17351   FF aa 17351
3152  FF aa 17351   FF aa 17351   FF bb 17351   FF bb 17351   FF bb 17351
3153  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 12883   GG aa 12883
3154  GG aa 12883   GG aa 12883   GG bb 12883   GG bb 12883   GG bb 12883
3155  GG bb 12883   HH aa 7440   HH aa 7440   HH aa 7440   HH bb 7440
3156  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 3800
3157  II aa 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
3158  JJ aa {}   JJ aa {}   JJ aa {}   JJ aa {}   JJ bb {}   JJ bb {}   JJ bb {}
3159  JJ bb {}}
3160
3161do_execsql_test 1.19.7 {
3162  SELECT a, b, sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3;
3163} {AA aa 42430   AA aa 42430   AA aa 42430   AA aa 42430   AA bb 40052
3164  AA bb 40052   AA bb 40052   AA bb 40052   BB aa 37179   BB aa 37179
3165  BB aa 37179   BB aa 37179   BB aa 37179   BB aa 37179   BB bb 32712
3166  BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712   BB bb 32712
3167  CC aa 30758   CC aa 30758   CC aa 30758   CC aa 30758   CC bb 29590
3168  CC bb 29590   DD aa 28265   DD aa 28265   DD aa 28265   DD bb 25558
3169  DD bb 25558   DD bb 25558   DD bb 25558   EE aa 24668   EE aa 24668
3170  EE bb 23019   EE bb 23019   EE bb 23019   FF aa 20856   FF aa 20856
3171  FF aa 20856   FF aa 20856   FF bb 17351   FF bb 17351   FF bb 17351
3172  FF bb 17351   FF bb 17351   FF bb 17351   GG aa 15754   GG aa 15754
3173  GG aa 15754   GG aa 15754   GG bb 12883   GG bb 12883   GG bb 12883
3174  GG bb 12883   HH aa 10634   HH aa 10634   HH aa 10634   HH bb 7440
3175  HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   HH bb 7440   II aa 6390
3176  II aa 6390   II bb 3800   II bb 3800   II bb 3800   II bb 3800   II bb 3800
3177  JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ aa 1786   JJ bb {}   JJ bb {}
3178  JJ bb {}   JJ bb {}}
3179
3180do_execsql_test 1.19.8 {
3181  SELECT a, b,
3182      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
3183      sum(c) OVER (ORDER BY a  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING ),
3184      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW),
3185      sum(c) OVER (ORDER BY a,b  GROUPS BETWEEN 1 FOLLOWING         AND UNBOUNDED FOLLOWING )
3186    FROM t3 ORDER BY 1, 2, 3;
3187} {AA aa 40052 40052 42430 42430   AA aa 40052 40052 42430 42430
3188  AA aa 40052 40052 42430 42430   AA aa 40052 40052 42430 42430
3189  AA bb 40052 40052 40052 40052   AA bb 40052 40052 40052 40052
3190  AA bb 40052 40052 40052 40052   AA bb 40052 40052 40052 40052
3191  BB aa 32712 32712 37179 37179   BB aa 32712 32712 37179 37179
3192  BB aa 32712 32712 37179 37179   BB aa 32712 32712 37179 37179
3193  BB aa 32712 32712 37179 37179   BB aa 32712 32712 37179 37179
3194  BB bb 32712 32712 32712 32712   BB bb 32712 32712 32712 32712
3195  BB bb 32712 32712 32712 32712   BB bb 32712 32712 32712 32712
3196  BB bb 32712 32712 32712 32712   BB bb 32712 32712 32712 32712
3197  CC aa 29590 29590 30758 30758   CC aa 29590 29590 30758 30758
3198  CC aa 29590 29590 30758 30758   CC aa 29590 29590 30758 30758
3199  CC bb 29590 29590 29590 29590   CC bb 29590 29590 29590 29590
3200  DD aa 25558 25558 28265 28265   DD aa 25558 25558 28265 28265
3201  DD aa 25558 25558 28265 28265   DD bb 25558 25558 25558 25558
3202  DD bb 25558 25558 25558 25558   DD bb 25558 25558 25558 25558
3203  DD bb 25558 25558 25558 25558   EE aa 23019 23019 24668 24668
3204  EE aa 23019 23019 24668 24668   EE bb 23019 23019 23019 23019
3205  EE bb 23019 23019 23019 23019   EE bb 23019 23019 23019 23019
3206  FF aa 17351 17351 20856 20856   FF aa 17351 17351 20856 20856
3207  FF aa 17351 17351 20856 20856   FF aa 17351 17351 20856 20856
3208  FF bb 17351 17351 17351 17351   FF bb 17351 17351 17351 17351
3209  FF bb 17351 17351 17351 17351   FF bb 17351 17351 17351 17351
3210  FF bb 17351 17351 17351 17351   FF bb 17351 17351 17351 17351
3211  GG aa 12883 12883 15754 15754   GG aa 12883 12883 15754 15754
3212  GG aa 12883 12883 15754 15754   GG aa 12883 12883 15754 15754
3213  GG bb 12883 12883 12883 12883   GG bb 12883 12883 12883 12883
3214  GG bb 12883 12883 12883 12883   GG bb 12883 12883 12883 12883
3215  HH aa 7440 7440 10634 10634   HH aa 7440 7440 10634 10634
3216  HH aa 7440 7440 10634 10634   HH bb 7440 7440 7440 7440
3217  HH bb 7440 7440 7440 7440   HH bb 7440 7440 7440 7440
3218  HH bb 7440 7440 7440 7440   HH bb 7440 7440 7440 7440
3219  HH bb 7440 7440 7440 7440   II aa 3800 3800 6390 6390
3220  II aa 3800 3800 6390 6390   II bb 3800 3800 3800 3800
3221  II bb 3800 3800 3800 3800   II bb 3800 3800 3800 3800
3222  II bb 3800 3800 3800 3800   II bb 3800 3800 3800 3800
3223  JJ aa {} {} 1786 1786   JJ aa {} {} 1786 1786   JJ aa {} {} 1786 1786
3224  JJ aa {} {} 1786 1786   JJ bb {} {} {} {}   JJ bb {} {} {} {}
3225  JJ bb {} {} {} {}   JJ bb {} {} {} {}}
3226
3227do_execsql_test 2.1.1 {
3228  SELECT row_number() OVER win
3229    FROM t3
3230    WINDOW win AS (
3231      ORDER BY c, b, a
3232      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE NO OTHERS
3233    )
3234} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
3235  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
3236  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
3237  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
3238  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
3239  78   79   80}
3240
3241do_execsql_test 2.1.2 {
3242  SELECT nth_value(c, 14) OVER win
3243    FROM t3
3244    WINDOW win AS (
3245      ORDER BY c, b, a
3246      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE NO OTHERS
3247    )
3248} {247   247   247   247   247   247   247   247   247   247   247   247   247
3249  247   247   247   247   247   247   247   247   247   247   247   247   247
3250  247   247   247   247   247   247   247   247   247   247   247   247   247
3251  247   247   247   247   247   247   247   247   247   247   247   247   247
3252  247   247   247   247   247   247   247   247   247   247   247   247   247
3253  247   247   247   247   247   247   247   247   247   247   247   247   247
3254  247   247}
3255
3256do_execsql_test 2.1.3 {
3257  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
3258    WINDOW win AS (
3259      ORDER BY c, b, a
3260      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE NO OTHERS
3261    ) ORDER BY a, b, c;
3262} {102 223 1358   102 239 2293   102 911 38097   102 934 39960   102 309 4159
3263  102 572 10643   102 627 13069   102 870 35417   102 247 2540   102 393 6608
3264  102 399 7405   102 412 7817   102 660 16277   102 762 24077   102 633 14331
3265  102 705 19673   102 711 20384   102 786 27176   102 792 28758
3266  102 840 32858   102 158 767   102 430 8668   102 607 11824   102 759 23315
3267  102 346 5506   102 822 31179   102 224 1582   102 256 3298   102 845 34547
3268  102 238 2054   102 716 21100   102 794 29552   102 959 42795   102 113 215
3269  102 777 26390   102 252 3042   102 629 13698   102 768 25613   102 208 1135
3270  102 618 12442   102 667 16944   102 670 17614   102 102 102   102 295 3850
3271  102 574 11217   102 726 21826   102 870 36287   102 938 40898   102 148 609
3272  102 335 4824   102 480 9591   102 634 14965   102 160 927   102 844 33702
3273  102 929 39026   102 938 41836   102 480 10071   102 790 27966
3274  102 979 44737   102 133 461   102 330 4489   102 355 6215   102 683 18968
3275  102 730 22556   102 963 43758   102 398 7006   102 652 15617   102 250 2790
3276  102 421 8238   102 443 9111   102 671 18285   102 805 30357   102 113 328
3277  102 234 1816   102 768 24845   102 899 37186   102 257 3555   102 336 5160
3278  102 354 5860   102 839 32018}
3279
3280do_execsql_test 2.2.1 {
3281  SELECT row_number() OVER win
3282    FROM t3
3283    WINDOW win AS (
3284      ORDER BY c, b, a
3285      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW
3286    )
3287} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
3288  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
3289  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
3290  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
3291  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
3292  78   79   80}
3293
3294do_execsql_test 2.2.2 {
3295  SELECT nth_value(c, 14) OVER win
3296    FROM t3
3297    WINDOW win AS (
3298      ORDER BY c, b, a
3299      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE CURRENT ROW
3300    )
3301} {250   250   250   250   250   250   250   250   250   250   250   250   250
3302  250   247   247   247   247   247   247   247   247   247   247   247   247
3303  247   247   247   247   247   247   247   247   247   247   247   247   247
3304  247   247   247   247   247   247   247   247   247   247   247   247   247
3305  247   247   247   247   247   247   247   247   247   247   247   247   247
3306  247   247   247   247   247   247   247   247   247   247   247   247   247
3307  247   247}
3308
3309do_execsql_test 2.2.3 {
3310  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
3311    WINDOW win AS (
3312      ORDER BY c, b, a
3313      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE CURRENT ROW
3314    ) ORDER BY a, b, c;
3315} {102 208 1135   102 238 2054   102 899 37186   102 929 39026   102 295 3850
3316  102 480 10071   102 618 12442   102 845 34547   102 239 2293   102 355 6215
3317  102 398 7006   102 399 7405   102 652 15617   102 759 23315   102 629 13698
3318  102 683 18968   102 705 19673   102 777 26390   102 790 27966
3319  102 839 32018   102 148 609   102 421 8238   102 574 11217   102 730 22556
3320  102 336 5160   102 805 30357   102 223 1358   102 252 3042   102 844 33702
3321  102 234 1816   102 711 20384   102 792 28758   102 938 41836   102 102 102
3322  102 768 25613   102 250 2790   102 627 13069   102 768 24845   102 160 927
3323  102 607 11824   102 660 16277   102 667 16944   {} {} {}   102 257 3555
3324  102 572 10643   102 716 21100   102 870 35417   102 934 39960   102 133 461
3325  102 330 4489   102 443 9111   102 633 14331   102 158 767   102 840 32858
3326  102 911 38097   102 938 40898   102 480 9591   102 786 27176
3327  102 963 43758   102 113 328   102 309 4159   102 354 5860   102 671 18285
3328  102 726 21826   102 959 42795   102 393 6608   102 634 14965   102 247 2540
3329  102 412 7817   102 430 8668   102 670 17614   102 794 29552   102 113 215
3330  102 224 1582   102 762 24077   102 870 36287   102 256 3298   102 335 4824
3331  102 346 5506   102 822 31179}
3332
3333do_execsql_test 2.3.1 {
3334  SELECT row_number() OVER win
3335    FROM t3
3336    WINDOW win AS (
3337      ORDER BY c, b, a
3338      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE GROUP
3339    )
3340} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
3341  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
3342  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
3343  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
3344  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
3345  78   79   80}
3346
3347do_execsql_test 2.3.2 {
3348  SELECT nth_value(c, 14) OVER win
3349    FROM t3
3350    WINDOW win AS (
3351      ORDER BY c, b, a
3352      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE GROUP
3353    )
3354} {250   250   250   250   250   250   250   250   250   250   250   250   250
3355  250   247   247   247   247   247   247   247   247   247   247   247   247
3356  247   247   247   247   247   247   247   247   247   247   247   247   247
3357  247   247   247   247   247   247   247   247   247   247   247   247   247
3358  247   247   247   247   247   247   247   247   247   247   247   247   247
3359  247   247   247   247   247   247   247   247   247   247   247   247   247
3360  247   247}
3361
3362do_execsql_test 2.3.3 {
3363  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
3364    WINDOW win AS (
3365      ORDER BY c, b, a
3366      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE GROUP
3367    ) ORDER BY a, b, c;
3368} {102 208 1135   102 238 2054   102 899 37186   102 929 39026   102 295 3850
3369  102 480 10071   102 618 12442   102 845 34547   102 239 2293   102 355 6215
3370  102 398 7006   102 399 7405   102 652 15617   102 759 23315   102 629 13698
3371  102 683 18968   102 705 19673   102 777 26390   102 790 27966
3372  102 839 32018   102 148 609   102 421 8238   102 574 11217   102 730 22556
3373  102 336 5160   102 805 30357   102 223 1358   102 252 3042   102 844 33702
3374  102 234 1816   102 711 20384   102 792 28758   102 938 41836   102 102 102
3375  102 768 25613   102 250 2790   102 627 13069   102 768 24845   102 160 927
3376  102 607 11824   102 660 16277   102 667 16944   {} {} {}   102 257 3555
3377  102 572 10643   102 716 21100   102 870 35417   102 934 39960   102 133 461
3378  102 330 4489   102 443 9111   102 633 14331   102 158 767   102 840 32858
3379  102 911 38097   102 938 40898   102 480 9591   102 786 27176
3380  102 963 43758   102 113 328   102 309 4159   102 354 5860   102 671 18285
3381  102 726 21826   102 959 42795   102 393 6608   102 634 14965   102 247 2540
3382  102 412 7817   102 430 8668   102 670 17614   102 794 29552   102 113 215
3383  102 224 1582   102 762 24077   102 870 36287   102 256 3298   102 335 4824
3384  102 346 5506   102 822 31179}
3385
3386do_execsql_test 2.4.1 {
3387  SELECT row_number() OVER win
3388    FROM t3
3389    WINDOW win AS (
3390      ORDER BY c, b, a
3391      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE TIES
3392    )
3393} {1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17
3394  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32
3395  33   34   35   36   37   38   39   40   41   42   43   44   45   46   47
3396  48   49   50   51   52   53   54   55   56   57   58   59   60   61   62
3397  63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
3398  78   79   80}
3399
3400do_execsql_test 2.4.2 {
3401  SELECT nth_value(c, 14) OVER win
3402    FROM t3
3403    WINDOW win AS (
3404      ORDER BY c, b, a
3405      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING  EXCLUDE TIES
3406    )
3407} {247   247   247   247   247   247   247   247   247   247   247   247   247
3408  247   247   247   247   247   247   247   247   247   247   247   247   247
3409  247   247   247   247   247   247   247   247   247   247   247   247   247
3410  247   247   247   247   247   247   247   247   247   247   247   247   247
3411  247   247   247   247   247   247   247   247   247   247   247   247   247
3412  247   247   247   247   247   247   247   247   247   247   247   247   247
3413  247   247}
3414
3415do_execsql_test 2.4.3 {
3416  SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3
3417    WINDOW win AS (
3418      ORDER BY c, b, a
3419      ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW  EXCLUDE TIES
3420    ) ORDER BY a, b, c;
3421} {102 223 1358   102 239 2293   102 911 38097   102 934 39960   102 309 4159
3422  102 572 10643   102 627 13069   102 870 35417   102 247 2540   102 393 6608
3423  102 399 7405   102 412 7817   102 660 16277   102 762 24077   102 633 14331
3424  102 705 19673   102 711 20384   102 786 27176   102 792 28758
3425  102 840 32858   102 158 767   102 430 8668   102 607 11824   102 759 23315
3426  102 346 5506   102 822 31179   102 224 1582   102 256 3298   102 845 34547
3427  102 238 2054   102 716 21100   102 794 29552   102 959 42795   102 113 215
3428  102 777 26390   102 252 3042   102 629 13698   102 768 25613   102 208 1135
3429  102 618 12442   102 667 16944   102 670 17614   102 102 102   102 295 3850
3430  102 574 11217   102 726 21826   102 870 36287   102 938 40898   102 148 609
3431  102 335 4824   102 480 9591   102 634 14965   102 160 927   102 844 33702
3432  102 929 39026   102 938 41836   102 480 10071   102 790 27966
3433  102 979 44737   102 133 461   102 330 4489   102 355 6215   102 683 18968
3434  102 730 22556   102 963 43758   102 398 7006   102 652 15617   102 250 2790
3435  102 421 8238   102 443 9111   102 671 18285   102 805 30357   102 113 328
3436  102 234 1816   102 768 24845   102 899 37186   102 257 3555   102 336 5160
3437  102 354 5860   102 839 32018}
3438
3439#==========================================================================
3440
3441do_execsql_test 3.0 {
3442  DROP TABLE IF EXISTS t1;
3443  CREATE TABLE t1(a REAL, b INTEGER);
3444  INSERT INTO t1 VALUES
3445      (5, 10), (10, 20), (13, 26), (13, 26),
3446      (15, 30), (20, 40), (22,80), (30, 90);
3447} {}
3448
3449do_execsql_test 3.1 {
3450  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING )
3451} {5 30   10 112   13 102   13 102   15 142   20 150   22 120   30 90}
3452
3453do_execsql_test 3.2 {
3454  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING )
3455} {5 {}   10 10   13 10   13 10   15 30   20 102   22 82   30 120}
3456
3457do_execsql_test 3.3 {
3458  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING )
3459} {5 {}   10 52   13 30   13 30   15 {}   20 80   22 {}   30 {}}
3460
3461do_execsql_test 3.4 {
3462  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING )
3463} {30 90   22 120   20 150   15 142   13 102   13 102   10 112   5 30}
3464
3465do_execsql_test 3.5 {
3466  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING )
3467} {30 {}   22 90   20 90   15 120   13 120   13 120   10 70   5 102}
3468
3469do_execsql_test 3.6 {
3470  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING )
3471} {30 {}   22 40   20 {}   15 52   13 20   13 20   10 {}   5 {}}
3472
3473do_execsql_test 3.7 {
3474  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5.1 PRECEDING AND 5.3 FOLLOWING )
3475} {5 30   10 112   13 102   13 102   15 142   20 150   22 120   30 90}
3476
3477do_execsql_test 3.8 {
3478  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10.2 PRECEDING AND 5.4 PRECEDING )
3479} {5 {}   10 {}   13 10   13 10   15 10   20 72   22 82   30 120}
3480
3481do_execsql_test 3.9 {
3482  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2.6 FOLLOWING AND 3.5 FOLLOWING )
3483} {5 {}   10 52   13 {}   13 {}   15 {}   20 {}   22 {}   30 {}}
3484
3485do_execsql_test 3.10 {
3486  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5.7 PRECEDING AND 5.8 FOLLOWING )
3487} {30 90   22 120   20 150   15 142   13 102   13 102   10 112   5 30}
3488
3489do_execsql_test 3.11 {
3490  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN UNBOUNDED PRECEDING AND 5.9 PRECEDING )
3491} {30 {}   22 90   20 90   15 170   13 210   13 210   10 210   5 292}
3492
3493do_execsql_test 3.12 {
3494  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2.1 FOLLOWING AND UNBOUNDED FOLLOWING )
3495} {30 232   22 112   20 112   15 30   13 30   13 30   10 10   5 {}}
3496
3497do_execsql_test 3.13 {
3498  SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE 5.1 PRECEDING )
3499} {5 10   10 30   13 72   13 72   15 102   20 70   22 120   30 90}
3500
3501#==========================================================================
3502
3503do_execsql_test 4.0 {
3504  DROP TABLE IF EXISTS t1;
3505  CREATE TABLE t1(a INTEGER, b INTEGER);
3506  INSERT INTO t1 VALUES
3507    (NULL, 1), (NULL, 2), (NULL, 3), (10, 4), (10, 5);
3508} {}
3509
3510do_execsql_test 4.1.1 {
3511  SELECT sum(b) OVER (
3512    ORDER BY a RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING
3513  ) FROM t1 ORDER BY 1;
3514} {6   6   6   9   9}
3515
3516do_execsql_test 4.1.2 {
3517  SELECT sum(b) OVER (
3518    ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING
3519  ) FROM t1 ORDER BY 1;
3520} {6   6   6   9   9}
3521
3522do_execsql_test 4.2.1 {
3523  SELECT sum(b) OVER (
3524    ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
3525  ) FROM t1 ORDER BY 1 NULLS FIRST;
3526} {{}   {}   6   6   6}
3527
3528do_execsql_test 4.2.2 {
3529  SELECT sum(b) OVER (
3530    ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
3531  ) FROM t1 ORDER BY 1 NULLS LAST;
3532} {6   6   6   {}   {}}
3533
3534do_execsql_test 4.2.3 {
3535  SELECT sum(b) OVER (
3536    ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
3537  ) FROM t1 ORDER BY 1 NULLS FIRST;
3538} {{}   {}   6   6   6}
3539
3540do_execsql_test 4.2.4 {
3541  SELECT sum(b) OVER (
3542    ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING
3543  ) FROM t1 ORDER BY 1 NULLS LAST;
3544} {6   6   6   {}   {}}
3545
3546do_execsql_test 4.3.1 {
3547  SELECT sum(b) OVER (
3548    ORDER BY a NULLS FIRST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
3549  ) FROM t1 ORDER BY 1 NULLS FIRST;
3550} {6   6   6   15   15}
3551
3552do_execsql_test 4.3.2 {
3553  SELECT sum(b) OVER (
3554    ORDER BY a NULLS LAST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
3555  ) FROM t1 ORDER BY 1 NULLS LAST;
3556} {9   9   15   15   15}
3557
3558do_execsql_test 4.4.1 {
3559  SELECT sum(b) OVER (
3560    ORDER BY a NULLS FIRST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
3561  ) FROM t1 ORDER BY 1 NULLS FIRST;
3562} {3   6   9   9   12}
3563
3564do_execsql_test 4.4.2 {
3565  SELECT sum(b) OVER (
3566    ORDER BY a NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
3567  ) FROM t1 ORDER BY 1 NULLS LAST;
3568} {5   6   8   9   10}
3569
3570do_execsql_test 4.4.3 {
3571  SELECT sum(b) OVER (
3572    ORDER BY a DESC NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
3573  ) FROM t1 ORDER BY 1 NULLS FIRST;
3574} {5   6   8   9   10}
3575
3576do_execsql_test 4.4.4 {
3577  SELECT sum(b) OVER (
3578    ORDER BY a DESC NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
3579  ) FROM t1 ORDER BY 1 NULLS LAST;
3580} {5   6   8   9   10}
3581
3582do_execsql_test 4.5.1 {
3583  SELECT sum(b) OVER (
3584    ORDER BY a ASC  NULLS LAST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
3585  ) FROM t1 ORDER BY 1 NULLS LAST;
3586} {9   9   15   15   15}
3587
3588do_execsql_test 4.5.2 {
3589  SELECT sum(b) OVER (
3590    ORDER BY a DESC NULLS FIRST RANGE
3591    BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING
3592  ) FROM t1 ORDER BY 1 NULLS LAST;
3593} {6   6   6   15   15}
3594
3595#==========================================================================
3596
3597do_execsql_test 5.0 {
3598  INSERT INTO t3 VALUES
3599    (NULL, 'bb', 355), (NULL, 'cc', 158), (NULL, 'aa', 399),
3600    ('JJ', NULL, 839), ('FF', NULL, 618), ('BB', NULL, 393),
3601    (NULL, 'bb', 629), (NULL, NULL, 667), (NULL, NULL, 870);
3602} {}
3603
3604do_execsql_test 5.1.1.1 {
3605  SELECT max(c) OVER win,
3606             min(c) OVER win,
3607             count(a) OVER win
3608      FROM t3
3609      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3610      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3611} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3612  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3613  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3614  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3615  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3616  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3617  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3618  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3619  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3620  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3621  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3622  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3623  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3624  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3625  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83}
3626
3627do_execsql_test 5.1.1.2 {
3628  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3629             rank() OVER win,
3630             dense_rank() OVER win
3631      FROM t3
3632      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3633      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3634} {23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3635  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3636  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3637  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3638  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3639  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3640  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3641  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3642  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3643  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3644  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3645  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3646  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3647  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3648  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
3649
3650do_execsql_test 5.1.2.1 {
3651  SELECT max(c) OVER win,
3652             min(c) OVER win,
3653             count(a) OVER win
3654      FROM t3
3655      WINDOW win AS (  ORDER BY a NULLS FIRST
3656        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3657      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3658} {899 113 9   899 113 9   899 113 9   899 113 9   899 113 9   899 113 9
3659  899 113 9   899 113 9   899 113 9   899 113 16   899 113 16   899 113 16
3660  899 113 16   899 113 16   899 113 16   899 113 16   979 102 44   979 102 44
3661  979 102 44   979 102 44   979 102 44   979 102 44   979 102 44   979 102 44
3662  979 102 44   979 102 44   979 102 44   979 102 49   979 102 49   979 102 49
3663  979 102 49   979 102 49   979 102 56   979 102 56   979 102 56   979 102 56
3664  979 102 56   979 102 56   979 102 56   979 102 62   979 102 62   979 102 62
3665  979 102 62   979 102 62   979 102 62   979 102 75   979 102 75   979 102 75
3666  979 102 75   979 102 75   979 102 75   979 102 75   979 102 75   979 102 75
3667  979 102 75   979 102 75   979 102 75   979 102 75   979 102 83   979 102 83
3668  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3669  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3670  979 113 25   979 113 25   979 113 25   979 113 25   979 113 25   979 113 25
3671  979 113 25   979 113 25   979 113 25   979 113 33   979 113 33   979 113 33
3672  979 113 33   979 113 33   979 113 33   979 113 33   979 113 33}
3673
3674do_execsql_test 5.1.2.2 {
3675  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3676             rank() OVER win,
3677             dense_rank() OVER win
3678      FROM t3
3679      WINDOW win AS (  ORDER BY a NULLS FIRST
3680        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3681      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3682} {2947 81 11   2947 81 11   2947 81 11   2947 81 11   2947 81 11   2947 81 11
3683  2947 81 11   2947 81 11   2947 81 11   5287 74 10   5287 74 10   5287 74 10
3684  5287 74 10   5287 74 10   5287 74 10   5287 74 10   8400 65 9   8400 65 9
3685  8400 65 9   8400 65 9   8400 65 9   8400 65 9   8400 65 9   8400 65 9
3686  8400 65 9   9664 57 8   9664 57 8   9664 57 8   9664 57 8   9664 57 8
3687  9664 57 8   9664 57 8   9664 57 8   10626 46 7   10626 46 7   10626 46 7
3688  10626 46 7   10626 46 7   10626 46 7   10626 46 7   10626 46 7   10626 46 7
3689  10626 46 7   10626 46 7   12145 41 6   12145 41 6   12145 41 6   12145 41 6
3690  12145 41 6   13949 34 5   13949 34 5   13949 34 5   13949 34 5   13949 34 5
3691  13949 34 5   13949 34 5   15315 28 4   15315 28 4   15315 28 4   15315 28 4
3692  15315 28 4   15315 28 4   18796 15 3   18796 15 3   18796 15 3   18796 15 3
3693  18796 15 3   18796 15 3   18796 15 3   18796 15 3   18796 15 3   18796 15 3
3694  18796 15 3   18796 15 3   18796 15 3   21105 7 2   21105 7 2   21105 7 2
3695  21105 7 2   21105 7 2   21105 7 2   21105 7 2   21105 7 2   23155 1 1
3696  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
3697
3698do_execsql_test 5.1.3.1 {
3699  SELECT max(c) OVER win,
3700             min(c) OVER win,
3701             count(a) OVER win
3702      FROM t3
3703      WINDOW win AS (  PARTITION BY coalesce(a, '')
3704        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3705      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3706} {777 113 5   777 113 5   777 113 5   777 113 5   777 113 5   805 250 7
3707  805 250 7   805 250 7   805 250 7   805 250 7   805 250 7   805 250 7
3708  822 158 6   822 158 6   822 158 6   822 158 6   822 158 6   822 158 6
3709  840 247 13   840 247 13   840 247 13   840 247 13   840 247 13   840 247 13
3710  840 247 13   840 247 13   840 247 13   840 247 13   840 247 13   840 247 13
3711  840 247 13   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
3712  870 158 0   899 113 9   899 113 9   899 113 9   899 113 9   899 113 9
3713  899 113 9   899 113 9   899 113 9   899 113 9   934 223 8   934 223 8
3714  934 223 8   934 223 8   934 223 8   934 223 8   934 223 8   934 223 8
3715  938 102 11   938 102 11   938 102 11   938 102 11   938 102 11   938 102 11
3716  938 102 11   938 102 11   938 102 11   938 102 11   938 102 11   938 148 8
3717  938 148 8   938 148 8   938 148 8   938 148 8   938 148 8   938 148 8
3718  938 148 8   959 224 7   959 224 7   959 224 7   959 224 7   959 224 7
3719  959 224 7   959 224 7   979 133 9   979 133 9   979 133 9   979 133 9
3720  979 133 9   979 133 9   979 133 9   979 133 9   979 133 9}
3721
3722do_execsql_test 5.1.3.2 {
3723  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3724             rank() OVER win,
3725             dense_rank() OVER win
3726      FROM t3
3727      WINDOW win AS (  PARTITION BY coalesce(a, '')
3728        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3729      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3730} {962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   962 1 1
3731  962 1 1   962 1 1   962 1 1   962 1 1   1264 1 1   1264 1 1   1264 1 1
3732  1264 1 1   1264 1 1   1264 1 1   1264 1 1   1264 1 1   1366 1 1   1366 1 1
3733  1366 1 1   1366 1 1   1366 1 1   1366 1 1   1519 1 1   1519 1 1   1519 1 1
3734  1519 1 1   1519 1 1   1804 1 1   1804 1 1   1804 1 1   1804 1 1   1804 1 1
3735  1804 1 1   1804 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1
3736  2050 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1
3737  2309 1 1   2309 1 1   2340 1 1   2340 1 1   2340 1 1   2340 1 1   2340 1 1
3738  2340 1 1   2340 1 1   2947 1 1   2947 1 1   2947 1 1   2947 1 1   2947 1 1
3739  2947 1 1   2947 1 1   2947 1 1   2947 1 1   3113 1 1   3113 1 1   3113 1 1
3740  3113 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3481 1 1
3741  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1
3742  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1}
3743
3744do_execsql_test 5.1.4.1 {
3745  SELECT max(c) OVER win,
3746             min(c) OVER win,
3747             count(a) OVER win
3748      FROM t3
3749      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE NO OTHERS  )
3750      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3751} {870 158 0   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
3752  934 158 8   934 158 8   934 158 8   934 158 8   934 158 8   934 158 8
3753  934 158 8   934 158 8   934 158 21   934 158 21   934 158 21   934 158 21
3754  934 158 21   934 158 21   934 158 21   934 158 21   934 158 21   934 158 21
3755  934 158 21   934 158 21   934 158 21   934 158 27   934 158 27   934 158 27
3756  934 158 27   934 158 27   934 158 27   959 102 50   959 102 50   959 102 50
3757  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
3758  959 102 50   959 102 50   959 102 58   959 102 58   959 102 58   959 102 58
3759  959 102 58   959 102 58   959 102 58   959 102 58   959 113 39   959 113 39
3760  959 113 39   959 113 39   959 113 39   959 158 34   959 158 34   959 158 34
3761  959 158 34   959 158 34   959 158 34   959 158 34   979 102 53   979 102 53
3762  979 102 53   979 102 53   979 102 53   979 102 53   979 102 53   979 102 56
3763  979 102 56   979 102 56   979 102 56   979 102 56   979 102 56   979 102 56
3764  979 102 56   979 102 56   979 102 59   979 102 59   979 102 59   979 102 59
3765  979 102 59   979 102 59   979 102 59   979 102 59   979 102 59}
3766
3767do_execsql_test 5.1.4.2 {
3768  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3769             rank() OVER win,
3770             dense_rank() OVER win
3771      FROM t3
3772      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE NO OTHERS  )
3773      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3774} {2050 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1   4359 7 2
3775  4359 7 2   4359 7 2   4359 7 2   4359 7 2   4359 7 2   4359 7 2   4359 7 2
3776  7840 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3
3777  7840 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3
3778  7840 15 3   9206 28 4   9206 28 4   9206 28 4   9206 28 4   9206 28 4
3779  9206 28 4   11010 34 5   11010 34 5   11010 34 5   11010 34 5   11010 34 5
3780  11010 34 5   11010 34 5   12368 74 10   12368 74 10   12368 74 10
3781  12368 74 10   12368 74 10   12368 74 10   12368 74 10   12529 41 6
3782  12529 41 6   12529 41 6   12529 41 6   12529 41 6   12705 57 8   12705 57 8
3783  12705 57 8   12705 57 8   12705 57 8   12705 57 8   12705 57 8   12705 57 8
3784  13491 46 7   13491 46 7   13491 46 7   13491 46 7   13491 46 7   13491 46 7
3785  13491 46 7   13491 46 7   13491 46 7   13491 46 7   13491 46 7   13509 65 9
3786  13509 65 9   13509 65 9   13509 65 9   13509 65 9   13509 65 9   13509 65 9
3787  13509 65 9   13509 65 9   13949 81 11   13949 81 11   13949 81 11
3788  13949 81 11   13949 81 11   13949 81 11   13949 81 11   13949 81 11
3789  13949 81 11}
3790
3791do_execsql_test 5.1.5.1 {
3792  SELECT max(c) OVER win,
3793             min(c) OVER win,
3794             count(a) OVER win
3795      FROM t3
3796      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE NO OTHERS  )
3797      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3798} {102 102 1   113 113 2   113 113 2   133 133 1   148 148 1   160 158 2
3799  160 158 2   160 158 2   208 208 1   224 223 2   224 223 2   239 234 3
3800  239 234 3   239 234 3   252 247 3   257 247 5   257 247 5   257 250 4
3801  257 252 3   295 295 1   309 309 1   336 330 3   336 330 3   336 330 3
3802  346 346 1   355 354 2   355 354 2   355 354 2   399 393 4   399 393 4
3803  399 393 4   399 393 4   399 393 4   412 412 1   421 421 1   430 430 1
3804  443 443 1   480 480 2   480 480 2   574 572 2   574 572 2   607 607 1
3805  618 618 2   618 618 2   634 627 4   634 627 4   634 627 4   634 627 4
3806  634 629 3   652 652 1   667 660 2   671 667 3   671 667 3   671 667 3
3807  671 667 3   683 683 1   711 705 2   716 705 3   716 711 2   730 726 2
3808  730 726 2   762 759 2   768 759 4   768 762 3   768 762 3   777 777 1
3809  792 786 3   794 786 4   794 786 4   794 790 3   805 805 1   822 822 1
3810  845 839 5   845 839 5   845 839 5   845 839 5   845 839 5   870 870 2
3811  870 870 2   870 870 2   899 899 1   911 911 1   934 929 2   938 929 4
3812  938 934 3   938 934 3   963 959 2   963 959 2   979 979 1}
3813
3814do_execsql_test 5.1.5.2 {
3815  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3816             rank() OVER win,
3817             dense_rank() OVER win
3818      FROM t3
3819      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE NO OTHERS  )
3820      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3821} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 25 23   {} 34 29
3822  {} 36 31   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 43 37   {} 43 37
3823  {} 50 42   {} 60 51   {} 61 52   {} 64 55   {} 64 55   {} 67 57   {} 68 58
3824  {} 69 59   {} 70 60   {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 85 72
3825  {} 85 72   133 4 3   223 10 8   223 11 9   226 2 2   226 2 2   239 12 10
3826  239 13 11   239 14 12   247 15 13   257 18 16   257 19 17   295 20 18
3827  309 21 19   335 22 20   335 23 21   335 24 22   421 35 30   443 37 32
3828  504 16 14   504 17 15   607 42 36   683 56 47   710 26 24   710 27 25
3829  710 27 25   711 59 50   759 62 53   759 63 54   777 66 56   805 71 61
3830  899 81 68   911 82 69   929 83 70   929 84 71   979 89 75   1334 51 43
3831  1416 57 48   1416 58 49   1584 29 26   1584 29 26   1584 31 27   1584 32 28
3832  1584 32 28   1891 49 41   1922 87 73   1922 88 74   2005 52 44   2005 52 44
3833  2005 54 45   2005 55 46   2518 45 38   2518 46 39   2518 46 39   2518 48 40
3834  2523 73 63   2523 73 63   2523 75 64   2523 76 65   2523 77 66}
3835
3836do_execsql_test 5.1.6.1 {
3837  SELECT max(c) OVER win,
3838             min(c) OVER win,
3839             count(a) OVER win
3840      FROM t3
3841      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE NO OTHERS  )
3842      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3843} {102 102 1   113 113 2   113 113 2   133 133 1   148 148 1   158 158 1
3844  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
3845  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
3846  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
3847  346 346 1   354 354 1   355 355 1   355 355 1   393 393 2   393 393 2
3848  398 398 1   399 399 1   399 399 1   412 412 1   421 421 1   430 430 1
3849  443 443 1   480 480 2   480 480 2   572 572 1   574 574 1   607 607 1
3850  618 618 2   618 618 2   627 627 1   629 629 1   629 629 1   633 633 1
3851  634 634 1   652 652 1   660 660 1   667 667 1   667 667 1   670 670 1
3852  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
3853  730 730 1   759 759 1   762 762 1   768 768 2   768 768 2   777 777 1
3854  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
3855  839 839 2   839 839 2   840 840 1   844 844 1   845 845 1   870 870 2
3856  870 870 2   870 870 2   899 899 1   911 911 1   929 929 1   934 934 1
3857  938 938 2   938 938 2   959 959 1   963 963 1   979 979 1}
3858
3859do_execsql_test 5.1.6.2 {
3860  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3861             rank() OVER win,
3862             dense_rank() OVER win
3863      FROM t3
3864      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE NO OTHERS  )
3865      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3866} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 11 9   {} 12 10
3867  {} 13 11   {} 16 14   {} 17 15   {} 18 16   {} 22 20   {} 24 22   {} 25 23
3868  {} 26 24   {} 31 27   {} 34 29   {} 36 31   {} 38 33   {} 38 33   {} 40 34
3869  {} 41 35   {} 43 37   {} 43 37   {} 49 41   {} 50 42   {} 51 43   {} 54 45
3870  {} 59 50   {} 60 51   {} 61 52   {} 63 54   {} 64 55   {} 64 55   {} 67 57
3871  {} 68 58   {} 69 59   {} 70 60   {} 72 62   {} 75 64   {} 76 65   {} 78 67
3872  {} 78 67   {} 78 67   {} 84 71   {} 85 72   {} 85 72   133 4 3   223 10 8
3873  226 2 2   226 2 2   239 14 12   247 15 13   257 19 17   295 20 18
3874  309 21 19   335 23 21   421 35 30   443 37 32   607 42 36   627 45 38
3875  633 48 40   671 55 46   683 56 47   705 57 48   710 27 25   710 27 25
3876  711 58 49   759 62 53   777 66 56   786 29 26   786 29 26   798 32 28
3877  798 32 28   805 71 61   845 77 66   899 81 68   911 82 69   929 83 70
3878  959 87 73   963 88 74   979 89 75   1258 46 39   1258 46 39   1334 52 44
3879  1334 52 44   1678 73 63   1678 73 63}
3880
3881do_execsql_test 5.1.7.1 {
3882  SELECT max(c) OVER win,
3883             min(c) OVER win,
3884             count(a) OVER win
3885      FROM t3
3886      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
3887        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3888      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3889} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3890  979 102 83   979 113 81   979 113 82   979 133 80   979 148 79   979 158 77
3891  979 158 78   979 160 77   979 208 76   979 223 75   979 224 74   979 234 73
3892  979 238 72   979 239 71   979 247 70   979 250 69   979 252 68   979 256 67
3893  979 257 66   979 295 65   979 309 64   979 330 63   979 335 62   979 336 61
3894  979 346 60   979 354 59   979 355 58   979 355 58   979 393 56   979 393 57
3895  979 398 55   979 399 54   979 399 54   979 412 53   979 421 52   979 430 51
3896  979 443 50   979 480 48   979 480 49   979 572 47   979 574 46   979 607 45
3897  979 618 43   979 618 44   979 627 42   979 629 41   979 629 41   979 633 40
3898  979 634 39   979 652 38   979 660 37   979 667 36   979 667 36   979 670 35
3899  979 671 34   979 683 33   979 705 32   979 711 31   979 716 30   979 726 29
3900  979 730 28   979 759 27   979 762 26   979 768 24   979 768 25   979 777 23
3901  979 786 22   979 790 21   979 792 20   979 794 19   979 805 18   979 822 17
3902  979 839 15   979 839 16   979 840 14   979 844 13   979 845 12   979 870 10
3903  979 870 11   979 870 11   979 899 9   979 911 8   979 929 7}
3904
3905do_execsql_test 5.1.7.2 {
3906  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3907             rank() OVER win,
3908             dense_rank() OVER win
3909      FROM t3
3910      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
3911        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3912      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3913} {3830 89 89   4741 88 88   5640 84 84   5640 85 85   5640 86 86   5640 87 87
3914  6485 81 81   6485 82 82   6485 83 83   7324 80 80   8163 78 78   8163 79 79
3915  8968 73 73   8968 74 74   8968 75 75   8968 76 76   8968 77 77   9745 69 69
3916  9745 70 70   9745 71 71   9745 72 72   10504 65 65   10504 66 66
3917  10504 67 67   10504 68 68   11215 64 64   11920 63 63   12603 62 62
3918  13274 60 60   13274 61 61   13941 59 59   14608 55 55   14608 56 56
3919  14608 57 57   14608 58 58   15241 54 54   15870 53 53   16499 52 52
3920  17126 49 49   17126 50 50   17126 51 51   17733 44 44   17733 45 45
3921  17733 46 46   17733 47 47   17733 48 48   18176 42 42   18176 43 43
3922  18597 40 40   18597 41 41   18996 39 39   19395 37 37   19395 38 38
3923  19788 36 36   20181 35 35   20536 34 34   20891 30 30   20891 31 31
3924  20891 32 32   20891 33 33   21226 28 28   21226 29 29   21535 27 27
3925  21830 26 26   22087 22 22   22087 23 23   22087 24 24   22087 25 25
3926  22334 21 21   22573 17 17   22573 18 18   22573 19 19   22573 20 20
3927  22796 11 11   22796 12 12   22796 13 13   22796 14 14   22796 15 15
3928  22796 16 16   22929 10 10   23042 9 9   23155 1 1   23155 2 2   23155 3 3
3929  23155 4 4   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
3930
3931do_execsql_test 5.1.8.1 {
3932  SELECT max(c) OVER win,
3933             min(c) OVER win,
3934             count(a) OVER win
3935      FROM t3
3936      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3937      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3938} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3939  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3940  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3941  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3942  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3943  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3944  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3945  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3946  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3947  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3948  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3949  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3950  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3951  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3952  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83}
3953
3954do_execsql_test 5.1.8.2 {
3955  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
3956             rank() OVER win,
3957             dense_rank() OVER win
3958      FROM t3
3959      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3960      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3961} {23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3962  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3963  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3964  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3965  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3966  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3967  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3968  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3969  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3970  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3971  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3972  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3973  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3974  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
3975  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
3976
3977do_execsql_test 5.1.9.1 {
3978  SELECT max(c) OVER win,
3979             min(c) OVER win,
3980             count(a) OVER win
3981      FROM t3
3982      WINDOW win AS (  ORDER BY a NULLS LAST
3983        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
3984      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
3985} {870 158 0   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
3986  899 113 9   899 113 9   899 113 9   899 113 9   899 113 9   899 113 9
3987  899 113 9   899 113 9   899 113 9   899 113 16   899 113 16   899 113 16
3988  899 113 16   899 113 16   899 113 16   899 113 16   979 102 44   979 102 44
3989  979 102 44   979 102 44   979 102 44   979 102 44   979 102 44   979 102 44
3990  979 102 44   979 102 44   979 102 44   979 102 49   979 102 49   979 102 49
3991  979 102 49   979 102 49   979 102 56   979 102 56   979 102 56   979 102 56
3992  979 102 56   979 102 56   979 102 56   979 102 62   979 102 62   979 102 62
3993  979 102 62   979 102 62   979 102 62   979 102 75   979 102 75   979 102 75
3994  979 102 75   979 102 75   979 102 75   979 102 75   979 102 75   979 102 75
3995  979 102 75   979 102 75   979 102 75   979 102 75   979 102 83   979 102 83
3996  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
3997  979 113 25   979 113 25   979 113 25   979 113 25   979 113 25   979 113 25
3998  979 113 25   979 113 25   979 113 25   979 113 33   979 113 33   979 113 33
3999  979 113 33   979 113 33   979 113 33   979 113 33   979 113 33}
4000
4001do_execsql_test 5.1.9.2 {
4002  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4003             rank() OVER win,
4004             dense_rank() OVER win
4005      FROM t3
4006      WINDOW win AS (  ORDER BY a NULLS LAST
4007        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
4008      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4009} {2050 84 11   2050 84 11   2050 84 11   2050 84 11   2050 84 11   2050 84 11
4010  4997 75 10   4997 75 10   4997 75 10   4997 75 10   4997 75 10   4997 75 10
4011  4997 75 10   4997 75 10   4997 75 10   7337 68 9   7337 68 9   7337 68 9
4012  7337 68 9   7337 68 9   7337 68 9   7337 68 9   10450 59 8   10450 59 8
4013  10450 59 8   10450 59 8   10450 59 8   10450 59 8   10450 59 8   10450 59 8
4014  10450 59 8   11714 51 7   11714 51 7   11714 51 7   11714 51 7   11714 51 7
4015  11714 51 7   11714 51 7   11714 51 7   12676 40 6   12676 40 6   12676 40 6
4016  12676 40 6   12676 40 6   12676 40 6   12676 40 6   12676 40 6   12676 40 6
4017  12676 40 6   12676 40 6   14195 35 5   14195 35 5   14195 35 5   14195 35 5
4018  14195 35 5   15999 28 4   15999 28 4   15999 28 4   15999 28 4   15999 28 4
4019  15999 28 4   15999 28 4   17365 22 3   17365 22 3   17365 22 3   17365 22 3
4020  17365 22 3   17365 22 3   20846 9 2   20846 9 2   20846 9 2   20846 9 2
4021  20846 9 2   20846 9 2   20846 9 2   20846 9 2   20846 9 2   20846 9 2
4022  20846 9 2   20846 9 2   20846 9 2   23155 1 1   23155 1 1   23155 1 1
4023  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
4024
4025do_execsql_test 5.1.10.1 {
4026  SELECT max(c) OVER win,
4027             min(c) OVER win,
4028             count(a) OVER win
4029      FROM t3
4030      WINDOW win AS (  PARTITION BY coalesce(a, '')
4031        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
4032      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4033} {777 113 5   777 113 5   777 113 5   777 113 5   777 113 5   805 250 7
4034  805 250 7   805 250 7   805 250 7   805 250 7   805 250 7   805 250 7
4035  822 158 6   822 158 6   822 158 6   822 158 6   822 158 6   822 158 6
4036  840 247 13   840 247 13   840 247 13   840 247 13   840 247 13   840 247 13
4037  840 247 13   840 247 13   840 247 13   840 247 13   840 247 13   840 247 13
4038  840 247 13   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
4039  870 158 0   899 113 9   899 113 9   899 113 9   899 113 9   899 113 9
4040  899 113 9   899 113 9   899 113 9   899 113 9   934 223 8   934 223 8
4041  934 223 8   934 223 8   934 223 8   934 223 8   934 223 8   934 223 8
4042  938 102 11   938 102 11   938 102 11   938 102 11   938 102 11   938 102 11
4043  938 102 11   938 102 11   938 102 11   938 102 11   938 102 11   938 148 8
4044  938 148 8   938 148 8   938 148 8   938 148 8   938 148 8   938 148 8
4045  938 148 8   959 224 7   959 224 7   959 224 7   959 224 7   959 224 7
4046  959 224 7   959 224 7   979 133 9   979 133 9   979 133 9   979 133 9
4047  979 133 9   979 133 9   979 133 9   979 133 9   979 133 9}
4048
4049do_execsql_test 5.1.10.2 {
4050  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4051             rank() OVER win,
4052             dense_rank() OVER win
4053      FROM t3
4054      WINDOW win AS (  PARTITION BY coalesce(a, '')
4055        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
4056      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4057} {962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   962 1 1
4058  962 1 1   962 1 1   962 1 1   962 1 1   1264 1 1   1264 1 1   1264 1 1
4059  1264 1 1   1264 1 1   1264 1 1   1264 1 1   1264 1 1   1366 1 1   1366 1 1
4060  1366 1 1   1366 1 1   1366 1 1   1366 1 1   1519 1 1   1519 1 1   1519 1 1
4061  1519 1 1   1519 1 1   1804 1 1   1804 1 1   1804 1 1   1804 1 1   1804 1 1
4062  1804 1 1   1804 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1   2050 1 1
4063  2050 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1
4064  2309 1 1   2309 1 1   2340 1 1   2340 1 1   2340 1 1   2340 1 1   2340 1 1
4065  2340 1 1   2340 1 1   2947 1 1   2947 1 1   2947 1 1   2947 1 1   2947 1 1
4066  2947 1 1   2947 1 1   2947 1 1   2947 1 1   3113 1 1   3113 1 1   3113 1 1
4067  3113 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3481 1 1
4068  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1
4069  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1}
4070
4071do_execsql_test 5.1.11.1 {
4072  SELECT max(c) OVER win,
4073             min(c) OVER win,
4074             count(a) OVER win
4075      FROM t3
4076      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE NO OTHERS  )
4077      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4078} {934 158 27   934 158 27   934 158 27   934 158 27   934 158 27   934 158 27
4079  934 223 8   934 223 8   934 223 8   934 223 8   934 223 8   934 223 8
4080  934 223 8   934 223 8   934 223 21   934 223 21   934 223 21   934 223 21
4081  934 223 21   934 223 21   934 223 21   934 223 21   934 223 21   934 223 21
4082  934 223 21   934 223 21   934 223 21   959 102 50   959 102 50   959 102 50
4083  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
4084  959 102 50   959 102 50   959 102 58   959 102 58   959 102 58   959 102 58
4085  959 102 58   959 102 58   959 102 58   959 102 58   959 113 39   959 113 39
4086  959 113 39   959 113 39   959 113 39   959 158 34   959 158 34   959 158 34
4087  959 158 34   959 158 34   959 158 34   959 158 34   979 102 49   979 102 49
4088  979 102 49   979 102 49   979 102 49   979 102 49   979 102 53   979 102 53
4089  979 102 53   979 102 53   979 102 53   979 102 53   979 102 53   979 102 56
4090  979 102 56   979 102 56   979 102 56   979 102 56   979 102 56   979 102 56
4091  979 102 56   979 102 56   979 102 59   979 102 59   979 102 59   979 102 59
4092  979 102 59   979 102 59   979 102 59   979 102 59   979 102 59}
4093
4094do_execsql_test 5.1.11.2 {
4095  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4096             rank() OVER win,
4097             dense_rank() OVER win
4098      FROM t3
4099      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE NO OTHERS  )
4100      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4101} {2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1   2309 1 1
4102  2309 1 1   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2
4103  5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2
4104  7156 22 3   7156 22 3   7156 22 3   7156 22 3   7156 22 3   7156 22 3
4105  8960 28 4   8960 28 4   8960 28 4   8960 28 4   8960 28 4   8960 28 4
4106  8960 28 4   10479 35 5   10479 35 5   10479 35 5   10479 35 5   10479 35 5
4107  11441 40 6   11441 40 6   11441 40 6   11441 40 6   11441 40 6   11441 40 6
4108  11441 40 6   11441 40 6   11441 40 6   11441 40 6   11441 40 6   12368 68 9
4109  12368 68 9   12368 68 9   12368 68 9   12368 68 9   12368 68 9   12368 68 9
4110  12705 51 7   12705 51 7   12705 51 7   12705 51 7   12705 51 7   12705 51 7
4111  12705 51 7   12705 51 7   13509 59 8   13509 59 8   13509 59 8   13509 59 8
4112  13509 59 8   13509 59 8   13509 59 8   13509 59 8   13509 59 8
4113  13949 75 10   13949 75 10   13949 75 10   13949 75 10   13949 75 10
4114  13949 75 10   13949 75 10   13949 75 10   13949 75 10   14195 84 11
4115  14195 84 11   14195 84 11   14195 84 11   14195 84 11   14195 84 11}
4116
4117do_execsql_test 5.1.12.1 {
4118  SELECT max(c) OVER win,
4119             min(c) OVER win,
4120             count(a) OVER win
4121      FROM t3
4122      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE NO OTHERS  )
4123      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4124} {102 102 1   113 113 2   113 113 2   133 133 1   148 148 1   160 158 2
4125  160 158 2   160 158 2   208 208 1   224 223 2   224 223 2   239 234 3
4126  239 234 3   239 234 3   252 247 3   257 247 5   257 247 5   257 250 4
4127  257 252 3   295 295 1   309 309 1   336 330 3   336 330 3   336 330 3
4128  346 346 1   355 354 2   355 354 2   355 354 2   399 393 4   399 393 4
4129  399 393 4   399 393 4   399 393 4   412 412 1   421 421 1   430 430 1
4130  443 443 1   480 480 2   480 480 2   574 572 2   574 572 2   607 607 1
4131  618 618 2   618 618 2   634 627 4   634 627 4   634 627 4   634 627 4
4132  634 629 3   652 652 1   667 660 2   671 667 3   671 667 3   671 667 3
4133  671 667 3   683 683 1   711 705 2   716 705 3   716 711 2   730 726 2
4134  730 726 2   762 759 2   768 759 4   768 762 3   768 762 3   777 777 1
4135  792 786 3   794 786 4   794 786 4   794 790 3   805 805 1   822 822 1
4136  845 839 5   845 839 5   845 839 5   845 839 5   845 839 5   870 870 2
4137  870 870 2   870 870 2   899 899 1   911 911 1   934 929 2   938 929 4
4138  938 934 3   938 934 3   963 959 2   963 959 2   979 979 1}
4139
4140do_execsql_test 5.1.12.2 {
4141  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4142             rank() OVER win,
4143             dense_rank() OVER win
4144      FROM t3
4145      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE NO OTHERS  )
4146      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4147} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 25 23   {} 34 29
4148  {} 36 31   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 43 37   {} 43 37
4149  {} 50 42   {} 60 51   {} 61 52   {} 64 55   {} 64 55   {} 67 57   {} 68 58
4150  {} 69 59   {} 70 60   {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 85 72
4151  {} 85 72   133 4 3   223 10 8   223 11 9   226 2 2   226 2 2   239 12 10
4152  239 13 11   239 14 12   247 15 13   257 18 16   257 19 17   295 20 18
4153  309 21 19   335 22 20   335 23 21   335 24 22   421 35 30   443 37 32
4154  504 16 14   504 17 15   607 42 36   683 56 47   710 26 24   710 27 25
4155  710 27 25   711 59 50   759 62 53   759 63 54   777 66 56   805 71 61
4156  899 81 68   911 82 69   929 83 70   929 84 71   979 89 75   1334 51 43
4157  1416 57 48   1416 58 49   1584 29 26   1584 29 26   1584 31 27   1584 32 28
4158  1584 32 28   1891 49 41   1922 87 73   1922 88 74   2005 52 44   2005 52 44
4159  2005 54 45   2005 55 46   2518 45 38   2518 46 39   2518 46 39   2518 48 40
4160  2523 73 63   2523 73 63   2523 75 64   2523 76 65   2523 77 66}
4161
4162do_execsql_test 5.1.13.1 {
4163  SELECT max(c) OVER win,
4164             min(c) OVER win,
4165             count(a) OVER win
4166      FROM t3
4167      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE NO OTHERS  )
4168      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4169} {102 102 1   113 113 2   113 113 2   133 133 1   148 148 1   158 158 1
4170  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
4171  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
4172  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
4173  346 346 1   354 354 1   355 355 1   355 355 1   393 393 2   393 393 2
4174  398 398 1   399 399 1   399 399 1   412 412 1   421 421 1   430 430 1
4175  443 443 1   480 480 2   480 480 2   572 572 1   574 574 1   607 607 1
4176  618 618 2   618 618 2   627 627 1   629 629 1   629 629 1   633 633 1
4177  634 634 1   652 652 1   660 660 1   667 667 1   667 667 1   670 670 1
4178  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
4179  730 730 1   759 759 1   762 762 1   768 768 2   768 768 2   777 777 1
4180  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
4181  839 839 2   839 839 2   840 840 1   844 844 1   845 845 1   870 870 2
4182  870 870 2   870 870 2   899 899 1   911 911 1   929 929 1   934 934 1
4183  938 938 2   938 938 2   959 959 1   963 963 1   979 979 1}
4184
4185do_execsql_test 5.1.13.2 {
4186  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4187             rank() OVER win,
4188             dense_rank() OVER win
4189      FROM t3
4190      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE NO OTHERS  )
4191      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4192} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 11 9   {} 12 10
4193  {} 13 11   {} 16 14   {} 17 15   {} 18 16   {} 22 20   {} 24 22   {} 25 23
4194  {} 26 24   {} 31 27   {} 34 29   {} 36 31   {} 38 33   {} 38 33   {} 40 34
4195  {} 41 35   {} 43 37   {} 43 37   {} 49 41   {} 50 42   {} 51 43   {} 54 45
4196  {} 59 50   {} 60 51   {} 61 52   {} 63 54   {} 64 55   {} 64 55   {} 67 57
4197  {} 68 58   {} 69 59   {} 70 60   {} 72 62   {} 75 64   {} 76 65   {} 78 67
4198  {} 78 67   {} 78 67   {} 84 71   {} 85 72   {} 85 72   133 4 3   223 10 8
4199  226 2 2   226 2 2   239 14 12   247 15 13   257 19 17   295 20 18
4200  309 21 19   335 23 21   421 35 30   443 37 32   607 42 36   627 45 38
4201  633 48 40   671 55 46   683 56 47   705 57 48   710 27 25   710 27 25
4202  711 58 49   759 62 53   777 66 56   786 29 26   786 29 26   798 32 28
4203  798 32 28   805 71 61   845 77 66   899 81 68   911 82 69   929 83 70
4204  959 87 73   963 88 74   979 89 75   1258 46 39   1258 46 39   1334 52 44
4205  1334 52 44   1678 73 63   1678 73 63}
4206
4207do_execsql_test 5.1.14.1 {
4208  SELECT max(c) OVER win,
4209             min(c) OVER win,
4210             count(a) OVER win
4211      FROM t3
4212      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
4213        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
4214      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4215} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
4216  979 102 83   979 113 81   979 113 82   979 133 80   979 148 79   979 158 77
4217  979 158 78   979 160 77   979 208 76   979 223 75   979 224 74   979 234 73
4218  979 238 72   979 239 71   979 247 70   979 250 69   979 252 68   979 256 67
4219  979 257 66   979 295 65   979 309 64   979 330 63   979 335 62   979 336 61
4220  979 346 60   979 354 59   979 355 57   979 355 58   979 393 56   979 393 57
4221  979 398 55   979 399 53   979 399 54   979 412 53   979 421 52   979 430 51
4222  979 443 50   979 480 48   979 480 49   979 572 47   979 574 46   979 607 45
4223  979 618 43   979 618 44   979 627 42   979 629 40   979 629 41   979 633 40
4224  979 634 39   979 652 38   979 660 37   979 667 35   979 667 36   979 670 35
4225  979 671 34   979 683 33   979 705 32   979 711 31   979 716 30   979 726 29
4226  979 730 28   979 759 27   979 762 26   979 768 24   979 768 25   979 777 23
4227  979 786 22   979 790 21   979 792 20   979 794 19   979 805 18   979 822 17
4228  979 839 15   979 839 16   979 840 14   979 844 13   979 845 12   979 870 9
4229  979 870 10   979 870 11   979 899 9   979 911 8   979 929 7}
4230
4231do_execsql_test 5.1.14.2 {
4232  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4233             rank() OVER win,
4234             dense_rank() OVER win
4235      FROM t3
4236      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
4237        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE NO OTHERS  )
4238      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4239} {3830 89 89   4741 88 88   5640 84 84   5640 85 85   5640 86 86   5640 87 87
4240  6485 81 81   6485 82 82   6485 83 83   7324 80 80   8163 78 78   8163 79 79
4241  8968 73 73   8968 74 74   8968 75 75   8968 76 76   8968 77 77   9745 69 69
4242  9745 70 70   9745 71 71   9745 72 72   10504 65 65   10504 66 66
4243  10504 67 67   10504 68 68   11215 64 64   11920 63 63   12603 62 62
4244  13274 60 60   13274 61 61   13941 59 59   14608 55 55   14608 56 56
4245  14608 57 57   14608 58 58   15241 54 54   15870 53 53   16499 52 52
4246  17126 49 49   17126 50 50   17126 51 51   17733 44 44   17733 45 45
4247  17733 46 46   17733 47 47   17733 48 48   18176 42 42   18176 43 43
4248  18597 40 40   18597 41 41   18996 39 39   19395 37 37   19395 38 38
4249  19788 36 36   20181 35 35   20536 34 34   20891 30 30   20891 31 31
4250  20891 32 32   20891 33 33   21226 28 28   21226 29 29   21535 27 27
4251  21830 26 26   22087 22 22   22087 23 23   22087 24 24   22087 25 25
4252  22334 21 21   22573 17 17   22573 18 18   22573 19 19   22573 20 20
4253  22796 11 11   22796 12 12   22796 13 13   22796 14 14   22796 15 15
4254  22796 16 16   22929 10 10   23042 9 9   23155 1 1   23155 2 2   23155 3 3
4255  23155 4 4   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
4256
4257do_execsql_test 5.2.1.1 {
4258  SELECT max(c) OVER win,
4259             min(c) OVER win,
4260             count(a) OVER win
4261      FROM t3
4262      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4263      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4264} {963 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4265  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4266  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4267  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4268  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4269  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4270  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4271  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4272  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4273  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4274  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4275  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4276  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4277  979 102 82   979 102 82   979 102 82   979 102 82   979 102 83   979 102 83
4278  979 102 83   979 102 83   979 102 83   979 102 83   979 113 82}
4279
4280do_execsql_test 5.2.1.2 {
4281  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4282             rank() OVER win,
4283             dense_rank() OVER win
4284      FROM t3
4285      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4286      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4287} {22176 1 1   22192 1 1   22196 1 1   22226 1 1   22244 1 1   22256 1 1
4288  22310 1 1   22316 1 1   22316 1 1   22350 1 1   22378 1 1   22396 1 1
4289  22444 1 1   22450 1 1   22472 1 1   22484 1 1   22488 1 1   22488 1 1
4290  22522 1 1   22526 1 1   22526 1 1   22528 1 1   22548 1 1   22712 1 1
4291  22734 1 1   22756 1 1   22756 1 1   22762 1 1   22762 1 1   22800 1 1
4292  22800 1 1   22820 1 1   22846 1 1   22860 1 1   22898 1 1   22908 1 1
4293  22916 1 1   22932 1 1   23022 1 1   23042 1 1   23042 1 1   23155 1 1
4294  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4295  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4296  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4297  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4298  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4299  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4300  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4301  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
4302
4303do_execsql_test 5.2.2.1 {
4304  SELECT max(c) OVER win,
4305             min(c) OVER win,
4306             count(a) OVER win
4307      FROM t3
4308      WINDOW win AS (  ORDER BY a NULLS FIRST
4309        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4310      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4311} {839 113 8   899 113 8   899 113 8   899 113 8   899 113 8   899 113 8
4312  899 113 8   899 113 8   899 113 15   899 113 15   899 113 15   899 113 15
4313  899 113 15   899 113 15   899 113 15   899 234 8   963 113 24   979 102 43
4314  979 102 43   979 102 43   979 102 43   979 102 43   979 102 43   979 102 43
4315  979 102 43   979 102 43   979 102 43   979 102 48   979 102 48   979 102 48
4316  979 102 48   979 102 48   979 102 55   979 102 55   979 102 55   979 102 55
4317  979 102 55   979 102 55   979 102 55   979 102 61   979 102 61   979 102 61
4318  979 102 61   979 102 61   979 102 61   979 102 74   979 102 74   979 102 74
4319  979 102 74   979 102 74   979 102 74   979 102 74   979 102 74   979 102 74
4320  979 102 74   979 102 74   979 102 74   979 102 74   979 102 82   979 102 82
4321  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4322  979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
4323  979 113 24   979 113 24   979 113 24   979 113 24   979 113 24   979 113 24
4324  979 113 24   979 113 24   979 113 32   979 113 32   979 113 32   979 113 32
4325  979 113 32   979 113 32   979 113 32   979 113 32   979 113 43}
4326
4327do_execsql_test 5.2.2.2 {
4328  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4329             rank() OVER win,
4330             dense_rank() OVER win
4331      FROM t3
4332      WINDOW win AS (  ORDER BY a NULLS FIRST
4333        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4334      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4335} {2048 81 11   2108 81 11   2108 81 11   2690 81 11   2834 81 11   2947 81 11
4336  2947 81 11   2947 81 11   2947 81 11   4482 74 10   4616 74 10   4844 74 10
4337  4866 74 10   5287 74 10   5287 74 10   5287 74 10   7421 65 9   7437 65 9
4338  7717 65 9   8045 65 9   8267 65 9   8400 65 9   8400 65 9   8400 65 9
4339  8400 65 9   8735 57 8   9329 57 8   9664 57 8   9664 57 8   9664 57 8
4340  9664 57 8   9664 57 8   9664 57 8   9959 46 7   10331 46 7   10626 46 7
4341  10626 46 7   10626 46 7   10626 46 7   10626 46 7   10626 46 7   10626 46 7
4342  10626 46 7   10626 46 7   11368 41 6   11516 41 6   12032 41 6   12145 41 6
4343  12145 41 6   12990 34 5   13104 34 5   13949 34 5   13949 34 5   13949 34 5
4344  13949 34 5   13949 34 5   14556 28 4   14708 28 4   15315 28 4   15315 28 4
4345  15315 28 4   15315 28 4   18085 15 3   18091 15 3   18163 15 3   18397 15 3
4346  18403 15 3   18403 15 3   18549 15 3   18796 15 3   18796 15 3   18796 15 3
4347  18796 15 3   18796 15 3   18796 15 3   20194 7 2   20478 7 2   20796 7 2
4348  20866 7 2   20882 7 2   21105 7 2   21105 7 2   21105 7 2   22488 1 1
4349  22526 1 1   22756 1 1   22800 1 1   23155 1 1   23155 1 1}
4350
4351do_execsql_test 5.2.3.1 {
4352  SELECT max(c) OVER win,
4353             min(c) OVER win,
4354             count(a) OVER win
4355      FROM t3
4356      WINDOW win AS (  PARTITION BY coalesce(a, '')
4357        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4358      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4359} {667 158 0   671 250 6   759 158 5   768 113 4   777 113 4   777 113 4
4360  777 113 4   777 252 4   792 247 12   805 250 6   805 250 6   805 250 6
4361  805 250 6   805 250 6   805 398 6   822 158 5   822 158 5   822 158 5
4362  822 158 5   822 346 5   839 113 8   840 247 12   840 247 12   840 247 12
4363  840 247 12   840 247 12   840 247 12   840 247 12   840 247 12   840 247 12
4364  840 247 12   840 247 12   840 393 12   845 224 6   870 102 10   870 158 0
4365  870 158 0   870 158 0   870 158 0   870 355 0   899 113 8   899 113 8
4366  899 113 8   899 113 8   899 113 8   899 113 8   899 113 8   899 234 8
4367  911 223 7   929 148 7   934 223 7   934 223 7   934 223 7   934 223 7
4368  934 223 7   934 223 7   934 239 7   938 102 10   938 102 10   938 102 10
4369  938 102 10   938 102 10   938 102 10   938 102 10   938 102 10   938 102 10
4370  938 148 7   938 148 7   938 148 7   938 148 7   938 148 7   938 148 7
4371  938 160 7   938 208 10   959 224 6   959 224 6   959 224 6   959 224 6
4372  959 224 6   959 238 6   963 133 8   979 133 8   979 133 8   979 133 8
4373  979 133 8   979 133 8   979 133 8   979 133 8   979 330 8}
4374
4375do_execsql_test 5.2.3.2 {
4376  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4377             rank() OVER win,
4378             dense_rank() OVER win
4379      FROM t3
4380      WINDOW win AS (  PARTITION BY coalesce(a, '')
4381        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4382      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4383} {295 1 1   335 1 1   607 1 1   667 1 1   742 1 1   759 1 1   845 1 1
4384  890 1 1   929 1 1   959 1 1   962 1 1   962 1 1   962 1 1   962 1 1
4385  962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   1264 1 1   1264 1 1
4386  1264 1 1   1264 1 1   1264 1 1   1264 1 1   1366 1 1   1366 1 1   1366 1 1
4387  1366 1 1   1383 1 1   1398 1 1   1406 1 1   1421 1 1   1519 1 1   1519 1 1
4388  1535 1 1   1651 1 1   1669 1 1   1682 1 1   1695 1 1   1804 1 1   1804 1 1
4389  1804 1 1   1804 1 1   1804 1 1   1897 1 1   1919 1 1   2000 1 1   2048 1 1
4390  2050 1 1   2050 1 1   2070 1 1   2086 1 1   2108 1 1   2108 1 1   2134 1 1
4391  2150 1 1   2309 1 1   2309 1 1   2309 1 1   2340 1 1   2340 1 1   2340 1 1
4392  2430 1 1   2690 1 1   2758 1 1   2770 1 1   2776 1 1   2834 1 1   2848 1 1
4393  2947 1 1   2947 1 1   2947 1 1   2947 1 1   2980 1 1   3082 1 1   3088 1 1
4394  3088 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3234 1 1   3481 1 1
4395  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1}
4396
4397do_execsql_test 5.2.4.1 {
4398  SELECT max(c) OVER win,
4399             min(c) OVER win,
4400             count(a) OVER win
4401      FROM t3
4402      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE CURRENT ROW  )
4403      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4404} {667 158 0   870 158 0   870 158 0   870 158 0   870 158 0   870 355 0
4405  911 158 7   934 158 7   934 158 7   934 158 7   934 158 7   934 158 7
4406  934 158 7   934 158 7   934 158 20   934 158 20   934 158 20   934 158 20
4407  934 158 20   934 158 20   934 158 20   934 158 20   934 158 20   934 158 20
4408  934 158 20   934 158 20   934 158 20   934 158 26   934 158 26   934 158 26
4409  934 158 26   934 158 26   934 158 26   934 158 33   959 102 49   959 102 49
4410  959 102 49   959 102 49   959 102 49   959 102 49   959 102 49   959 102 49
4411  959 102 49   959 102 49   959 102 57   959 102 57   959 102 57   959 102 57
4412  959 102 57   959 102 57   959 102 57   959 102 57   959 113 38   959 113 38
4413  959 113 38   959 113 38   959 113 49   959 158 33   959 158 33   959 158 33
4414  959 158 33   959 158 33   959 158 33   959 158 38   963 102 58   979 102 52
4415  979 102 52   979 102 52   979 102 52   979 102 52   979 102 52   979 102 52
4416  979 102 55   979 102 55   979 102 55   979 102 55   979 102 55   979 102 55
4417  979 102 55   979 102 55   979 102 55   979 102 58   979 102 58   979 102 58
4418  979 102 58   979 102 58   979 102 58   979 102 58   979 102 58}
4419
4420do_execsql_test 5.2.4.2 {
4421  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4422             rank() OVER win,
4423             dense_rank() OVER win
4424      FROM t3
4425      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE CURRENT ROW  )
4426      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4427} {1383 1 1   1421 1 1   1651 1 1   1695 1 1   2050 1 1   2050 1 1   3448 7 2
4428  3732 7 2   4050 7 2   4120 7 2   4136 7 2   4359 7 2   4359 7 2   4359 7 2
4429  7129 15 3   7135 15 3   7207 15 3   7441 15 3   7447 15 3   7447 15 3
4430  7593 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3   7840 15 3
4431  7840 15 3   8447 28 4   8599 28 4   9206 28 4   9206 28 4   9206 28 4
4432  9206 28 4   10051 34 5   10165 34 5   11010 34 5   11010 34 5   11010 34 5
4433  11010 34 5   11010 34 5   11563 74 10   11697 74 10   11752 41 6
4434  11776 57 8   11900 41 6   11925 74 10   11947 74 10   12368 74 10
4435  12368 74 10   12368 74 10   12370 57 8   12416 41 6   12529 41 6
4436  12529 41 6   12530 65 9   12546 65 9   12705 57 8   12705 57 8   12705 57 8
4437  12705 57 8   12705 57 8   12705 57 8   12824 46 7   12826 65 9
4438  13050 81 11   13110 81 11   13110 81 11   13154 65 9   13196 46 7
4439  13376 65 9   13491 46 7   13491 46 7   13491 46 7   13491 46 7   13491 46 7
4440  13491 46 7   13491 46 7   13491 46 7   13491 46 7   13509 65 9   13509 65 9
4441  13509 65 9   13509 65 9   13692 81 11   13836 81 11   13949 81 11
4442  13949 81 11   13949 81 11   13949 81 11}
4443
4444do_execsql_test 5.2.5.1 {
4445  SELECT max(c) OVER win,
4446             min(c) OVER win,
4447             count(a) OVER win
4448      FROM t3
4449      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE CURRENT ROW  )
4450      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4451} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4452  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4453  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   113 113 1
4454  113 113 1   158 158 1   160 158 1   160 158 2   223 223 1   224 224 1
4455  238 234 2   239 234 2   239 238 2   252 250 2   256 252 2   257 247 4
4456  257 247 4   257 250 3   335 330 2   336 330 2   336 335 2   355 354 1
4457  355 354 2   355 355 1   399 393 3   399 393 3   399 393 3   399 393 3
4458  399 393 4   480 480 1   480 480 1   572 572 1   574 574 1   618 618 1
4459  618 618 1   633 629 2   634 627 3   634 627 3   634 627 4   634 629 3
4460  667 667 1   670 667 2   671 667 2   671 667 2   671 667 3   711 711 1
4461  711 711 1   716 705 2   726 726 1   730 730 1   762 762 1   768 759 3
4462  768 762 2   768 762 2   792 790 2   792 790 2   794 786 3   794 786 3
4463  844 839 4   845 839 4   845 839 4   845 839 4   845 839 4   870 870 1
4464  870 870 1   870 870 2   934 934 1   938 929 3   938 934 2   938 934 2
4465  959 959 1   963 963 1}
4466
4467do_execsql_test 5.2.5.2 {
4468  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4469             rank() OVER win,
4470             dense_rank() OVER win
4471      FROM t3
4472      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE CURRENT ROW  )
4473      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4474} {{} 1 1   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 10 8
4475  {} 14 12   {} 15 13   {} 19 17   {} 20 18   {} 21 19   {} 23 21   {} 25 23
4476  {} 34 29   {} 35 30   {} 36 31   {} 37 32   {} 38 33   {} 38 33   {} 40 34
4477  {} 41 35   {} 42 36   {} 43 37   {} 43 37   {} 50 42   {} 56 47   {} 60 51
4478  {} 61 52   {} 62 53   {} 64 55   {} 64 55   {} 66 56   {} 67 57   {} 68 58
4479  {} 69 59   {} 70 60   {} 71 61   {} 72 62   {} 78 67   {} 78 67   {} 78 67
4480  {} 81 68   {} 82 69   {} 83 70   {} 85 72   {} 85 72   {} 89 75   113 2 2
4481  113 2 2   223 11 9   239 12 10   239 13 11   257 18 16   335 22 20
4482  335 24 22   355 27 25   355 27 25   504 16 14   504 17 15   705 58 49
4483  710 26 24   711 57 48   711 59 50   759 63 54   929 84 71   959 88 74
4484  963 87 73   1185 32 28   1185 32 28   1191 29 26   1191 29 26   1334 51 43
4485  1334 55 46   1338 52 44   1338 52 44   1584 31 27   1678 77 66   1684 73 63
4486  1684 73 63   1885 48 40   1889 46 39   1889 46 39   1891 45 38   1891 49 41
4487  2005 54 45   2523 75 64   2523 76 65}
4488
4489do_execsql_test 5.2.6.1 {
4490  SELECT max(c) OVER win,
4491             min(c) OVER win,
4492             count(a) OVER win
4493      FROM t3
4494      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE CURRENT ROW  )
4495      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4496} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4497  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4498  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4499  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4500  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4501  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4502  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4503  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4504  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   113 113 1
4505  113 113 1   158 158 0   158 158 1   355 355 0   355 355 1   393 393 1
4506  393 393 1   399 399 0   399 399 1   480 480 1   480 480 1   618 618 1
4507  618 618 1   629 629 0   629 629 1   667 667 0   667 667 1   768 768 1
4508  768 768 1   839 839 1   839 839 1   870 870 1   870 870 1   870 870 2
4509  938 938 1   938 938 1}
4510
4511do_execsql_test 5.2.6.2 {
4512  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4513             rank() OVER win,
4514             dense_rank() OVER win
4515      FROM t3
4516      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE CURRENT ROW  )
4517      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4518} {{} 1 1   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 10 8
4519  {} 11 9   {} 12 10   {} 13 11   {} 14 12   {} 15 13   {} 16 14   {} 17 15
4520  {} 18 16   {} 19 17   {} 20 18   {} 21 19   {} 22 20   {} 23 21   {} 24 22
4521  {} 25 23   {} 26 24   {} 31 27   {} 34 29   {} 35 30   {} 36 31   {} 37 32
4522  {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37   {} 43 37
4523  {} 45 38   {} 48 40   {} 49 41   {} 50 42   {} 51 43   {} 54 45   {} 55 46
4524  {} 56 47   {} 57 48   {} 58 49   {} 59 50   {} 60 51   {} 61 52   {} 62 53
4525  {} 63 54   {} 64 55   {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59
4526  {} 70 60   {} 71 61   {} 72 62   {} 75 64   {} 76 65   {} 77 66   {} 78 67
4527  {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70   {} 84 71   {} 85 72
4528  {} 85 72   {} 87 73   {} 88 74   {} 89 75   113 2 2   113 2 2   355 27 25
4529  355 27 25   393 29 26   393 29 26   399 32 28   399 32 28   629 46 39
4530  629 46 39   667 52 44   667 52 44   839 73 63   839 73 63}
4531
4532do_execsql_test 5.2.7.1 {
4533  SELECT max(c) OVER win,
4534             min(c) OVER win,
4535             count(a) OVER win
4536      FROM t3
4537      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
4538        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4539      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4540} {963 929 6   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4541  979 102 83   979 113 80   979 113 81   979 113 82   979 133 79   979 148 78
4542  979 158 76   979 158 77   979 160 76   979 208 75   979 223 74   979 224 73
4543  979 234 72   979 238 71   979 239 70   979 247 69   979 250 68   979 252 67
4544  979 256 66   979 257 65   979 295 64   979 309 64   979 330 62   979 335 61
4545  979 336 60   979 346 59   979 354 59   979 355 57   979 355 57   979 393 55
4546  979 393 56   979 398 54   979 399 53   979 399 53   979 412 52   979 421 51
4547  979 430 50   979 443 49   979 480 47   979 480 48   979 572 47   979 574 45
4548  979 607 44   979 618 42   979 618 43   979 627 41   979 629 40   979 629 41
4549  979 633 39   979 634 38   979 652 37   979 660 36   979 667 35   979 667 35
4550  979 670 34   979 671 33   979 683 32   979 705 31   979 711 30   979 716 29
4551  979 726 28   979 730 27   979 759 26   979 762 25   979 768 23   979 768 24
4552  979 777 22   979 786 21   979 790 20   979 792 19   979 794 18   979 805 17
4553  979 822 17   979 839 14   979 839 15   979 840 13   979 844 12   979 845 11
4554  979 870 9   979 870 10   979 870 10   979 899 8   979 911 7}
4555
4556do_execsql_test 5.2.7.2 {
4557  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4558             rank() OVER win,
4559             dense_rank() OVER win
4560      FROM t3
4561      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
4562        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4563      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4564} {2851 89 89   3778 88 88   4681 87 87   5556 83 83   5574 82 82   5586 81 81
4565  5640 84 84   5640 85 85   5640 86 86   7324 80 80   8123 77 77   8129 73 73
4566  8129 74 74   8163 78 78   8163 79 79   8940 71 71   8968 75 75   8968 76 76
4567  9727 66 66   9745 69 69   9745 70 70   9745 72 72   10504 65 65
4568  10504 67 67   10504 68 68   11215 64 64   11844 62 62   11920 63 63
4569  13274 60 60   13274 61 61   13897 58 58   13903 57 57   13925 56 56
4570  13937 55 55   13941 59 59   15203 53 53   15241 54 54   15832 52 52
4571  17100 48 48   17104 46 46   17104 47 47   17106 45 45   17126 49 49
4572  17126 50 50   17126 51 51   17569 42 42   17733 44 44   18176 43 43
4573  18597 40 40   18597 41 41   18952 37 37   18996 39 39   19395 38 38
4574  19760 35 35   19788 36 36   20492 32 32   20492 33 33   20498 30 30
4575  20536 34 34   20833 29 29   20871 28 28   20891 31 31   21180 27 27
4576  21752 23 23   21830 26 26   22025 21 21   22087 22 22   22087 24 24
4577  22087 25 25   22278 20 20   22316 19 19   22549 15 15   22557 14 14
4578  22573 17 17   22573 18 18   22706 10 10   22796 11 11   22796 12 12
4579  22796 13 13   22796 16 16   23022 4 4   23042 2 2   23042 3 3   23042 9 9
4580  23155 1 1   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
4581
4582do_execsql_test 5.2.8.1 {
4583  SELECT max(c) OVER win,
4584             min(c) OVER win,
4585             count(a) OVER win
4586      FROM t3
4587      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4588      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4589} {963 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4590  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4591  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4592  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4593  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4594  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4595  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4596  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4597  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4598  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4599  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4600  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4601  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4602  979 102 82   979 102 82   979 102 82   979 102 82   979 102 83   979 102 83
4603  979 102 83   979 102 83   979 102 83   979 102 83   979 113 82}
4604
4605do_execsql_test 5.2.8.2 {
4606  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4607             rank() OVER win,
4608             dense_rank() OVER win
4609      FROM t3
4610      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4611      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4612} {22176 1 1   22192 1 1   22196 1 1   22226 1 1   22244 1 1   22256 1 1
4613  22310 1 1   22316 1 1   22316 1 1   22350 1 1   22378 1 1   22396 1 1
4614  22444 1 1   22450 1 1   22472 1 1   22484 1 1   22488 1 1   22488 1 1
4615  22522 1 1   22526 1 1   22526 1 1   22528 1 1   22548 1 1   22712 1 1
4616  22734 1 1   22756 1 1   22756 1 1   22762 1 1   22762 1 1   22800 1 1
4617  22800 1 1   22820 1 1   22846 1 1   22860 1 1   22898 1 1   22908 1 1
4618  22916 1 1   22932 1 1   23022 1 1   23042 1 1   23042 1 1   23155 1 1
4619  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4620  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4621  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4622  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4623  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4624  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4625  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1
4626  23155 1 1   23155 1 1   23155 1 1   23155 1 1   23155 1 1}
4627
4628do_execsql_test 5.2.9.1 {
4629  SELECT max(c) OVER win,
4630             min(c) OVER win,
4631             count(a) OVER win
4632      FROM t3
4633      WINDOW win AS (  ORDER BY a NULLS LAST
4634        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4635      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4636} {667 158 0   870 113 8   870 158 0   870 158 0   870 158 0   870 158 0
4637  870 355 0   899 113 8   899 113 8   899 113 8   899 113 8   899 113 8
4638  899 113 8   899 113 8   899 113 15   899 113 15   899 113 15   899 113 15
4639  899 113 15   899 113 15   899 113 15   899 158 8   963 113 24   979 102 43
4640  979 102 43   979 102 43   979 102 43   979 102 43   979 102 43   979 102 43
4641  979 102 43   979 102 43   979 102 43   979 102 48   979 102 48   979 102 48
4642  979 102 48   979 102 48   979 102 55   979 102 55   979 102 55   979 102 55
4643  979 102 55   979 102 55   979 102 55   979 102 61   979 102 61   979 102 61
4644  979 102 61   979 102 61   979 102 61   979 102 74   979 102 74   979 102 74
4645  979 102 74   979 102 74   979 102 74   979 102 74   979 102 74   979 102 74
4646  979 102 74   979 102 74   979 102 74   979 102 74   979 102 82   979 102 82
4647  979 102 82   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4648  979 113 24   979 113 24   979 113 24   979 113 24   979 113 24   979 113 24
4649  979 113 24   979 113 24   979 113 32   979 113 32   979 113 32   979 113 32
4650  979 113 32   979 113 32   979 113 32   979 113 32   979 113 43}
4651
4652do_execsql_test 5.2.9.2 {
4653  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4654             rank() OVER win,
4655             dense_rank() OVER win
4656      FROM t3
4657      WINDOW win AS (  ORDER BY a NULLS LAST
4658        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4659      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4660} {1383 84 11   1421 84 11   1651 84 11   1695 84 11   2050 84 11   2050 84 11
4661  4098 75 10   4158 75 10   4158 75 10   4740 75 10   4884 75 10   4997 75 10
4662  4997 75 10   4997 75 10   4997 75 10   6532 68 9   6666 68 9   6894 68 9
4663  6916 68 9   7337 68 9   7337 68 9   7337 68 9   9471 59 8   9487 59 8
4664  9767 59 8   10095 59 8   10317 59 8   10450 59 8   10450 59 8   10450 59 8
4665  10450 59 8   10785 51 7   11379 51 7   11714 51 7   11714 51 7   11714 51 7
4666  11714 51 7   11714 51 7   11714 51 7   12009 40 6   12381 40 6   12676 40 6
4667  12676 40 6   12676 40 6   12676 40 6   12676 40 6   12676 40 6   12676 40 6
4668  12676 40 6   12676 40 6   13418 35 5   13566 35 5   14082 35 5   14195 35 5
4669  14195 35 5   15040 28 4   15154 28 4   15999 28 4   15999 28 4   15999 28 4
4670  15999 28 4   15999 28 4   16606 22 3   16758 22 3   17365 22 3   17365 22 3
4671  17365 22 3   17365 22 3   20135 9 2   20141 9 2   20213 9 2   20447 9 2
4672  20453 9 2   20453 9 2   20599 9 2   20846 9 2   20846 9 2   20846 9 2
4673  20846 9 2   20846 9 2   20846 9 2   22244 1 1   22528 1 1   22846 1 1
4674  22916 1 1   22932 1 1   23155 1 1   23155 1 1   23155 1 1}
4675
4676do_execsql_test 5.2.10.1 {
4677  SELECT max(c) OVER win,
4678             min(c) OVER win,
4679             count(a) OVER win
4680      FROM t3
4681      WINDOW win AS (  PARTITION BY coalesce(a, '')
4682        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4683      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4684} {667 158 0   671 250 6   759 158 5   768 113 4   777 113 4   777 113 4
4685  777 113 4   777 252 4   792 247 12   805 250 6   805 250 6   805 250 6
4686  805 250 6   805 250 6   805 398 6   822 158 5   822 158 5   822 158 5
4687  822 158 5   822 346 5   839 113 8   840 247 12   840 247 12   840 247 12
4688  840 247 12   840 247 12   840 247 12   840 247 12   840 247 12   840 247 12
4689  840 247 12   840 247 12   840 393 12   845 224 6   870 102 10   870 158 0
4690  870 158 0   870 158 0   870 158 0   870 355 0   899 113 8   899 113 8
4691  899 113 8   899 113 8   899 113 8   899 113 8   899 113 8   899 234 8
4692  911 223 7   929 148 7   934 223 7   934 223 7   934 223 7   934 223 7
4693  934 223 7   934 223 7   934 239 7   938 102 10   938 102 10   938 102 10
4694  938 102 10   938 102 10   938 102 10   938 102 10   938 102 10   938 102 10
4695  938 148 7   938 148 7   938 148 7   938 148 7   938 148 7   938 148 7
4696  938 160 7   938 208 10   959 224 6   959 224 6   959 224 6   959 224 6
4697  959 224 6   959 238 6   963 133 8   979 133 8   979 133 8   979 133 8
4698  979 133 8   979 133 8   979 133 8   979 133 8   979 330 8}
4699
4700do_execsql_test 5.2.10.2 {
4701  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4702             rank() OVER win,
4703             dense_rank() OVER win
4704      FROM t3
4705      WINDOW win AS (  PARTITION BY coalesce(a, '')
4706        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4707      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4708} {295 1 1   335 1 1   607 1 1   667 1 1   742 1 1   759 1 1   845 1 1
4709  890 1 1   929 1 1   959 1 1   962 1 1   962 1 1   962 1 1   962 1 1
4710  962 1 1   962 1 1   962 1 1   962 1 1   962 1 1   1264 1 1   1264 1 1
4711  1264 1 1   1264 1 1   1264 1 1   1264 1 1   1366 1 1   1366 1 1   1366 1 1
4712  1366 1 1   1383 1 1   1398 1 1   1406 1 1   1421 1 1   1519 1 1   1519 1 1
4713  1535 1 1   1651 1 1   1669 1 1   1682 1 1   1695 1 1   1804 1 1   1804 1 1
4714  1804 1 1   1804 1 1   1804 1 1   1897 1 1   1919 1 1   2000 1 1   2048 1 1
4715  2050 1 1   2050 1 1   2070 1 1   2086 1 1   2108 1 1   2108 1 1   2134 1 1
4716  2150 1 1   2309 1 1   2309 1 1   2309 1 1   2340 1 1   2340 1 1   2340 1 1
4717  2430 1 1   2690 1 1   2758 1 1   2770 1 1   2776 1 1   2834 1 1   2848 1 1
4718  2947 1 1   2947 1 1   2947 1 1   2947 1 1   2980 1 1   3082 1 1   3088 1 1
4719  3088 1 1   3113 1 1   3113 1 1   3113 1 1   3113 1 1   3234 1 1   3481 1 1
4720  3481 1 1   3481 1 1   3481 1 1   3481 1 1   3481 1 1}
4721
4722do_execsql_test 5.2.11.1 {
4723  SELECT max(c) OVER win,
4724             min(c) OVER win,
4725             count(a) OVER win
4726      FROM t3
4727      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE CURRENT ROW  )
4728      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4729} {911 223 7   934 158 26   934 158 26   934 158 26   934 158 26   934 158 26
4730  934 158 33   934 223 7   934 223 7   934 223 7   934 223 7   934 223 7
4731  934 223 7   934 223 20   934 223 20   934 223 20   934 223 20   934 223 20
4732  934 223 20   934 223 20   934 223 20   934 223 20   934 223 20   934 223 20
4733  934 223 20   934 223 20   934 223 26   934 239 7   959 102 49   959 102 49
4734  959 102 49   959 102 49   959 102 49   959 102 49   959 102 49   959 102 49
4735  959 102 49   959 102 49   959 102 57   959 102 57   959 102 57   959 102 57
4736  959 102 57   959 102 57   959 102 57   959 102 57   959 113 38   959 113 38
4737  959 113 38   959 113 38   959 113 49   959 158 33   959 158 33   959 158 33
4738  959 158 33   959 158 33   959 158 33   959 158 38   963 102 58   979 102 49
4739  979 102 49   979 102 49   979 102 49   979 102 49   979 102 49   979 102 52
4740  979 102 52   979 102 52   979 102 52   979 102 52   979 102 52   979 102 52
4741  979 102 55   979 102 55   979 102 55   979 102 55   979 102 55   979 102 55
4742  979 102 55   979 102 55   979 102 55   979 102 58   979 102 58   979 102 58
4743  979 102 58   979 102 58   979 102 58   979 102 58   979 102 58}
4744
4745do_execsql_test 5.2.11.2 {
4746  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4747             rank() OVER win,
4748             dense_rank() OVER win
4749      FROM t3
4750      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE CURRENT ROW  )
4751      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4752} {1398 1 1   1682 1 1   2000 1 1   2070 1 1   2086 1 1   2309 1 1   2309 1 1
4753  2309 1 1   5079 9 2   5085 9 2   5157 9 2   5391 9 2   5397 9 2   5397 9 2
4754  5543 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2   5790 9 2
4755  6397 22 3   6549 22 3   7156 22 3   7156 22 3   7156 22 3   7156 22 3
4756  8001 28 4   8115 28 4   8960 28 4   8960 28 4   8960 28 4   8960 28 4
4757  8960 28 4   9702 35 5   9850 35 5   10366 35 5   10479 35 5   10479 35 5
4758  10774 40 6   11146 40 6   11441 40 6   11441 40 6   11441 40 6   11441 40 6
4759  11441 40 6   11441 40 6   11441 40 6   11441 40 6   11441 40 6   11563 68 9
4760  11697 68 9   11776 51 7   11925 68 9   11947 68 9   12368 68 9   12368 68 9
4761  12368 68 9   12370 51 7   12530 59 8   12546 59 8   12705 51 7   12705 51 7
4762  12705 51 7   12705 51 7   12705 51 7   12705 51 7   12826 59 8
4763  13050 75 10   13110 75 10   13110 75 10   13154 59 8   13376 59 8
4764  13509 59 8   13509 59 8   13509 59 8   13509 59 8   13528 84 11
4765  13566 84 11   13692 75 10   13796 84 11   13836 75 10   13840 84 11
4766  13949 75 10   13949 75 10   13949 75 10   13949 75 10   14195 84 11
4767  14195 84 11}
4768
4769do_execsql_test 5.2.12.1 {
4770  SELECT max(c) OVER win,
4771             min(c) OVER win,
4772             count(a) OVER win
4773      FROM t3
4774      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE CURRENT ROW  )
4775      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4776} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4777  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4778  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   113 113 1
4779  113 113 1   158 158 1   160 158 1   160 158 2   223 223 1   224 224 1
4780  238 234 2   239 234 2   239 238 2   252 250 2   256 252 2   257 247 4
4781  257 247 4   257 250 3   335 330 2   336 330 2   336 335 2   355 354 1
4782  355 354 2   355 355 1   399 393 3   399 393 3   399 393 3   399 393 3
4783  399 393 4   480 480 1   480 480 1   572 572 1   574 574 1   618 618 1
4784  618 618 1   633 629 2   634 627 3   634 627 3   634 627 4   634 629 3
4785  667 667 1   670 667 2   671 667 2   671 667 2   671 667 3   711 711 1
4786  711 711 1   716 705 2   726 726 1   730 730 1   762 762 1   768 759 3
4787  768 762 2   768 762 2   792 790 2   792 790 2   794 786 3   794 786 3
4788  844 839 4   845 839 4   845 839 4   845 839 4   845 839 4   870 870 1
4789  870 870 1   870 870 2   934 934 1   938 929 3   938 934 2   938 934 2
4790  959 959 1   963 963 1}
4791
4792do_execsql_test 5.2.12.2 {
4793  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4794             rank() OVER win,
4795             dense_rank() OVER win
4796      FROM t3
4797      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE CURRENT ROW  )
4798      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4799} {{} 1 1   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 10 8
4800  {} 14 12   {} 15 13   {} 19 17   {} 20 18   {} 21 19   {} 23 21   {} 25 23
4801  {} 34 29   {} 35 30   {} 36 31   {} 37 32   {} 38 33   {} 38 33   {} 40 34
4802  {} 41 35   {} 42 36   {} 43 37   {} 43 37   {} 50 42   {} 56 47   {} 60 51
4803  {} 61 52   {} 62 53   {} 64 55   {} 64 55   {} 66 56   {} 67 57   {} 68 58
4804  {} 69 59   {} 70 60   {} 71 61   {} 72 62   {} 78 67   {} 78 67   {} 78 67
4805  {} 81 68   {} 82 69   {} 83 70   {} 85 72   {} 85 72   {} 89 75   113 2 2
4806  113 2 2   223 11 9   239 12 10   239 13 11   257 18 16   335 22 20
4807  335 24 22   355 27 25   355 27 25   504 16 14   504 17 15   705 58 49
4808  710 26 24   711 57 48   711 59 50   759 63 54   929 84 71   959 88 74
4809  963 87 73   1185 32 28   1185 32 28   1191 29 26   1191 29 26   1334 51 43
4810  1334 55 46   1338 52 44   1338 52 44   1584 31 27   1678 77 66   1684 73 63
4811  1684 73 63   1885 48 40   1889 46 39   1889 46 39   1891 45 38   1891 49 41
4812  2005 54 45   2523 75 64   2523 76 65}
4813
4814do_execsql_test 5.2.13.1 {
4815  SELECT max(c) OVER win,
4816             min(c) OVER win,
4817             count(a) OVER win
4818      FROM t3
4819      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE CURRENT ROW  )
4820      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4821} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4822  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4823  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4824  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4825  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4826  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4827  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4828  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4829  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   113 113 1
4830  113 113 1   158 158 0   158 158 1   355 355 0   355 355 1   393 393 1
4831  393 393 1   399 399 0   399 399 1   480 480 1   480 480 1   618 618 1
4832  618 618 1   629 629 0   629 629 1   667 667 0   667 667 1   768 768 1
4833  768 768 1   839 839 1   839 839 1   870 870 1   870 870 1   870 870 2
4834  938 938 1   938 938 1}
4835
4836do_execsql_test 5.2.13.2 {
4837  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4838             rank() OVER win,
4839             dense_rank() OVER win
4840      FROM t3
4841      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE CURRENT ROW  )
4842      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4843} {{} 1 1   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 10 8
4844  {} 11 9   {} 12 10   {} 13 11   {} 14 12   {} 15 13   {} 16 14   {} 17 15
4845  {} 18 16   {} 19 17   {} 20 18   {} 21 19   {} 22 20   {} 23 21   {} 24 22
4846  {} 25 23   {} 26 24   {} 31 27   {} 34 29   {} 35 30   {} 36 31   {} 37 32
4847  {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37   {} 43 37
4848  {} 45 38   {} 48 40   {} 49 41   {} 50 42   {} 51 43   {} 54 45   {} 55 46
4849  {} 56 47   {} 57 48   {} 58 49   {} 59 50   {} 60 51   {} 61 52   {} 62 53
4850  {} 63 54   {} 64 55   {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59
4851  {} 70 60   {} 71 61   {} 72 62   {} 75 64   {} 76 65   {} 77 66   {} 78 67
4852  {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70   {} 84 71   {} 85 72
4853  {} 85 72   {} 87 73   {} 88 74   {} 89 75   113 2 2   113 2 2   355 27 25
4854  355 27 25   393 29 26   393 29 26   399 32 28   399 32 28   629 46 39
4855  629 46 39   667 52 44   667 52 44   839 73 63   839 73 63}
4856
4857do_execsql_test 5.2.14.1 {
4858  SELECT max(c) OVER win,
4859             min(c) OVER win,
4860             count(a) OVER win
4861      FROM t3
4862      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
4863        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4864      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4865} {963 929 6   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
4866  979 102 83   979 113 80   979 113 81   979 113 82   979 133 79   979 148 78
4867  979 158 76   979 158 77   979 160 76   979 208 75   979 223 74   979 224 73
4868  979 234 72   979 238 71   979 239 70   979 247 69   979 250 68   979 252 67
4869  979 256 66   979 257 65   979 295 64   979 309 63   979 330 63   979 335 61
4870  979 336 60   979 346 59   979 354 58   979 355 56   979 355 58   979 393 55
4871  979 393 56   979 398 54   979 399 52   979 399 53   979 412 52   979 421 51
4872  979 430 50   979 443 49   979 480 47   979 480 48   979 572 46   979 574 46
4873  979 607 44   979 618 42   979 618 43   979 627 41   979 629 40   979 629 40
4874  979 633 39   979 634 38   979 652 37   979 660 36   979 667 34   979 667 35
4875  979 670 34   979 671 33   979 683 32   979 705 31   979 711 30   979 716 29
4876  979 726 28   979 730 27   979 759 26   979 762 25   979 768 23   979 768 24
4877  979 777 22   979 786 21   979 790 20   979 792 19   979 794 18   979 805 17
4878  979 822 16   979 839 15   979 839 15   979 840 13   979 844 12   979 845 11
4879  979 870 8   979 870 9   979 870 10   979 899 8   979 911 7}
4880
4881do_execsql_test 5.2.14.2 {
4882  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4883             rank() OVER win,
4884             dense_rank() OVER win
4885      FROM t3
4886      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
4887        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE CURRENT ROW  )
4888      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4889} {2851 89 89   3778 88 88   4681 87 87   5556 83 83   5574 82 82   5586 81 81
4890  5640 84 84   5640 85 85   5640 86 86   7324 80 80   8123 77 77   8129 73 73
4891  8129 74 74   8163 78 78   8163 79 79   8940 71 71   8968 75 75   8968 76 76
4892  9727 66 66   9745 69 69   9745 70 70   9745 72 72   10504 65 65
4893  10504 67 67   10504 68 68   11215 64 64   11844 62 62   11920 63 63
4894  13274 60 60   13274 61 61   13897 58 58   13903 57 57   13925 56 56
4895  13937 55 55   13941 59 59   15203 53 53   15241 54 54   15832 52 52
4896  17100 48 48   17104 46 46   17104 47 47   17106 45 45   17126 49 49
4897  17126 50 50   17126 51 51   17569 42 42   17733 44 44   18176 43 43
4898  18597 40 40   18597 41 41   18952 37 37   18996 39 39   19395 38 38
4899  19760 35 35   19788 36 36   20492 32 32   20492 33 33   20498 30 30
4900  20536 34 34   20833 29 29   20871 28 28   20891 31 31   21180 27 27
4901  21752 23 23   21830 26 26   22025 21 21   22087 22 22   22087 24 24
4902  22087 25 25   22278 20 20   22316 19 19   22549 15 15   22557 14 14
4903  22573 17 17   22573 18 18   22706 10 10   22796 11 11   22796 12 12
4904  22796 13 13   22796 16 16   23022 4 4   23042 2 2   23042 3 3   23042 9 9
4905  23155 1 1   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
4906
4907do_execsql_test 5.3.1.1 {
4908  SELECT max(c) OVER win,
4909             min(c) OVER win,
4910             count(a) OVER win
4911      FROM t3
4912      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
4913      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4914} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4915  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4916  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4917  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4918  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4919  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4920  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4921  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4922  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4923  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4924  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4925  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4926  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
4927
4928do_execsql_test 5.3.1.2 {
4929  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4930             rank() OVER win,
4931             dense_rank() OVER win
4932      FROM t3
4933      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
4934      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4935} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4936  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4937  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4938  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4939  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4940  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4941  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4942  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4943  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4944  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4945  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
4946  {} 1 1}
4947
4948do_execsql_test 5.3.2.1 {
4949  SELECT max(c) OVER win,
4950             min(c) OVER win,
4951             count(a) OVER win
4952      FROM t3
4953      WINDOW win AS (  ORDER BY a NULLS FIRST
4954        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
4955      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4956} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
4957  {} {} 0   {} {} 0   899 113 9   899 113 9   899 113 9   899 113 9
4958  899 113 9   899 113 9   899 113 9   899 113 16   899 113 16   899 113 16
4959  899 113 16   899 113 16   899 113 16   899 113 16   899 113 16   899 113 16
4960  979 102 44   979 102 44   979 102 44   979 102 44   979 102 44   979 102 49
4961  979 102 49   979 102 49   979 102 49   979 102 49   979 102 49   979 102 49
4962  979 102 56   979 102 56   979 102 56   979 102 56   979 102 56   979 102 56
4963  979 102 62   979 102 62   979 102 62   979 102 62   979 102 62   979 102 62
4964  979 102 62   979 102 62   979 102 62   979 102 62   979 102 62   979 102 62
4965  979 102 62   979 102 75   979 102 75   979 102 75   979 102 75   979 102 75
4966  979 102 75   979 102 75   979 102 75   979 102 83   979 102 83   979 102 83
4967  979 102 83   979 102 83   979 102 83   979 113 25   979 113 25   979 113 25
4968  979 113 25   979 113 25   979 113 25   979 113 25   979 113 25   979 113 33
4969  979 113 33   979 113 33   979 113 33   979 113 33   979 113 33   979 113 33
4970  979 113 33   979 113 33   979 113 33   979 113 33}
4971
4972do_execsql_test 5.3.2.2 {
4973  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
4974             rank() OVER win,
4975             dense_rank() OVER win
4976      FROM t3
4977      WINDOW win AS (  ORDER BY a NULLS FIRST
4978        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
4979      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
4980} {{} 81 11   {} 81 11   {} 81 11   {} 81 11   {} 81 11   {} 81 11   {} 81 11
4981  {} 81 11   {} 81 11   2947 74 10   2947 74 10   2947 74 10   2947 74 10
4982  2947 74 10   2947 74 10   2947 74 10   5287 65 9   5287 65 9   5287 65 9
4983  5287 65 9   5287 65 9   5287 65 9   5287 65 9   5287 65 9   5287 65 9
4984  8400 57 8   8400 57 8   8400 57 8   8400 57 8   8400 57 8   8400 57 8
4985  8400 57 8   8400 57 8   9664 46 7   9664 46 7   9664 46 7   9664 46 7
4986  9664 46 7   9664 46 7   9664 46 7   9664 46 7   9664 46 7   9664 46 7
4987  9664 46 7   10626 41 6   10626 41 6   10626 41 6   10626 41 6   10626 41 6
4988  12145 34 5   12145 34 5   12145 34 5   12145 34 5   12145 34 5   12145 34 5
4989  12145 34 5   13949 28 4   13949 28 4   13949 28 4   13949 28 4   13949 28 4
4990  13949 28 4   15315 15 3   15315 15 3   15315 15 3   15315 15 3   15315 15 3
4991  15315 15 3   15315 15 3   15315 15 3   15315 15 3   15315 15 3   15315 15 3
4992  15315 15 3   15315 15 3   18796 7 2   18796 7 2   18796 7 2   18796 7 2
4993  18796 7 2   18796 7 2   18796 7 2   18796 7 2   21105 1 1   21105 1 1
4994  21105 1 1   21105 1 1   21105 1 1   21105 1 1}
4995
4996do_execsql_test 5.3.3.1 {
4997  SELECT max(c) OVER win,
4998             min(c) OVER win,
4999             count(a) OVER win
5000      FROM t3
5001      WINDOW win AS (  PARTITION BY coalesce(a, '')
5002        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5003      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5004} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5005  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5006  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5007  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5008  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5009  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5010  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5011  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5012  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5013  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5014  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5015  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5016  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
5017
5018do_execsql_test 5.3.3.2 {
5019  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5020             rank() OVER win,
5021             dense_rank() OVER win
5022      FROM t3
5023      WINDOW win AS (  PARTITION BY coalesce(a, '')
5024        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5025      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5026} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5027  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5028  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5029  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5030  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5031  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5032  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5033  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5034  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5035  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5036  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5037  {} 1 1}
5038
5039do_execsql_test 5.3.4.1 {
5040  SELECT max(c) OVER win,
5041             min(c) OVER win,
5042             count(a) OVER win
5043      FROM t3
5044      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE GROUP  )
5045      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5046} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   870 158 0
5047  870 158 0   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
5048  870 158 0   934 158 8   934 158 8   934 158 8   934 158 8   934 158 8
5049  934 158 8   934 158 8   934 158 8   934 158 8   934 158 8   934 158 8
5050  934 158 8   934 158 8   934 158 21   934 158 21   934 158 21   934 158 21
5051  934 158 21   934 158 21   934 158 27   934 158 27   934 158 27   934 158 27
5052  934 158 27   934 158 27   934 158 27   959 102 50   959 102 50   959 102 50
5053  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
5054  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
5055  959 102 50   959 102 50   959 113 39   959 113 39   959 113 39   959 113 39
5056  959 113 39   959 113 39   959 113 39   959 113 39   959 113 39   959 113 39
5057  959 113 39   959 158 34   959 158 34   959 158 34   959 158 34   959 158 34
5058  979 102 46   979 102 46   979 102 46   979 102 46   979 102 46   979 102 46
5059  979 102 46   979 102 47   979 102 47   979 102 47   979 102 47   979 102 47
5060  979 102 47   979 102 47   979 102 47   979 102 47}
5061
5062do_execsql_test 5.3.4.2 {
5063  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5064             rank() OVER win,
5065             dense_rank() OVER win
5066      FROM t3
5067      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE GROUP  )
5068      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5069} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   2050 7 2   2050 7 2
5070  2050 7 2   2050 7 2   2050 7 2   2050 7 2   2050 7 2   2050 7 2   4359 15 3
5071  4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3
5072  4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3
5073  7840 28 4   7840 28 4   7840 28 4   7840 28 4   7840 28 4   7840 28 4
5074  9206 34 5   9206 34 5   9206 34 5   9206 34 5   9206 34 5   9206 34 5
5075  9206 34 5   10028 74 10   10028 74 10   10028 74 10   10028 74 10
5076  10028 74 10   10028 74 10   10028 74 10   10396 65 9   10396 65 9
5077  10396 65 9   10396 65 9   10396 65 9   10396 65 9   10396 65 9   10396 65 9
5078  10396 65 9   11002 81 11   11002 81 11   11002 81 11   11002 81 11
5079  11002 81 11   11002 81 11   11002 81 11   11002 81 11   11002 81 11
5080  11010 41 6   11010 41 6   11010 41 6   11010 41 6   11010 41 6   11441 57 8
5081  11441 57 8   11441 57 8   11441 57 8   11441 57 8   11441 57 8   11441 57 8
5082  11441 57 8   12529 46 7   12529 46 7   12529 46 7   12529 46 7   12529 46 7
5083  12529 46 7   12529 46 7   12529 46 7   12529 46 7   12529 46 7   12529 46 7}
5084
5085do_execsql_test 5.3.5.1 {
5086  SELECT max(c) OVER win,
5087             min(c) OVER win,
5088             count(a) OVER win
5089      FROM t3
5090      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE GROUP  )
5091      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5092} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5093  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5094  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5095  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5096  {} {} 0   158 158 1   160 160 1   160 160 1   223 223 1   224 224 1
5097  238 234 2   239 234 2   239 238 2   252 250 2   256 252 2   257 247 4
5098  257 247 4   257 250 3   335 330 2   336 330 2   336 335 2   354 354 1
5099  354 354 1   355 355 1   398 393 3   398 393 3   399 393 3   399 398 2
5100  399 398 2   572 572 1   574 574 1   633 629 2   634 627 3   634 627 3
5101  634 627 3   634 629 3   667 667 1   670 667 2   671 667 2   671 670 2
5102  671 670 2   711 711 1   711 711 1   716 705 2   726 726 1   730 730 1
5103  762 762 1   762 762 1   762 762 1   768 759 3   792 790 2   792 790 2
5104  794 786 3   794 786 3   844 839 4   845 839 4   845 839 4   845 840 3
5105  845 840 3   934 934 1   934 934 1   934 934 1   938 929 3   959 959 1
5106  963 963 1}
5107
5108do_execsql_test 5.3.5.2 {
5109  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5110             rank() OVER win,
5111             dense_rank() OVER win
5112      FROM t3
5113      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE GROUP  )
5114      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5115} {{} 1 1   {} 2 2   {} 2 2   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6
5116  {} 9 7   {} 10 8   {} 14 12   {} 15 13   {} 19 17   {} 20 18   {} 21 19
5117  {} 23 21   {} 25 23   {} 27 25   {} 27 25   {} 34 29   {} 35 30   {} 36 31
5118  {} 37 32   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37
5119  {} 43 37   {} 50 42   {} 56 47   {} 60 51   {} 61 52   {} 62 53   {} 64 55
5120  {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59   {} 70 60   {} 71 61
5121  {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70
5122  {} 85 72   {} 85 72   {} 89 75   223 11 9   239 12 10   239 13 11
5123  257 18 16   335 22 20   335 24 22   504 16 14   504 17 15   671 52 44
5124  671 52 44   705 58 49   710 26 24   711 57 48   711 59 50   759 63 54
5125  786 32 28   786 32 28   798 29 26   798 29 26   845 73 63   845 73 63
5126  929 84 71   959 88 74   963 87 73   1260 46 39   1260 46 39   1334 51 43
5127  1334 55 46   1584 31 27   1678 77 66   1885 48 40   1891 45 38   1891 49 41
5128  2005 54 45   2523 75 64   2523 76 65}
5129
5130do_execsql_test 5.3.6.1 {
5131  SELECT max(c) OVER win,
5132             min(c) OVER win,
5133             count(a) OVER win
5134      FROM t3
5135      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE GROUP  )
5136      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5137} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5138  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5139  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5140  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5141  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5142  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5143  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5144  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5145  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5146  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5147  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5148  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5149  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
5150
5151do_execsql_test 5.3.6.2 {
5152  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5153             rank() OVER win,
5154             dense_rank() OVER win
5155      FROM t3
5156      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE GROUP  )
5157      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5158} {{} 1 1   {} 2 2   {} 2 2   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6
5159  {} 9 7   {} 10 8   {} 11 9   {} 12 10   {} 13 11   {} 14 12   {} 15 13
5160  {} 16 14   {} 17 15   {} 18 16   {} 19 17   {} 20 18   {} 21 19   {} 22 20
5161  {} 23 21   {} 24 22   {} 25 23   {} 26 24   {} 27 25   {} 27 25   {} 29 26
5162  {} 29 26   {} 31 27   {} 32 28   {} 32 28   {} 34 29   {} 35 30   {} 36 31
5163  {} 37 32   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37
5164  {} 43 37   {} 45 38   {} 46 39   {} 46 39   {} 48 40   {} 49 41   {} 50 42
5165  {} 51 43   {} 52 44   {} 52 44   {} 54 45   {} 55 46   {} 56 47   {} 57 48
5166  {} 58 49   {} 59 50   {} 60 51   {} 61 52   {} 62 53   {} 63 54   {} 64 55
5167  {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59   {} 70 60   {} 71 61
5168  {} 72 62   {} 73 63   {} 73 63   {} 75 64   {} 76 65   {} 77 66   {} 78 67
5169  {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70   {} 84 71   {} 85 72
5170  {} 85 72   {} 87 73   {} 88 74   {} 89 75}
5171
5172do_execsql_test 5.3.7.1 {
5173  SELECT max(c) OVER win,
5174             min(c) OVER win,
5175             count(a) OVER win
5176      FROM t3
5177      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
5178        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5179      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5180} {963 929 6   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
5181  979 102 83   979 113 80   979 113 81   979 113 82   979 133 79   979 148 78
5182  979 158 76   979 158 77   979 160 76   979 208 75   979 223 74   979 224 73
5183  979 234 72   979 238 71   979 239 70   979 247 69   979 250 68   979 252 67
5184  979 256 66   979 257 65   979 295 64   979 309 64   979 330 62   979 335 61
5185  979 336 60   979 346 59   979 354 59   979 355 57   979 355 57   979 393 55
5186  979 393 56   979 398 54   979 399 53   979 399 53   979 412 52   979 421 51
5187  979 430 50   979 443 49   979 480 47   979 480 48   979 572 47   979 574 45
5188  979 607 44   979 618 42   979 618 43   979 627 41   979 629 40   979 629 41
5189  979 633 39   979 634 38   979 652 37   979 660 36   979 667 35   979 667 35
5190  979 670 34   979 671 33   979 683 32   979 705 31   979 711 30   979 716 29
5191  979 726 28   979 730 27   979 759 26   979 762 25   979 768 23   979 768 24
5192  979 777 22   979 786 21   979 790 20   979 792 19   979 794 18   979 805 17
5193  979 822 17   979 839 14   979 839 15   979 840 13   979 844 12   979 845 11
5194  979 870 9   979 870 10   979 870 10   979 899 8   979 911 7}
5195
5196do_execsql_test 5.3.7.2 {
5197  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5198             rank() OVER win,
5199             dense_rank() OVER win
5200      FROM t3
5201      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
5202        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5203      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5204} {2851 89 89   3778 88 88   4681 87 87   5556 83 83   5574 82 82   5586 81 81
5205  5640 84 84   5640 85 85   5640 86 86   7324 80 80   8123 77 77   8129 73 73
5206  8129 74 74   8163 78 78   8163 79 79   8940 71 71   8968 75 75   8968 76 76
5207  9727 66 66   9745 69 69   9745 70 70   9745 72 72   10504 65 65
5208  10504 67 67   10504 68 68   11215 64 64   11844 62 62   11920 63 63
5209  13274 60 60   13274 61 61   13897 58 58   13903 57 57   13925 56 56
5210  13937 55 55   13941 59 59   15203 53 53   15241 54 54   15832 52 52
5211  17100 48 48   17104 46 46   17104 47 47   17106 45 45   17126 49 49
5212  17126 50 50   17126 51 51   17569 42 42   17733 44 44   18176 43 43
5213  18597 40 40   18597 41 41   18952 37 37   18996 39 39   19395 38 38
5214  19760 35 35   19788 36 36   20492 32 32   20492 33 33   20498 30 30
5215  20536 34 34   20833 29 29   20871 28 28   20891 31 31   21180 27 27
5216  21752 23 23   21830 26 26   22025 21 21   22087 22 22   22087 24 24
5217  22087 25 25   22278 20 20   22316 19 19   22549 15 15   22557 14 14
5218  22573 17 17   22573 18 18   22706 10 10   22796 11 11   22796 12 12
5219  22796 13 13   22796 16 16   23022 4 4   23042 2 2   23042 3 3   23042 9 9
5220  23155 1 1   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
5221
5222do_execsql_test 5.3.8.1 {
5223  SELECT max(c) OVER win,
5224             min(c) OVER win,
5225             count(a) OVER win
5226      FROM t3
5227      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5228      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5229} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5230  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5231  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5232  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5233  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5234  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5235  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5236  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5237  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5238  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5239  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5240  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5241  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
5242
5243do_execsql_test 5.3.8.2 {
5244  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5245             rank() OVER win,
5246             dense_rank() OVER win
5247      FROM t3
5248      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5249      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5250} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5251  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5252  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5253  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5254  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5255  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5256  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5257  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5258  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5259  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5260  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5261  {} 1 1}
5262
5263do_execsql_test 5.3.9.1 {
5264  SELECT max(c) OVER win,
5265             min(c) OVER win,
5266             count(a) OVER win
5267      FROM t3
5268      WINDOW win AS (  ORDER BY a NULLS LAST
5269        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5270      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5271} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   870 158 0
5272  870 158 0   870 158 0   870 158 0   870 158 0   870 158 0   870 158 0
5273  870 158 0   870 158 0   899 113 9   899 113 9   899 113 9   899 113 9
5274  899 113 9   899 113 9   899 113 9   899 113 16   899 113 16   899 113 16
5275  899 113 16   899 113 16   899 113 16   899 113 16   899 113 16   899 113 16
5276  979 102 44   979 102 44   979 102 44   979 102 44   979 102 44   979 102 49
5277  979 102 49   979 102 49   979 102 49   979 102 49   979 102 49   979 102 49
5278  979 102 56   979 102 56   979 102 56   979 102 56   979 102 56   979 102 56
5279  979 102 62   979 102 62   979 102 62   979 102 62   979 102 62   979 102 62
5280  979 102 62   979 102 62   979 102 62   979 102 62   979 102 62   979 102 62
5281  979 102 62   979 102 75   979 102 75   979 102 75   979 102 75   979 102 75
5282  979 102 75   979 102 75   979 102 75   979 113 25   979 113 25   979 113 25
5283  979 113 25   979 113 25   979 113 25   979 113 25   979 113 25   979 113 33
5284  979 113 33   979 113 33   979 113 33   979 113 33   979 113 33   979 113 33
5285  979 113 33   979 113 33   979 113 33   979 113 33}
5286
5287do_execsql_test 5.3.9.2 {
5288  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5289             rank() OVER win,
5290             dense_rank() OVER win
5291      FROM t3
5292      WINDOW win AS (  ORDER BY a NULLS LAST
5293        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5294      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5295} {{} 84 11   {} 84 11   {} 84 11   {} 84 11   {} 84 11   {} 84 11
5296  2050 75 10   2050 75 10   2050 75 10   2050 75 10   2050 75 10   2050 75 10
5297  2050 75 10   2050 75 10   2050 75 10   4997 68 9   4997 68 9   4997 68 9
5298  4997 68 9   4997 68 9   4997 68 9   4997 68 9   7337 59 8   7337 59 8
5299  7337 59 8   7337 59 8   7337 59 8   7337 59 8   7337 59 8   7337 59 8
5300  7337 59 8   10450 51 7   10450 51 7   10450 51 7   10450 51 7   10450 51 7
5301  10450 51 7   10450 51 7   10450 51 7   11714 40 6   11714 40 6   11714 40 6
5302  11714 40 6   11714 40 6   11714 40 6   11714 40 6   11714 40 6   11714 40 6
5303  11714 40 6   11714 40 6   12676 35 5   12676 35 5   12676 35 5   12676 35 5
5304  12676 35 5   14195 28 4   14195 28 4   14195 28 4   14195 28 4   14195 28 4
5305  14195 28 4   14195 28 4   15999 22 3   15999 22 3   15999 22 3   15999 22 3
5306  15999 22 3   15999 22 3   17365 9 2   17365 9 2   17365 9 2   17365 9 2
5307  17365 9 2   17365 9 2   17365 9 2   17365 9 2   17365 9 2   17365 9 2
5308  17365 9 2   17365 9 2   17365 9 2   20846 1 1   20846 1 1   20846 1 1
5309  20846 1 1   20846 1 1   20846 1 1   20846 1 1   20846 1 1}
5310
5311do_execsql_test 5.3.10.1 {
5312  SELECT max(c) OVER win,
5313             min(c) OVER win,
5314             count(a) OVER win
5315      FROM t3
5316      WINDOW win AS (  PARTITION BY coalesce(a, '')
5317        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5318      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5319} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5320  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5321  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5322  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5323  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5324  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5325  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5326  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5327  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5328  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5329  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5330  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5331  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
5332
5333do_execsql_test 5.3.10.2 {
5334  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5335             rank() OVER win,
5336             dense_rank() OVER win
5337      FROM t3
5338      WINDOW win AS (  PARTITION BY coalesce(a, '')
5339        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5340      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5341} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5342  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5343  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5344  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5345  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5346  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5347  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5348  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5349  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5350  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5351  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5352  {} 1 1}
5353
5354do_execsql_test 5.3.11.1 {
5355  SELECT max(c) OVER win,
5356             min(c) OVER win,
5357             count(a) OVER win
5358      FROM t3
5359      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE GROUP  )
5360      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5361} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5362  {} {} 0   934 158 27   934 158 27   934 158 27   934 158 27   934 158 27
5363  934 158 27   934 158 27   934 223 8   934 223 8   934 223 8   934 223 8
5364  934 223 8   934 223 8   934 223 8   934 223 8   934 223 8   934 223 8
5365  934 223 8   934 223 8   934 223 8   934 223 21   934 223 21   934 223 21
5366  934 223 21   934 223 21   934 223 21   959 102 50   959 102 50   959 102 50
5367  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
5368  959 102 50   959 102 50   959 102 50   959 102 50   959 102 50   959 102 50
5369  959 102 50   959 102 50   959 113 39   959 113 39   959 113 39   959 113 39
5370  959 113 39   959 113 39   959 113 39   959 113 39   959 113 39   959 113 39
5371  959 113 39   959 158 34   959 158 34   959 158 34   959 158 34   959 158 34
5372  979 102 46   979 102 46   979 102 46   979 102 46   979 102 46   979 102 46
5373  979 102 46   979 102 47   979 102 47   979 102 47   979 102 47   979 102 47
5374  979 102 47   979 102 47   979 102 47   979 102 47   979 102 49   979 102 49
5375  979 102 49   979 102 49   979 102 49   979 102 49}
5376
5377do_execsql_test 5.3.11.2 {
5378  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5379             rank() OVER win,
5380             dense_rank() OVER win
5381      FROM t3
5382      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE GROUP  )
5383      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5384} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5385  2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2
5386  2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   5790 22 3
5387  5790 22 3   5790 22 3   5790 22 3   5790 22 3   5790 22 3   7156 28 4
5388  7156 28 4   7156 28 4   7156 28 4   7156 28 4   7156 28 4   7156 28 4
5389  8960 35 5   8960 35 5   8960 35 5   8960 35 5   8960 35 5   10028 68 9
5390  10028 68 9   10028 68 9   10028 68 9   10028 68 9   10028 68 9   10028 68 9
5391  10396 59 8   10396 59 8   10396 59 8   10396 59 8   10396 59 8   10396 59 8
5392  10396 59 8   10396 59 8   10396 59 8   10479 40 6   10479 40 6   10479 40 6
5393  10479 40 6   10479 40 6   10479 40 6   10479 40 6   10479 40 6   10479 40 6
5394  10479 40 6   10479 40 6   11002 75 10   11002 75 10   11002 75 10
5395  11002 75 10   11002 75 10   11002 75 10   11002 75 10   11002 75 10
5396  11002 75 10   11441 51 7   11441 51 7   11441 51 7   11441 51 7
5397  11441 51 7   11441 51 7   11441 51 7   11441 51 7   12145 84 11
5398  12145 84 11   12145 84 11   12145 84 11   12145 84 11   12145 84 11}
5399
5400do_execsql_test 5.3.12.1 {
5401  SELECT max(c) OVER win,
5402             min(c) OVER win,
5403             count(a) OVER win
5404      FROM t3
5405      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE GROUP  )
5406      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5407} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5408  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5409  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5410  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5411  {} {} 0   158 158 1   160 160 1   160 160 1   223 223 1   224 224 1
5412  238 234 2   239 234 2   239 238 2   252 250 2   256 252 2   257 247 4
5413  257 247 4   257 250 3   335 330 2   336 330 2   336 335 2   354 354 1
5414  354 354 1   355 355 1   398 393 3   398 393 3   399 393 3   399 398 2
5415  399 398 2   572 572 1   574 574 1   633 629 2   634 627 3   634 627 3
5416  634 627 3   634 629 3   667 667 1   670 667 2   671 667 2   671 670 2
5417  671 670 2   711 711 1   711 711 1   716 705 2   726 726 1   730 730 1
5418  762 762 1   762 762 1   762 762 1   768 759 3   792 790 2   792 790 2
5419  794 786 3   794 786 3   844 839 4   845 839 4   845 839 4   845 840 3
5420  845 840 3   934 934 1   934 934 1   934 934 1   938 929 3   959 959 1
5421  963 963 1}
5422
5423do_execsql_test 5.3.12.2 {
5424  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5425             rank() OVER win,
5426             dense_rank() OVER win
5427      FROM t3
5428      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE GROUP  )
5429      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5430} {{} 1 1   {} 2 2   {} 2 2   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6
5431  {} 9 7   {} 10 8   {} 14 12   {} 15 13   {} 19 17   {} 20 18   {} 21 19
5432  {} 23 21   {} 25 23   {} 27 25   {} 27 25   {} 34 29   {} 35 30   {} 36 31
5433  {} 37 32   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37
5434  {} 43 37   {} 50 42   {} 56 47   {} 60 51   {} 61 52   {} 62 53   {} 64 55
5435  {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59   {} 70 60   {} 71 61
5436  {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70
5437  {} 85 72   {} 85 72   {} 89 75   223 11 9   239 12 10   239 13 11
5438  257 18 16   335 22 20   335 24 22   504 16 14   504 17 15   671 52 44
5439  671 52 44   705 58 49   710 26 24   711 57 48   711 59 50   759 63 54
5440  786 32 28   786 32 28   798 29 26   798 29 26   845 73 63   845 73 63
5441  929 84 71   959 88 74   963 87 73   1260 46 39   1260 46 39   1334 51 43
5442  1334 55 46   1584 31 27   1678 77 66   1885 48 40   1891 45 38   1891 49 41
5443  2005 54 45   2523 75 64   2523 76 65}
5444
5445do_execsql_test 5.3.13.1 {
5446  SELECT max(c) OVER win,
5447             min(c) OVER win,
5448             count(a) OVER win
5449      FROM t3
5450      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE GROUP  )
5451      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5452} {{} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5453  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5454  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5455  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5456  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5457  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5458  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5459  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5460  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5461  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5462  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5463  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0
5464  {} {} 0   {} {} 0   {} {} 0   {} {} 0   {} {} 0}
5465
5466do_execsql_test 5.3.13.2 {
5467  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5468             rank() OVER win,
5469             dense_rank() OVER win
5470      FROM t3
5471      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE GROUP  )
5472      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5473} {{} 1 1   {} 2 2   {} 2 2   {} 4 3   {} 5 4   {} 6 5   {} 6 5   {} 8 6
5474  {} 9 7   {} 10 8   {} 11 9   {} 12 10   {} 13 11   {} 14 12   {} 15 13
5475  {} 16 14   {} 17 15   {} 18 16   {} 19 17   {} 20 18   {} 21 19   {} 22 20
5476  {} 23 21   {} 24 22   {} 25 23   {} 26 24   {} 27 25   {} 27 25   {} 29 26
5477  {} 29 26   {} 31 27   {} 32 28   {} 32 28   {} 34 29   {} 35 30   {} 36 31
5478  {} 37 32   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 42 36   {} 43 37
5479  {} 43 37   {} 45 38   {} 46 39   {} 46 39   {} 48 40   {} 49 41   {} 50 42
5480  {} 51 43   {} 52 44   {} 52 44   {} 54 45   {} 55 46   {} 56 47   {} 57 48
5481  {} 58 49   {} 59 50   {} 60 51   {} 61 52   {} 62 53   {} 63 54   {} 64 55
5482  {} 64 55   {} 66 56   {} 67 57   {} 68 58   {} 69 59   {} 70 60   {} 71 61
5483  {} 72 62   {} 73 63   {} 73 63   {} 75 64   {} 76 65   {} 77 66   {} 78 67
5484  {} 78 67   {} 78 67   {} 81 68   {} 82 69   {} 83 70   {} 84 71   {} 85 72
5485  {} 85 72   {} 87 73   {} 88 74   {} 89 75}
5486
5487do_execsql_test 5.3.14.1 {
5488  SELECT max(c) OVER win,
5489             min(c) OVER win,
5490             count(a) OVER win
5491      FROM t3
5492      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
5493        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5494      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5495} {963 929 6   979 102 82   979 102 82   979 102 82   979 102 82   979 102 82
5496  979 102 83   979 113 80   979 113 81   979 113 82   979 133 79   979 148 78
5497  979 158 76   979 158 77   979 160 76   979 208 75   979 223 74   979 224 73
5498  979 234 72   979 238 71   979 239 70   979 247 69   979 250 68   979 252 67
5499  979 256 66   979 257 65   979 295 64   979 309 63   979 330 63   979 335 61
5500  979 336 60   979 346 59   979 354 58   979 355 56   979 355 58   979 393 55
5501  979 393 56   979 398 54   979 399 52   979 399 53   979 412 52   979 421 51
5502  979 430 50   979 443 49   979 480 47   979 480 48   979 572 46   979 574 46
5503  979 607 44   979 618 42   979 618 43   979 627 41   979 629 40   979 629 40
5504  979 633 39   979 634 38   979 652 37   979 660 36   979 667 34   979 667 35
5505  979 670 34   979 671 33   979 683 32   979 705 31   979 711 30   979 716 29
5506  979 726 28   979 730 27   979 759 26   979 762 25   979 768 23   979 768 24
5507  979 777 22   979 786 21   979 790 20   979 792 19   979 794 18   979 805 17
5508  979 822 16   979 839 15   979 839 15   979 840 13   979 844 12   979 845 11
5509  979 870 8   979 870 9   979 870 10   979 899 8   979 911 7}
5510
5511do_execsql_test 5.3.14.2 {
5512  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5513             rank() OVER win,
5514             dense_rank() OVER win
5515      FROM t3
5516      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
5517        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE GROUP  )
5518      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5519} {2851 89 89   3778 88 88   4681 87 87   5556 83 83   5574 82 82   5586 81 81
5520  5640 84 84   5640 85 85   5640 86 86   7324 80 80   8123 77 77   8129 73 73
5521  8129 74 74   8163 78 78   8163 79 79   8940 71 71   8968 75 75   8968 76 76
5522  9727 66 66   9745 69 69   9745 70 70   9745 72 72   10504 65 65
5523  10504 67 67   10504 68 68   11215 64 64   11844 62 62   11920 63 63
5524  13274 60 60   13274 61 61   13897 58 58   13903 57 57   13925 56 56
5525  13937 55 55   13941 59 59   15203 53 53   15241 54 54   15832 52 52
5526  17100 48 48   17104 46 46   17104 47 47   17106 45 45   17126 49 49
5527  17126 50 50   17126 51 51   17569 42 42   17733 44 44   18176 43 43
5528  18597 40 40   18597 41 41   18952 37 37   18996 39 39   19395 38 38
5529  19760 35 35   19788 36 36   20492 32 32   20492 33 33   20498 30 30
5530  20536 34 34   20833 29 29   20871 28 28   20891 31 31   21180 27 27
5531  21752 23 23   21830 26 26   22025 21 21   22087 22 22   22087 24 24
5532  22087 25 25   22278 20 20   22316 19 19   22549 15 15   22557 14 14
5533  22573 17 17   22573 18 18   22706 10 10   22796 11 11   22796 12 12
5534  22796 13 13   22796 16 16   23022 4 4   23042 2 2   23042 3 3   23042 9 9
5535  23155 1 1   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
5536
5537do_execsql_test 5.4.1.1 {
5538  SELECT max(c) OVER win,
5539             min(c) OVER win,
5540             count(a) OVER win
5541      FROM t3
5542      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5543      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5544} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
5545  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
5546  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
5547  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
5548  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
5549  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
5550  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
5551  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
5552  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
5553  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
5554  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
5555  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
5556  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
5557  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
5558  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
5559
5560do_execsql_test 5.4.1.2 {
5561  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5562             rank() OVER win,
5563             dense_rank() OVER win
5564      FROM t3
5565      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5566      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5567} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5568  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5569  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5570  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5571  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5572  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5573  113 1 1   113 1 1   133 1 1   223 1 1   239 1 1   247 1 1   257 1 1
5574  295 1 1   309 1 1   335 1 1   355 1 1   355 1 1   393 1 1   393 1 1
5575  399 1 1   399 1 1   421 1 1   443 1 1   607 1 1   627 1 1   629 1 1
5576  629 1 1   633 1 1   667 1 1   667 1 1   671 1 1   683 1 1   705 1 1
5577  711 1 1   759 1 1   777 1 1   805 1 1   839 1 1   839 1 1   845 1 1
5578  899 1 1   911 1 1   929 1 1   959 1 1   963 1 1   979 1 1}
5579
5580do_execsql_test 5.4.2.1 {
5581  SELECT max(c) OVER win,
5582             min(c) OVER win,
5583             count(a) OVER win
5584      FROM t3
5585      WINDOW win AS (  ORDER BY a NULLS FIRST
5586        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5587      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5588} {113 113 1   234 234 1   257 257 1   336 336 1   354 354 1   768 768 1
5589  839 839 1   839 839 1   899 113 10   899 113 10   899 113 10   899 113 10
5590  899 113 10   899 113 10   899 113 10   899 113 17   899 113 17   899 113 17
5591  899 113 17   899 113 17   899 113 17   899 113 17   899 899 1   963 113 17
5592  979 102 34   979 102 45   979 102 45   979 102 45   979 102 45   979 102 45
5593  979 102 50   979 102 50   979 102 50   979 102 50   979 102 50   979 102 50
5594  979 102 50   979 102 57   979 102 57   979 102 57   979 102 57   979 102 57
5595  979 102 57   979 102 63   979 102 63   979 102 63   979 102 63   979 102 63
5596  979 102 63   979 102 63   979 102 63   979 102 63   979 102 63   979 102 63
5597  979 102 63   979 102 63   979 102 76   979 102 76   979 102 76   979 102 76
5598  979 102 76   979 102 76   979 102 76   979 102 76   979 102 83   979 102 83
5599  979 102 83   979 102 83   979 102 83   979 102 83   979 113 17   979 113 26
5600  979 113 26   979 113 26   979 113 26   979 113 26   979 113 26   979 113 26
5601  979 113 26   979 113 34   979 113 34   979 113 34   979 113 34   979 113 34
5602  979 113 34   979 113 34   979 113 34   979 113 34   979 113 34}
5603
5604do_execsql_test 5.4.2.2 {
5605  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5606             rank() OVER win,
5607             dense_rank() OVER win
5608      FROM t3
5609      WINDOW win AS (  ORDER BY a NULLS FIRST
5610        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5611      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5612} {{} 81 11   {} 81 11   {} 81 11   {} 81 11   113 81 11   257 81 11
5613  839 81 11   839 81 11   899 81 11   2947 74 10   2947 74 10   2947 74 10
5614  3368 74 10   3390 74 10   3618 74 10   3752 74 10   5287 65 9   5287 65 9
5615  5287 65 9   5287 65 9   5420 65 9   5642 65 9   5970 65 9   6250 65 9
5616  6266 65 9   8400 57 8   8400 57 8   8400 57 8   8400 57 8   8400 57 8
5617  8400 57 8   8735 57 8   9329 57 8   9664 46 7   9664 46 7   9664 46 7
5618  9664 46 7   9664 46 7   9664 46 7   9664 46 7   9664 46 7   9664 46 7
5619  9959 46 7   10331 46 7   10626 41 6   10626 41 6   10739 41 6   11255 41 6
5620  11403 41 6   12145 34 5   12145 34 5   12145 34 5   12145 34 5   12145 34 5
5621  12990 34 5   13104 34 5   13949 28 4   13949 28 4   13949 28 4   13949 28 4
5622  14556 28 4   14708 28 4   15315 15 3   15315 15 3   15315 15 3   15315 15 3
5623  15315 15 3   15315 15 3   15562 15 3   15708 15 3   15708 15 3   15714 15 3
5624  15948 15 3   16020 15 3   16026 15 3   18796 7 2   18796 7 2   18796 7 2
5625  19019 7 2   19035 7 2   19105 7 2   19423 7 2   19707 7 2   21105 1 1
5626  21105 1 1   21460 1 1   21504 1 1   21734 1 1   21772 1 1}
5627
5628do_execsql_test 5.4.3.1 {
5629  SELECT max(c) OVER win,
5630             min(c) OVER win,
5631             count(a) OVER win
5632      FROM t3
5633      WINDOW win AS (  PARTITION BY coalesce(a, '')
5634        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5635      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5636} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
5637  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
5638  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
5639  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
5640  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
5641  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
5642  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
5643  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
5644  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
5645  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
5646  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
5647  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
5648  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
5649  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
5650  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
5651
5652do_execsql_test 5.4.3.2 {
5653  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5654             rank() OVER win,
5655             dense_rank() OVER win
5656      FROM t3
5657      WINDOW win AS (  PARTITION BY coalesce(a, '')
5658        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5659      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5660} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5661  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5662  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5663  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5664  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5665  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5666  113 1 1   113 1 1   133 1 1   223 1 1   239 1 1   247 1 1   257 1 1
5667  295 1 1   309 1 1   335 1 1   355 1 1   355 1 1   393 1 1   393 1 1
5668  399 1 1   399 1 1   421 1 1   443 1 1   607 1 1   627 1 1   629 1 1
5669  629 1 1   633 1 1   667 1 1   667 1 1   671 1 1   683 1 1   705 1 1
5670  711 1 1   759 1 1   777 1 1   805 1 1   839 1 1   839 1 1   845 1 1
5671  899 1 1   911 1 1   929 1 1   959 1 1   963 1 1   979 1 1}
5672
5673do_execsql_test 5.4.4.1 {
5674  SELECT max(c) OVER win,
5675             min(c) OVER win,
5676             count(a) OVER win
5677      FROM t3
5678      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE TIES  )
5679      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5680} {158 158 0   355 355 0   399 399 0   629 629 0   667 667 0   870 158 1
5681  870 158 1   870 158 1   870 158 1   870 158 1   870 158 1   870 870 0
5682  911 158 1   934 158 1   934 158 9   934 158 9   934 158 9   934 158 9
5683  934 158 9   934 158 9   934 158 9   934 158 9   934 158 9   934 158 9
5684  934 158 9   934 158 9   934 158 9   934 158 22   934 158 22   934 158 22
5685  934 158 22   934 158 22   934 158 22   934 158 28   934 158 28   934 158 28
5686  934 158 28   934 158 28   934 158 28   959 102 40   959 102 51   959 102 51
5687  959 102 51   959 102 51   959 102 51   959 102 51   959 102 51   959 102 51
5688  959 102 51   959 102 51   959 102 51   959 102 51   959 102 51   959 102 51
5689  959 102 51   959 113 35   959 113 40   959 113 40   959 113 40   959 113 40
5690  959 113 40   959 113 40   959 113 40   959 113 40   959 113 40   959 113 40
5691  959 158 28   959 158 35   959 158 35   959 158 35   959 158 35   963 102 51
5692  979 102 47   979 102 47   979 102 47   979 102 47   979 102 47   979 102 47
5693  979 102 47   979 102 48   979 102 48   979 102 48   979 102 48   979 102 48
5694  979 102 48   979 102 48   979 102 48   979 102 48   979 102 51}
5695
5696do_execsql_test 5.4.4.2 {
5697  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5698             rank() OVER win,
5699             dense_rank() OVER win
5700      FROM t3
5701      WINDOW win AS (  ORDER BY a NULLS FIRST GROUPS 6 PRECEDING   EXCLUDE TIES  )
5702      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5703} {{} 1 1   {} 1 1   355 1 1   399 1 1   629 1 1   667 1 1   2050 7 2
5704  2050 7 2   2050 7 2   2273 7 2   2289 7 2   2359 7 2   2677 7 2   2961 7 2
5705  4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3   4359 15 3
5706  4606 15 3   4752 15 3   4752 15 3   4758 15 3   4992 15 3   5064 15 3
5707  5070 15 3   7840 28 4   7840 28 4   7840 28 4   7840 28 4   8447 28 4
5708  8599 28 4   9206 34 5   9206 34 5   9206 34 5   9206 34 5   9206 34 5
5709  10028 74 10   10028 74 10   10028 74 10   10051 34 5   10165 34 5
5710  10396 65 9   10396 65 9   10396 65 9   10396 65 9   10449 74 10
5711  10471 74 10   10529 65 9   10699 74 10   10751 65 9   10833 74 10
5712  11002 81 11   11002 81 11   11002 81 11   11002 81 11   11010 41 6
5713  11010 41 6   11079 65 9   11115 81 11   11123 41 6   11259 81 11
5714  11359 65 9   11375 65 9   11441 57 8   11441 57 8   11441 57 8   11441 57 8
5715  11441 57 8   11441 57 8   11639 41 6   11776 57 8   11787 41 6
5716  11841 81 11   11841 81 11   11901 81 11   12370 57 8   12529 46 7
5717  12529 46 7   12529 46 7   12529 46 7   12529 46 7   12529 46 7   12529 46 7
5718  12529 46 7   12529 46 7   12824 46 7   13196 46 7}
5719
5720do_execsql_test 5.4.5.1 {
5721  SELECT max(c) OVER win,
5722             min(c) OVER win,
5723             count(a) OVER win
5724      FROM t3
5725      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE TIES  )
5726      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5727} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   160 158 1
5728  160 158 2   160 158 2   208 208 1   224 223 2   224 223 2   239 234 3
5729  239 234 3   239 234 3   252 247 3   257 247 5   257 247 5   257 250 4
5730  257 252 3   295 295 1   309 309 1   336 330 3   336 330 3   336 330 3
5731  346 346 1   355 354 1   355 354 2   355 354 2   399 393 3   399 393 3
5732  399 393 3   399 393 4   399 393 4   412 412 1   421 421 1   430 430 1
5733  443 443 1   480 480 1   480 480 1   574 572 2   574 572 2   607 607 1
5734  618 618 1   618 618 1   634 627 3   634 627 4   634 627 4   634 627 4
5735  634 629 3   652 652 1   667 660 2   671 667 2   671 667 3   671 667 3
5736  671 667 3   683 683 1   711 705 2   716 705 3   716 711 2   730 726 2
5737  730 726 2   762 759 2   768 759 4   768 762 2   768 762 2   777 777 1
5738  792 786 3   794 786 4   794 786 4   794 790 3   805 805 1   822 822 1
5739  845 839 4   845 839 4   845 839 5   845 839 5   845 839 5   870 870 0
5740  870 870 1   870 870 1   899 899 1   911 911 1   934 929 2   938 929 4
5741  938 934 2   938 934 2   963 959 2   963 959 2   979 979 1}
5742
5743do_execsql_test 5.4.5.2 {
5744  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5745             rank() OVER win,
5746             dense_rank() OVER win
5747      FROM t3
5748      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE TIES  )
5749      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5750} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 25 23   {} 34 29
5751  {} 36 31   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 43 37   {} 43 37
5752  {} 50 42   {} 60 51   {} 61 52   {} 64 55   {} 64 55   {} 67 57   {} 68 58
5753  {} 69 59   {} 70 60   {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 85 72
5754  {} 85 72   113 2 2   113 2 2   133 4 3   223 10 8   223 11 9   239 12 10
5755  239 13 11   239 14 12   247 15 13   257 18 16   257 19 17   295 20 18
5756  309 21 19   335 22 20   335 23 21   335 24 22   355 27 25   355 27 25
5757  421 35 30   443 37 32   504 16 14   504 17 15   607 42 36   683 56 47
5758  710 26 24   711 59 50   759 62 53   759 63 54   777 66 56   805 71 61
5759  899 81 68   911 82 69   929 83 70   929 84 71   979 89 75   1185 32 28
5760  1185 32 28   1191 29 26   1191 29 26   1334 51 43   1338 52 44   1338 52 44
5761  1416 57 48   1416 58 49   1584 31 27   1684 73 63   1684 73 63   1889 46 39
5762  1889 46 39   1891 49 41   1922 87 73   1922 88 74   2005 54 45   2005 55 46
5763  2518 45 38   2518 48 40   2523 75 64   2523 76 65   2523 77 66}
5764
5765do_execsql_test 5.4.6.1 {
5766  SELECT max(c) OVER win,
5767             min(c) OVER win,
5768             count(a) OVER win
5769      FROM t3
5770      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE TIES  )
5771      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5772} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
5773  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
5774  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
5775  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
5776  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
5777  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
5778  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
5779  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
5780  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
5781  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
5782  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
5783  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
5784  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
5785  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
5786  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
5787
5788do_execsql_test 5.4.6.2 {
5789  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5790             rank() OVER win,
5791             dense_rank() OVER win
5792      FROM t3
5793      WINDOW win AS (  ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE TIES  )
5794      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5795} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 11 9   {} 12 10
5796  {} 13 11   {} 16 14   {} 17 15   {} 18 16   {} 22 20   {} 24 22   {} 25 23
5797  {} 26 24   {} 31 27   {} 34 29   {} 36 31   {} 38 33   {} 38 33   {} 40 34
5798  {} 41 35   {} 43 37   {} 43 37   {} 49 41   {} 50 42   {} 51 43   {} 54 45
5799  {} 59 50   {} 60 51   {} 61 52   {} 63 54   {} 64 55   {} 64 55   {} 67 57
5800  {} 68 58   {} 69 59   {} 70 60   {} 72 62   {} 75 64   {} 76 65   {} 78 67
5801  {} 78 67   {} 78 67   {} 84 71   {} 85 72   {} 85 72   113 2 2   113 2 2
5802  133 4 3   223 10 8   239 14 12   247 15 13   257 19 17   295 20 18
5803  309 21 19   335 23 21   355 27 25   355 27 25   393 29 26   393 29 26
5804  399 32 28   399 32 28   421 35 30   443 37 32   607 42 36   627 45 38
5805  629 46 39   629 46 39   633 48 40   667 52 44   667 52 44   671 55 46
5806  683 56 47   705 57 48   711 58 49   759 62 53   777 66 56   805 71 61
5807  839 73 63   839 73 63   845 77 66   899 81 68   911 82 69   929 83 70
5808  959 87 73   963 88 74   979 89 75}
5809
5810do_execsql_test 5.4.7.1 {
5811  SELECT max(c) OVER win,
5812             min(c) OVER win,
5813             count(a) OVER win
5814      FROM t3
5815      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
5816        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5817      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5818} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
5819  979 102 83   979 113 81   979 113 82   979 133 80   979 148 79   979 158 77
5820  979 158 78   979 160 77   979 208 76   979 223 75   979 224 74   979 234 73
5821  979 238 72   979 239 71   979 247 70   979 250 69   979 252 68   979 256 67
5822  979 257 66   979 295 65   979 309 64   979 330 63   979 335 62   979 336 61
5823  979 346 60   979 354 59   979 355 58   979 355 58   979 393 56   979 393 57
5824  979 398 55   979 399 54   979 399 54   979 412 53   979 421 52   979 430 51
5825  979 443 50   979 480 48   979 480 49   979 572 47   979 574 46   979 607 45
5826  979 618 43   979 618 44   979 627 42   979 629 41   979 629 41   979 633 40
5827  979 634 39   979 652 38   979 660 37   979 667 36   979 667 36   979 670 35
5828  979 671 34   979 683 33   979 705 32   979 711 31   979 716 30   979 726 29
5829  979 730 28   979 759 27   979 762 26   979 768 24   979 768 25   979 777 23
5830  979 786 22   979 790 21   979 792 20   979 794 19   979 805 18   979 822 17
5831  979 839 15   979 839 16   979 840 14   979 844 13   979 845 12   979 870 10
5832  979 870 11   979 870 11   979 899 9   979 911 8   979 929 7}
5833
5834do_execsql_test 5.4.7.2 {
5835  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5836             rank() OVER win,
5837             dense_rank() OVER win
5838      FROM t3
5839      WINDOW win AS (  ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST
5840        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5841      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5842} {3830 89 89   4741 88 88   5640 84 84   5640 85 85   5640 86 86   5640 87 87
5843  6485 81 81   6485 82 82   6485 83 83   7324 80 80   8163 78 78   8163 79 79
5844  8968 73 73   8968 74 74   8968 75 75   8968 76 76   8968 77 77   9745 69 69
5845  9745 70 70   9745 71 71   9745 72 72   10504 65 65   10504 66 66
5846  10504 67 67   10504 68 68   11215 64 64   11920 63 63   12603 62 62
5847  13274 60 60   13274 61 61   13941 59 59   14608 55 55   14608 56 56
5848  14608 57 57   14608 58 58   15241 54 54   15870 53 53   16499 52 52
5849  17126 49 49   17126 50 50   17126 51 51   17733 44 44   17733 45 45
5850  17733 46 46   17733 47 47   17733 48 48   18176 42 42   18176 43 43
5851  18597 40 40   18597 41 41   18996 39 39   19395 37 37   19395 38 38
5852  19788 36 36   20181 35 35   20536 34 34   20891 30 30   20891 31 31
5853  20891 32 32   20891 33 33   21226 28 28   21226 29 29   21535 27 27
5854  21830 26 26   22087 22 22   22087 23 23   22087 24 24   22087 25 25
5855  22334 21 21   22573 17 17   22573 18 18   22573 19 19   22573 20 20
5856  22796 11 11   22796 12 12   22796 13 13   22796 14 14   22796 15 15
5857  22796 16 16   22929 10 10   23042 9 9   23155 1 1   23155 2 2   23155 3 3
5858  23155 4 4   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
5859
5860do_execsql_test 5.4.8.1 {
5861  SELECT max(c) OVER win,
5862             min(c) OVER win,
5863             count(a) OVER win
5864      FROM t3
5865      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5866      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5867} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
5868  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
5869  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
5870  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
5871  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
5872  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
5873  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
5874  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
5875  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
5876  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
5877  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
5878  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
5879  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
5880  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
5881  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
5882
5883do_execsql_test 5.4.8.2 {
5884  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5885             rank() OVER win,
5886             dense_rank() OVER win
5887      FROM t3
5888      WINDOW win AS (  RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5889      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5890} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5891  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5892  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5893  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5894  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5895  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5896  113 1 1   113 1 1   133 1 1   223 1 1   239 1 1   247 1 1   257 1 1
5897  295 1 1   309 1 1   335 1 1   355 1 1   355 1 1   393 1 1   393 1 1
5898  399 1 1   399 1 1   421 1 1   443 1 1   607 1 1   627 1 1   629 1 1
5899  629 1 1   633 1 1   667 1 1   667 1 1   671 1 1   683 1 1   705 1 1
5900  711 1 1   759 1 1   777 1 1   805 1 1   839 1 1   839 1 1   845 1 1
5901  899 1 1   911 1 1   929 1 1   959 1 1   963 1 1   979 1 1}
5902
5903do_execsql_test 5.4.9.1 {
5904  SELECT max(c) OVER win,
5905             min(c) OVER win,
5906             count(a) OVER win
5907      FROM t3
5908      WINDOW win AS (  ORDER BY a NULLS LAST
5909        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5910      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5911} {158 158 0   355 355 0   399 399 0   629 629 0   667 667 0   870 113 1
5912  870 158 1   870 158 1   870 158 1   870 158 1   870 158 1   870 158 1
5913  870 158 1   870 870 0   899 113 10   899 113 10   899 113 10   899 113 10
5914  899 113 10   899 113 10   899 113 10   899 113 17   899 113 17   899 113 17
5915  899 113 17   899 113 17   899 113 17   899 113 17   899 158 1   963 113 17
5916  979 102 34   979 102 45   979 102 45   979 102 45   979 102 45   979 102 45
5917  979 102 50   979 102 50   979 102 50   979 102 50   979 102 50   979 102 50
5918  979 102 50   979 102 57   979 102 57   979 102 57   979 102 57   979 102 57
5919  979 102 57   979 102 63   979 102 63   979 102 63   979 102 63   979 102 63
5920  979 102 63   979 102 63   979 102 63   979 102 63   979 102 63   979 102 63
5921  979 102 63   979 102 63   979 102 76   979 102 76   979 102 76   979 102 76
5922  979 102 76   979 102 76   979 102 76   979 102 76   979 113 17   979 113 26
5923  979 113 26   979 113 26   979 113 26   979 113 26   979 113 26   979 113 26
5924  979 113 26   979 113 34   979 113 34   979 113 34   979 113 34   979 113 34
5925  979 113 34   979 113 34   979 113 34   979 113 34   979 113 34}
5926
5927do_execsql_test 5.4.9.2 {
5928  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5929             rank() OVER win,
5930             dense_rank() OVER win
5931      FROM t3
5932      WINDOW win AS (  ORDER BY a NULLS LAST
5933        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5934      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5935} {{} 84 11   {} 84 11   355 84 11   399 84 11   629 84 11   667 84 11
5936  2050 75 10   2050 75 10   2050 75 10   2050 75 10   2163 75 10   2307 75 10
5937  2889 75 10   2889 75 10   2949 75 10   4997 68 9   4997 68 9   4997 68 9
5938  5418 68 9   5440 68 9   5668 68 9   5802 68 9   7337 59 8   7337 59 8
5939  7337 59 8   7337 59 8   7470 59 8   7692 59 8   8020 59 8   8300 59 8
5940  8316 59 8   10450 51 7   10450 51 7   10450 51 7   10450 51 7   10450 51 7
5941  10450 51 7   10785 51 7   11379 51 7   11714 40 6   11714 40 6   11714 40 6
5942  11714 40 6   11714 40 6   11714 40 6   11714 40 6   11714 40 6   11714 40 6
5943  12009 40 6   12381 40 6   12676 35 5   12676 35 5   12789 35 5   13305 35 5
5944  13453 35 5   14195 28 4   14195 28 4   14195 28 4   14195 28 4   14195 28 4
5945  15040 28 4   15154 28 4   15999 22 3   15999 22 3   15999 22 3   15999 22 3
5946  16606 22 3   16758 22 3   17365 9 2   17365 9 2   17365 9 2   17365 9 2
5947  17365 9 2   17365 9 2   17612 9 2   17758 9 2   17758 9 2   17764 9 2
5948  17998 9 2   18070 9 2   18076 9 2   20846 1 1   20846 1 1   20846 1 1
5949  21069 1 1   21085 1 1   21155 1 1   21473 1 1   21757 1 1}
5950
5951do_execsql_test 5.4.10.1 {
5952  SELECT max(c) OVER win,
5953             min(c) OVER win,
5954             count(a) OVER win
5955      FROM t3
5956      WINDOW win AS (  PARTITION BY coalesce(a, '')
5957        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5958      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5959} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
5960  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
5961  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
5962  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
5963  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
5964  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
5965  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
5966  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
5967  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
5968  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
5969  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
5970  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
5971  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
5972  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
5973  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
5974
5975do_execsql_test 5.4.10.2 {
5976  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
5977             rank() OVER win,
5978             dense_rank() OVER win
5979      FROM t3
5980      WINDOW win AS (  PARTITION BY coalesce(a, '')
5981        RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
5982      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
5983} {{} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5984  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5985  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5986  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5987  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5988  {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1   {} 1 1
5989  113 1 1   113 1 1   133 1 1   223 1 1   239 1 1   247 1 1   257 1 1
5990  295 1 1   309 1 1   335 1 1   355 1 1   355 1 1   393 1 1   393 1 1
5991  399 1 1   399 1 1   421 1 1   443 1 1   607 1 1   627 1 1   629 1 1
5992  629 1 1   633 1 1   667 1 1   667 1 1   671 1 1   683 1 1   705 1 1
5993  711 1 1   759 1 1   777 1 1   805 1 1   839 1 1   839 1 1   845 1 1
5994  899 1 1   911 1 1   929 1 1   959 1 1   963 1 1   979 1 1}
5995
5996do_execsql_test 5.4.11.1 {
5997  SELECT max(c) OVER win,
5998             min(c) OVER win,
5999             count(a) OVER win
6000      FROM t3
6001      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE TIES  )
6002      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6003} {223 223 1   239 239 1   309 309 1   572 572 1   627 627 1   870 870 1
6004  911 911 1   934 158 22   934 158 28   934 158 28   934 158 28   934 158 28
6005  934 158 28   934 158 28   934 223 9   934 223 9   934 223 9   934 223 9
6006  934 223 9   934 223 9   934 223 9   934 223 9   934 223 9   934 223 9
6007  934 223 9   934 223 9   934 223 9   934 223 22   934 223 22   934 223 22
6008  934 223 22   934 223 22   934 934 1   959 102 40   959 102 51   959 102 51
6009  959 102 51   959 102 51   959 102 51   959 102 51   959 102 51   959 102 51
6010  959 102 51   959 102 51   959 102 51   959 102 51   959 102 51   959 102 51
6011  959 102 51   959 113 35   959 113 40   959 113 40   959 113 40   959 113 40
6012  959 113 40   959 113 40   959 113 40   959 113 40   959 113 40   959 113 40
6013  959 158 28   959 158 35   959 158 35   959 158 35   959 158 35   963 102 51
6014  979 102 47   979 102 47   979 102 47   979 102 47   979 102 47   979 102 47
6015  979 102 47   979 102 48   979 102 48   979 102 48   979 102 48   979 102 48
6016  979 102 48   979 102 48   979 102 48   979 102 48   979 102 49   979 102 49
6017  979 102 49   979 102 49   979 102 49   979 102 49   979 102 51}
6018
6019do_execsql_test 5.4.11.2 {
6020  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
6021             rank() OVER win,
6022             dense_rank() OVER win
6023      FROM t3
6024      WINDOW win AS (  ORDER BY a NULLS LAST GROUPS 6 PRECEDING   EXCLUDE TIES  )
6025      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6026} {{} 1 1   {} 1 1   {} 1 1   223 1 1   239 1 1   309 1 1   627 1 1   911 1 1
6027  2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   2309 9 2   2556 9 2
6028  2702 9 2   2702 9 2   2708 9 2   2942 9 2   3014 9 2   3020 9 2   5790 22 3
6029  5790 22 3   5790 22 3   5790 22 3   6397 22 3   6549 22 3   7156 28 4
6030  7156 28 4   7156 28 4   7156 28 4   7156 28 4   8001 28 4   8115 28 4
6031  8960 35 5   8960 35 5   9073 35 5   9589 35 5   9737 35 5   10028 68 9
6032  10028 68 9   10028 68 9   10396 59 8   10396 59 8   10396 59 8   10396 59 8
6033  10449 68 9   10471 68 9   10479 40 6   10479 40 6   10479 40 6   10479 40 6
6034  10479 40 6   10479 40 6   10479 40 6   10479 40 6   10479 40 6   10529 59 8
6035  10699 68 9   10751 59 8   10774 40 6   10833 68 9   11002 75 10
6036  11002 75 10   11002 75 10   11002 75 10   11079 59 8   11115 75 10
6037  11146 40 6   11259 75 10   11359 59 8   11375 59 8   11441 51 7
6038  11441 51 7   11441 51 7   11441 51 7   11441 51 7   11441 51 7   11776 51 7
6039  11841 75 10   11841 75 10   11901 75 10   12145 84 11   12145 84 11
6040  12370 51 7   12500 84 11   12544 84 11   12774 84 11   12812 84 11}
6041
6042do_execsql_test 5.4.12.1 {
6043  SELECT max(c) OVER win,
6044             min(c) OVER win,
6045             count(a) OVER win
6046      FROM t3
6047      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE TIES  )
6048      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6049} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   160 158 1
6050  160 158 2   160 158 2   208 208 1   224 223 2   224 223 2   239 234 3
6051  239 234 3   239 234 3   252 247 3   257 247 5   257 247 5   257 250 4
6052  257 252 3   295 295 1   309 309 1   336 330 3   336 330 3   336 330 3
6053  346 346 1   355 354 1   355 354 2   355 354 2   399 393 3   399 393 3
6054  399 393 3   399 393 4   399 393 4   412 412 1   421 421 1   430 430 1
6055  443 443 1   480 480 1   480 480 1   574 572 2   574 572 2   607 607 1
6056  618 618 1   618 618 1   634 627 3   634 627 4   634 627 4   634 627 4
6057  634 629 3   652 652 1   667 660 2   671 667 2   671 667 3   671 667 3
6058  671 667 3   683 683 1   711 705 2   716 705 3   716 711 2   730 726 2
6059  730 726 2   762 759 2   768 759 4   768 762 2   768 762 2   777 777 1
6060  792 786 3   794 786 4   794 786 4   794 790 3   805 805 1   822 822 1
6061  845 839 4   845 839 4   845 839 5   845 839 5   845 839 5   870 870 0
6062  870 870 1   870 870 1   899 899 1   911 911 1   934 929 2   938 929 4
6063  938 934 2   938 934 2   963 959 2   963 959 2   979 979 1}
6064
6065do_execsql_test 5.4.12.2 {
6066  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
6067             rank() OVER win,
6068             dense_rank() OVER win
6069      FROM t3
6070      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING   EXCLUDE TIES  )
6071      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6072} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 25 23   {} 34 29
6073  {} 36 31   {} 38 33   {} 38 33   {} 40 34   {} 41 35   {} 43 37   {} 43 37
6074  {} 50 42   {} 60 51   {} 61 52   {} 64 55   {} 64 55   {} 67 57   {} 68 58
6075  {} 69 59   {} 70 60   {} 72 62   {} 78 67   {} 78 67   {} 78 67   {} 85 72
6076  {} 85 72   113 2 2   113 2 2   133 4 3   223 10 8   223 11 9   239 12 10
6077  239 13 11   239 14 12   247 15 13   257 18 16   257 19 17   295 20 18
6078  309 21 19   335 22 20   335 23 21   335 24 22   355 27 25   355 27 25
6079  421 35 30   443 37 32   504 16 14   504 17 15   607 42 36   683 56 47
6080  710 26 24   711 59 50   759 62 53   759 63 54   777 66 56   805 71 61
6081  899 81 68   911 82 69   929 83 70   929 84 71   979 89 75   1185 32 28
6082  1185 32 28   1191 29 26   1191 29 26   1334 51 43   1338 52 44   1338 52 44
6083  1416 57 48   1416 58 49   1584 31 27   1684 73 63   1684 73 63   1889 46 39
6084  1889 46 39   1891 49 41   1922 87 73   1922 88 74   2005 54 45   2005 55 46
6085  2518 45 38   2518 48 40   2523 75 64   2523 76 65   2523 77 66}
6086
6087do_execsql_test 5.4.13.1 {
6088  SELECT max(c) OVER win,
6089             min(c) OVER win,
6090             count(a) OVER win
6091      FROM t3
6092      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE TIES  )
6093      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6094} {102 102 1   113 113 1   113 113 1   133 133 1   148 148 1   158 158 0
6095  158 158 1   160 160 1   208 208 1   223 223 1   224 224 1   234 234 1
6096  238 238 1   239 239 1   247 247 1   250 250 1   252 252 1   256 256 1
6097  257 257 1   295 295 1   309 309 1   330 330 1   335 335 1   336 336 1
6098  346 346 1   354 354 1   355 355 0   355 355 1   393 393 1   393 393 1
6099  398 398 1   399 399 0   399 399 1   412 412 1   421 421 1   430 430 1
6100  443 443 1   480 480 1   480 480 1   572 572 1   574 574 1   607 607 1
6101  618 618 1   618 618 1   627 627 1   629 629 0   629 629 1   633 633 1
6102  634 634 1   652 652 1   660 660 1   667 667 0   667 667 1   670 670 1
6103  671 671 1   683 683 1   705 705 1   711 711 1   716 716 1   726 726 1
6104  730 730 1   759 759 1   762 762 1   768 768 1   768 768 1   777 777 1
6105  786 786 1   790 790 1   792 792 1   794 794 1   805 805 1   822 822 1
6106  839 839 1   839 839 1   840 840 1   844 844 1   845 845 1   870 870 0
6107  870 870 1   870 870 1   899 899 1   911 911 1   929 929 1   934 934 1
6108  938 938 1   938 938 1   959 959 1   963 963 1   979 979 1}
6109
6110do_execsql_test 5.4.13.2 {
6111  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
6112             rank() OVER win,
6113             dense_rank() OVER win
6114      FROM t3
6115      WINDOW win AS (  ORDER BY c NULLS LAST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING   EXCLUDE TIES  )
6116      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6117} {{} 1 1   {} 5 4   {} 6 5   {} 6 5   {} 8 6   {} 9 7   {} 11 9   {} 12 10
6118  {} 13 11   {} 16 14   {} 17 15   {} 18 16   {} 22 20   {} 24 22   {} 25 23
6119  {} 26 24   {} 31 27   {} 34 29   {} 36 31   {} 38 33   {} 38 33   {} 40 34
6120  {} 41 35   {} 43 37   {} 43 37   {} 49 41   {} 50 42   {} 51 43   {} 54 45
6121  {} 59 50   {} 60 51   {} 61 52   {} 63 54   {} 64 55   {} 64 55   {} 67 57
6122  {} 68 58   {} 69 59   {} 70 60   {} 72 62   {} 75 64   {} 76 65   {} 78 67
6123  {} 78 67   {} 78 67   {} 84 71   {} 85 72   {} 85 72   113 2 2   113 2 2
6124  133 4 3   223 10 8   239 14 12   247 15 13   257 19 17   295 20 18
6125  309 21 19   335 23 21   355 27 25   355 27 25   393 29 26   393 29 26
6126  399 32 28   399 32 28   421 35 30   443 37 32   607 42 36   627 45 38
6127  629 46 39   629 46 39   633 48 40   667 52 44   667 52 44   671 55 46
6128  683 56 47   705 57 48   711 58 49   759 62 53   777 66 56   805 71 61
6129  839 73 63   839 73 63   845 77 66   899 81 68   911 82 69   929 83 70
6130  959 87 73   963 88 74   979 89 75}
6131
6132do_execsql_test 5.4.14.1 {
6133  SELECT max(c) OVER win,
6134             min(c) OVER win,
6135             count(a) OVER win
6136      FROM t3
6137      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
6138        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
6139      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6140} {979 102 83   979 102 83   979 102 83   979 102 83   979 102 83   979 102 83
6141  979 102 83   979 113 81   979 113 82   979 133 80   979 148 79   979 158 77
6142  979 158 78   979 160 77   979 208 76   979 223 75   979 224 74   979 234 73
6143  979 238 72   979 239 71   979 247 70   979 250 69   979 252 68   979 256 67
6144  979 257 66   979 295 65   979 309 64   979 330 63   979 335 62   979 336 61
6145  979 346 60   979 354 59   979 355 57   979 355 58   979 393 56   979 393 57
6146  979 398 55   979 399 53   979 399 54   979 412 53   979 421 52   979 430 51
6147  979 443 50   979 480 48   979 480 49   979 572 47   979 574 46   979 607 45
6148  979 618 43   979 618 44   979 627 42   979 629 40   979 629 41   979 633 40
6149  979 634 39   979 652 38   979 660 37   979 667 35   979 667 36   979 670 35
6150  979 671 34   979 683 33   979 705 32   979 711 31   979 716 30   979 726 29
6151  979 730 28   979 759 27   979 762 26   979 768 24   979 768 25   979 777 23
6152  979 786 22   979 790 21   979 792 20   979 794 19   979 805 18   979 822 17
6153  979 839 15   979 839 16   979 840 14   979 844 13   979 845 12   979 870 9
6154  979 870 10   979 870 11   979 899 9   979 911 8   979 929 7}
6155
6156do_execsql_test 5.4.14.2 {
6157  SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win,
6158             rank() OVER win,
6159             dense_rank() OVER win
6160      FROM t3
6161      WINDOW win AS (  ORDER BY c NULLS LAST, b NULLS LAST, a NULLS LAST
6162        ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING   EXCLUDE TIES  )
6163      ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST
6164} {3830 89 89   4741 88 88   5640 84 84   5640 85 85   5640 86 86   5640 87 87
6165  6485 81 81   6485 82 82   6485 83 83   7324 80 80   8163 78 78   8163 79 79
6166  8968 73 73   8968 74 74   8968 75 75   8968 76 76   8968 77 77   9745 69 69
6167  9745 70 70   9745 71 71   9745 72 72   10504 65 65   10504 66 66
6168  10504 67 67   10504 68 68   11215 64 64   11920 63 63   12603 62 62
6169  13274 60 60   13274 61 61   13941 59 59   14608 55 55   14608 56 56
6170  14608 57 57   14608 58 58   15241 54 54   15870 53 53   16499 52 52
6171  17126 49 49   17126 50 50   17126 51 51   17733 44 44   17733 45 45
6172  17733 46 46   17733 47 47   17733 48 48   18176 42 42   18176 43 43
6173  18597 40 40   18597 41 41   18996 39 39   19395 37 37   19395 38 38
6174  19788 36 36   20181 35 35   20536 34 34   20891 30 30   20891 31 31
6175  20891 32 32   20891 33 33   21226 28 28   21226 29 29   21535 27 27
6176  21830 26 26   22087 22 22   22087 23 23   22087 24 24   22087 25 25
6177  22334 21 21   22573 17 17   22573 18 18   22573 19 19   22573 20 20
6178  22796 11 11   22796 12 12   22796 13 13   22796 14 14   22796 15 15
6179  22796 16 16   22929 10 10   23042 9 9   23155 1 1   23155 2 2   23155 3 3
6180  23155 4 4   23155 5 5   23155 6 6   23155 7 7   23155 8 8}
6181
6182#==========================================================================
6183
6184do_execsql_test 6.0 {
6185  DROP TABLE IF EXISTS t2;
6186  CREATE TABLE t2(a TEXT, b INTEGER);
6187  INSERT INTO t2 VALUES('A', NULL);
6188  INSERT INTO t2 VALUES('B', NULL);
6189  INSERT INTO t2 VALUES('C', 1);
6190} {}
6191
6192do_execsql_test 6.1 {
6193  SELECT group_concat(a, '.') OVER (
6194    ORDER BY b NULLS FIRST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
6195  )
6196  FROM t2
6197} {A.B   A.B   {}}
6198
6199do_execsql_test 6.2 {
6200  SELECT group_concat(a, '.') OVER (
6201    ORDER BY b DESC NULLS LAST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING
6202  )
6203  FROM t2
6204} {{}   A.B   A.B}
6205
6206#==========================================================================
6207
6208do_execsql_test 7.0 {
6209  DROP TABLE IF EXISTS t2;
6210  CREATE TABLE t2(a INTEGER, b INTEGER);
6211
6212  INSERT INTO t2 VALUES(1, 65);
6213  INSERT INTO t2 VALUES(2, NULL);
6214  INSERT INTO t2 VALUES(3, NULL);
6215  INSERT INTO t2 VALUES(4, NULL);
6216  INSERT INTO t2 VALUES(5, 66);
6217  INSERT INTO t2 VALUES(6, 67);
6218} {}
6219
6220do_execsql_test 7.1.1 {
6221  SELECT sum (a) OVER win FROM t2
6222  WINDOW win AS (
6223      ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING
6224  );
6225} {9   9   9   9   9   9}
6226
6227do_execsql_test 7.1.2 {
6228  SELECT sum (a) OVER win FROM t2
6229  WINDOW win AS (
6230      ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6231  );
6232} {{}   {}   {}   9   9   9}
6233
6234do_execsql_test 7.1.3 {
6235  SELECT sum (a) OVER win FROM t2
6236  WINDOW win AS (
6237      ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6238  );
6239} {{}   {}   {}   9   9   9}
6240
6241do_execsql_test 7.1.4 {
6242  SELECT sum (a) OVER win FROM t2
6243  WINDOW win AS (
6244      ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6245  );
6246} {9   9   9   {}   {}   {}}
6247
6248do_execsql_test 7.1.5 {
6249  SELECT sum (a) OVER win FROM t2
6250  WINDOW win AS (
6251      ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6252  );
6253} {9   9   9   {}   {}   {}}
6254
6255do_execsql_test 7.1.6 {
6256  SELECT sum (a) OVER win FROM t2
6257  WINDOW win AS (
6258      ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING
6259  );
6260} {{}   {}   1   9   9   9}
6261
6262do_execsql_test 7.1.7 {
6263  SELECT sum (a) OVER win FROM t2
6264  WINDOW win AS (
6265      ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6266  );
6267} {{}   {}   {}   9   9   9}
6268
6269do_execsql_test 7.1.8 {
6270  SELECT sum (a) OVER win FROM t2
6271  WINDOW win AS (
6272      ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING
6273  );
6274} {9   9   9   {}   {}   {}}
6275
6276do_execsql_test 7.1.9 {
6277  SELECT sum (a) OVER win FROM t2
6278  WINDOW win AS (
6279      ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6280  );
6281} {9   9   9   {}   {}   {}}
6282
6283do_execsql_test 7.2.1 {
6284  SELECT min (a) OVER win FROM t2
6285  WINDOW win AS (
6286      ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING
6287  );
6288} {2   2   2   2   2   2}
6289
6290do_execsql_test 7.2.2 {
6291  SELECT min (a) OVER win FROM t2
6292  WINDOW win AS (
6293      ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6294  );
6295} {{}   {}   {}   2   2   2}
6296
6297do_execsql_test 7.2.3 {
6298  SELECT min (a) OVER win FROM t2
6299  WINDOW win AS (
6300      ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6301  );
6302} {{}   {}   {}   2   2   2}
6303
6304do_execsql_test 7.2.4 {
6305  SELECT min (a) OVER win FROM t2
6306  WINDOW win AS (
6307      ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6308  );
6309} {2   2   2   {}   {}   {}}
6310
6311do_execsql_test 7.2.5 {
6312  SELECT min (a) OVER win FROM t2
6313  WINDOW win AS (
6314      ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6315  );
6316} {2   2   2   {}   {}   {}}
6317
6318do_execsql_test 7.2.6 {
6319  SELECT min (a) OVER win FROM t2
6320  WINDOW win AS (
6321      ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING
6322  );
6323} {{}   {}   1   2   2   2}
6324
6325do_execsql_test 7.2.7 {
6326  SELECT min (a) OVER win FROM t2
6327  WINDOW win AS (
6328      ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6329  );
6330} {{}   {}   {}   2   2   2}
6331
6332do_execsql_test 7.2.8 {
6333  SELECT min (a) OVER win FROM t2
6334  WINDOW win AS (
6335      ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING
6336  );
6337} {2   2   2   {}   {}   {}}
6338
6339do_execsql_test 7.2.9 {
6340  SELECT min (a) OVER win FROM t2
6341  WINDOW win AS (
6342      ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6343  );
6344} {2   2   2   {}   {}   {}}
6345
6346do_execsql_test 7.3.1 {
6347  SELECT sum (a) OVER win FROM t2
6348  WINDOW win AS (
6349      ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING
6350  );
6351} {9   9   9   9   9   9}
6352
6353do_execsql_test 7.3.2 {
6354  SELECT sum (a) OVER win FROM t2
6355  WINDOW win AS (
6356      ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6357  );
6358} {{}   {}   {}   9   9   9}
6359
6360do_execsql_test 7.3.3 {
6361  SELECT sum (a) OVER win FROM t2
6362  WINDOW win AS (
6363      ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6364  );
6365} {{}   {}   {}   9   9   9}
6366
6367do_execsql_test 7.3.4 {
6368  SELECT sum (a) OVER win FROM t2
6369  WINDOW win AS (
6370      ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6371  );
6372} {9   9   9   {}   {}   {}}
6373
6374do_execsql_test 7.3.5 {
6375  SELECT sum (a) OVER win FROM t2
6376  WINDOW win AS (
6377      ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6378  );
6379} {9   9   9   {}   {}   {}}
6380
6381do_execsql_test 7.3.6 {
6382  SELECT sum (a) OVER win FROM t2
6383  WINDOW win AS (
6384      ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING
6385  );
6386} {{}   {}   1   9   9   9}
6387
6388do_execsql_test 7.3.7 {
6389  SELECT sum (a) OVER win FROM t2
6390  WINDOW win AS (
6391      ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6392  );
6393} {{}   {}   {}   9   9   9}
6394
6395do_execsql_test 7.3.8 {
6396  SELECT sum (a) OVER win FROM t2
6397  WINDOW win AS (
6398      ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING
6399  );
6400} {9   9   9   {}   {}   {}}
6401
6402do_execsql_test 7.3.9 {
6403  SELECT sum (a) OVER win FROM t2
6404  WINDOW win AS (
6405      ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6406  );
6407} {9   9   9   {}   {}   {}}
6408
6409do_execsql_test 7.4.1 {
6410  SELECT max (a) OVER win FROM t2
6411  WINDOW win AS (
6412      ORDER BY b NULLS LAST RANGE BETWEEN 6 FOLLOWING AND UNBOUNDED FOLLOWING
6413  );
6414} {4   4   4   4   4   4}
6415
6416do_execsql_test 7.4.2 {
6417  SELECT max (a) OVER win FROM t2
6418  WINDOW win AS (
6419      ORDER BY b NULLS LAST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6420  );
6421} {{}   {}   {}   4   4   4}
6422
6423do_execsql_test 7.4.3 {
6424  SELECT max (a) OVER win FROM t2
6425  WINDOW win AS (
6426      ORDER BY b NULLS LAST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6427  );
6428} {{}   {}   {}   4   4   4}
6429
6430do_execsql_test 7.4.4 {
6431  SELECT max (a) OVER win FROM t2
6432  WINDOW win AS (
6433      ORDER BY b NULLS FIRST RANGE BETWEEN 1 PRECEDING AND 2 PRECEDING
6434  );
6435} {4   4   4   {}   {}   {}}
6436
6437do_execsql_test 7.4.5 {
6438  SELECT max (a) OVER win FROM t2
6439  WINDOW win AS (
6440      ORDER BY b NULLS FIRST RANGE BETWEEN 2 FOLLOWING AND 1 FOLLOWING
6441  );
6442} {4   4   4   {}   {}   {}}
6443
6444do_execsql_test 7.4.6 {
6445  SELECT max (a) OVER win FROM t2
6446  WINDOW win AS (
6447      ORDER BY b NULLS LAST RANGE BETWEEN 1000 PRECEDING AND 2 PRECEDING
6448  );
6449} {{}   {}   1   4   4   4}
6450
6451do_execsql_test 7.4.7 {
6452  SELECT max (a) OVER win FROM t2
6453  WINDOW win AS (
6454      ORDER BY b NULLS LAST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6455  );
6456} {{}   {}   {}   4   4   4}
6457
6458do_execsql_test 7.4.8 {
6459  SELECT max (a) OVER win FROM t2
6460  WINDOW win AS (
6461      ORDER BY b NULLS FIRST RANGE BETWEEN 1000 PRECEDING AND 2000 PRECEDING
6462  );
6463} {4   4   4   {}   {}   {}}
6464
6465do_execsql_test 7.4.9 {
6466  SELECT max (a) OVER win FROM t2
6467  WINDOW win AS (
6468      ORDER BY b NULLS FIRST RANGE BETWEEN 2000 FOLLOWING AND 1000 FOLLOWING
6469  );
6470} {4   4   4   {}   {}   {}}
6471
6472finish_test
6473