1b6e9f7a4Sdan# 2018 May 19 2b6e9f7a4Sdan# 3b6e9f7a4Sdan# The author disclaims copyright to this source code. In place of 4b6e9f7a4Sdan# a legal notice, here is a blessing: 5b6e9f7a4Sdan# 6b6e9f7a4Sdan# May you do good and not evil. 7b6e9f7a4Sdan# May you find forgiveness for yourself and forgive others. 8b6e9f7a4Sdan# May you share freely, never taking more than you give. 9b6e9f7a4Sdan# 10b6e9f7a4Sdan#*********************************************************************** 11b6e9f7a4Sdan# This file implements regression tests for SQLite library. 12b6e9f7a4Sdan# 13b6e9f7a4Sdan 14b6e9f7a4Sdan#################################################### 15b6e9f7a4Sdan# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED! 16b6e9f7a4Sdan#################################################### 17b6e9f7a4Sdan 18b6e9f7a4Sdanset testdir [file dirname $argv0] 19b6e9f7a4Sdansource $testdir/tester.tcl 20b6e9f7a4Sdanset testprefix window2 21b6e9f7a4Sdan 2267a9b8edSdanifcapable !windowfunc { finish_test ; return } 23b6e9f7a4Sdando_execsql_test 1.0 { 24b6e9f7a4Sdan DROP TABLE IF EXISTS t1; 25b6e9f7a4Sdan CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER); 26b6e9f7a4Sdan INSERT INTO t1 VALUES(1, 'odd', 'one', 1); 27b6e9f7a4Sdan INSERT INTO t1 VALUES(2, 'even', 'two', 2); 28b6e9f7a4Sdan INSERT INTO t1 VALUES(3, 'odd', 'three', 3); 29b6e9f7a4Sdan INSERT INTO t1 VALUES(4, 'even', 'four', 4); 30b6e9f7a4Sdan INSERT INTO t1 VALUES(5, 'odd', 'five', 5); 31b6e9f7a4Sdan INSERT INTO t1 VALUES(6, 'even', 'six', 6); 32b6e9f7a4Sdan} {} 33b6e9f7a4Sdan 34b6e9f7a4Sdando_execsql_test 1.1 { 35b6e9f7a4Sdan SELECT c, sum(d) OVER (PARTITION BY b ORDER BY c) FROM t1; 36b6e9f7a4Sdan} {four 4 six 10 two 12 five 5 one 6 three 9} 37b6e9f7a4Sdan 38b6e9f7a4Sdando_execsql_test 1.2 { 39b6e9f7a4Sdan SELECT sum(d) OVER () FROM t1; 40b6e9f7a4Sdan} {21 21 21 21 21 21} 41b6e9f7a4Sdan 42b6e9f7a4Sdando_execsql_test 1.3 { 43b6e9f7a4Sdan SELECT sum(d) OVER (PARTITION BY b) FROM t1; 44b6e9f7a4Sdan} {12 12 12 9 9 9} 45f9eae18bSdan 46c3a20c19Sdan#========================================================================== 47c3a20c19Sdan 48c3a20c19Sdando_execsql_test 2.1 { 49c3a20c19Sdan SELECT a, sum(d) OVER ( 50c3a20c19Sdan ORDER BY d 51c3a20c19Sdan ROWS BETWEEN 1000 PRECEDING AND 1 FOLLOWING 52c3a20c19Sdan ) FROM t1 53c3a20c19Sdan} {1 3 2 6 3 10 4 15 5 21 6 21} 54c3a20c19Sdan 55c3a20c19Sdando_execsql_test 2.2 { 56c3a20c19Sdan SELECT a, sum(d) OVER ( 57c3a20c19Sdan ORDER BY d 58c3a20c19Sdan ROWS BETWEEN 1000 PRECEDING AND 1000 FOLLOWING 59c3a20c19Sdan ) FROM t1 60c3a20c19Sdan} {1 21 2 21 3 21 4 21 5 21 6 21} 61c3a20c19Sdan 62c3a20c19Sdando_execsql_test 2.3 { 63c3a20c19Sdan SELECT a, sum(d) OVER ( 64c3a20c19Sdan ORDER BY d 65c3a20c19Sdan ROWS BETWEEN 1 PRECEDING AND 1000 FOLLOWING 66c3a20c19Sdan ) FROM t1 67c3a20c19Sdan} {1 21 2 21 3 20 4 18 5 15 6 11} 68c3a20c19Sdan 69c3a20c19Sdando_execsql_test 2.4 { 70c3a20c19Sdan SELECT a, sum(d) OVER ( 71c3a20c19Sdan ORDER BY d 72c3a20c19Sdan ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING 73c3a20c19Sdan ) FROM t1 74c3a20c19Sdan} {1 3 2 6 3 9 4 12 5 15 6 11} 75c3a20c19Sdan 76c3a20c19Sdando_execsql_test 2.5 { 77c3a20c19Sdan SELECT a, sum(d) OVER ( 78c3a20c19Sdan ORDER BY d 79c3a20c19Sdan ROWS BETWEEN 1 PRECEDING AND 0 FOLLOWING 80c3a20c19Sdan ) FROM t1 81c3a20c19Sdan} {1 1 2 3 3 5 4 7 5 9 6 11} 82c3a20c19Sdan 83c3a20c19Sdando_execsql_test 2.6 { 84c3a20c19Sdan SELECT a, sum(d) OVER ( 85c3a20c19Sdan PARTITION BY b 86c3a20c19Sdan ORDER BY d 87c3a20c19Sdan ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING 88c3a20c19Sdan ) FROM t1 89c3a20c19Sdan} {2 6 4 12 6 10 1 4 3 9 5 8} 90c3a20c19Sdan 91c3a20c19Sdando_execsql_test 2.7 { 92c3a20c19Sdan SELECT a, sum(d) OVER ( 93c3a20c19Sdan PARTITION BY b 94c3a20c19Sdan ORDER BY d 95c3a20c19Sdan ROWS BETWEEN 0 PRECEDING AND 0 FOLLOWING 96c3a20c19Sdan ) FROM t1 97c3a20c19Sdan} {2 2 4 4 6 6 1 1 3 3 5 5} 98c3a20c19Sdan 9999652ddaSdando_execsql_test 2.8 { 10099652ddaSdan SELECT a, sum(d) OVER ( 10199652ddaSdan ORDER BY d 10299652ddaSdan ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING 10399652ddaSdan ) FROM t1 10499652ddaSdan} {1 6 2 9 3 12 4 15 5 11 6 6} 10599652ddaSdan 10699652ddaSdando_execsql_test 2.9 { 10799652ddaSdan SELECT a, sum(d) OVER ( 10899652ddaSdan ORDER BY d 10999652ddaSdan ROWS BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING 11099652ddaSdan ) FROM t1 11199652ddaSdan} {1 6 2 10 3 15 4 21 5 21 6 21} 11299652ddaSdan 11399652ddaSdando_execsql_test 2.10 { 11499652ddaSdan SELECT a, sum(d) OVER ( 11599652ddaSdan ORDER BY d 11699652ddaSdan ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING 11799652ddaSdan ) FROM t1 11899652ddaSdan} {1 6 2 9 3 12 4 15 5 11 6 6} 11999652ddaSdan 12099652ddaSdando_execsql_test 2.11 { 12199652ddaSdan SELECT a, sum(d) OVER ( 12299652ddaSdan ORDER BY d 12399652ddaSdan ROWS BETWEEN 2 PRECEDING AND CURRENT ROW 12499652ddaSdan ) FROM t1 12599652ddaSdan} {1 1 2 3 3 6 4 9 5 12 6 15} 12699652ddaSdan 12799652ddaSdando_execsql_test 2.13 { 12899652ddaSdan SELECT a, sum(d) OVER ( 12999652ddaSdan ORDER BY d 13099652ddaSdan ROWS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING 13199652ddaSdan ) FROM t1 13299652ddaSdan} {1 21 2 21 3 21 4 20 5 18 6 15} 13399652ddaSdan 13431f5639fSdando_execsql_test 2.14 { 13531f5639fSdan SELECT a, sum(d) OVER ( 13631f5639fSdan ORDER BY d 13731f5639fSdan ROWS BETWEEN 3 PRECEDING AND 1 PRECEDING 13831f5639fSdan ) FROM t1 13931f5639fSdan} {1 {} 2 1 3 3 4 6 5 9 6 12} 14031f5639fSdan 14131f5639fSdando_execsql_test 2.15 { 14231f5639fSdan SELECT a, sum(d) OVER ( 14331f5639fSdan PARTITION BY b 14431f5639fSdan ORDER BY d 14531f5639fSdan ROWS BETWEEN 1 PRECEDING AND 0 PRECEDING 14631f5639fSdan ) FROM t1 14731f5639fSdan} {2 2 4 6 6 10 1 1 3 4 5 8} 14831f5639fSdan 14931f5639fSdando_execsql_test 2.16 { 15031f5639fSdan SELECT a, sum(d) OVER ( 15131f5639fSdan PARTITION BY b 15231f5639fSdan ORDER BY d 15331f5639fSdan ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING 15431f5639fSdan ) FROM t1 15531f5639fSdan} {2 {} 4 2 6 4 1 {} 3 1 5 3} 15631f5639fSdan 15731f5639fSdando_execsql_test 2.17 { 15831f5639fSdan SELECT a, sum(d) OVER ( 15931f5639fSdan PARTITION BY b 16031f5639fSdan ORDER BY d 16131f5639fSdan ROWS BETWEEN 1 PRECEDING AND 2 PRECEDING 16231f5639fSdan ) FROM t1 16331f5639fSdan} {2 {} 4 {} 6 {} 1 {} 3 {} 5 {}} 16431f5639fSdan 16531f5639fSdando_execsql_test 2.18 { 16631f5639fSdan SELECT a, sum(d) OVER ( 16731f5639fSdan PARTITION BY b 16831f5639fSdan ORDER BY d 16931f5639fSdan ROWS BETWEEN UNBOUNDED PRECEDING AND 2 PRECEDING 17031f5639fSdan ) FROM t1 17131f5639fSdan} {2 {} 4 {} 6 2 1 {} 3 {} 5 1} 17231f5639fSdan 173e105dd76Sdando_execsql_test 2.19 { 174e105dd76Sdan SELECT a, sum(d) OVER ( 175e105dd76Sdan PARTITION BY b 176e105dd76Sdan ORDER BY d 177e105dd76Sdan ROWS BETWEEN 1 FOLLOWING AND 3 FOLLOWING 178e105dd76Sdan ) FROM t1 179e105dd76Sdan} {2 10 4 6 6 {} 1 8 3 5 5 {}} 180e105dd76Sdan 181e105dd76Sdando_execsql_test 2.20 { 182e105dd76Sdan SELECT a, sum(d) OVER ( 183e105dd76Sdan ORDER BY d 184e105dd76Sdan ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING 185e105dd76Sdan ) FROM t1 186e105dd76Sdan} {1 5 2 7 3 9 4 11 5 6 6 {}} 187e105dd76Sdan 188e105dd76Sdando_execsql_test 2.21 { 189e105dd76Sdan SELECT a, sum(d) OVER ( 190e105dd76Sdan ORDER BY d 191e105dd76Sdan ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING 192e105dd76Sdan ) FROM t1 193e105dd76Sdan} {1 20 2 18 3 15 4 11 5 6 6 {}} 194e105dd76Sdan 195e105dd76Sdando_execsql_test 2.22 { 196e105dd76Sdan SELECT a, sum(d) OVER ( 197e105dd76Sdan PARTITION BY b 198e105dd76Sdan ORDER BY d 199e105dd76Sdan ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING 200e105dd76Sdan ) FROM t1 201e105dd76Sdan} {2 10 4 6 6 {} 1 8 3 5 5 {}} 202e105dd76Sdan 20309590aaaSdando_execsql_test 2.23 { 20409590aaaSdan SELECT a, sum(d) OVER ( 20509590aaaSdan ORDER BY d 20609590aaaSdan ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 20709590aaaSdan ) FROM t1 20809590aaaSdan} {1 21 2 20 3 18 4 15 5 11 6 6} 20909590aaaSdan 21009590aaaSdando_execsql_test 2.24 { 21109590aaaSdan SELECT a, sum(d) OVER ( 21209590aaaSdan PARTITION BY a%2 21309590aaaSdan ORDER BY d 21409590aaaSdan ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 21509590aaaSdan ) FROM t1 21609590aaaSdan} {2 12 4 10 6 6 1 9 3 8 5 5} 21709590aaaSdan 21809590aaaSdando_execsql_test 2.25 { 21909590aaaSdan SELECT a, sum(d) OVER ( 22009590aaaSdan ORDER BY d 22109590aaaSdan ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 22209590aaaSdan ) FROM t1 22309590aaaSdan} {1 21 2 21 3 21 4 21 5 21 6 21} 22409590aaaSdan 22509590aaaSdando_execsql_test 2.26 { 22609590aaaSdan SELECT a, sum(d) OVER ( 22709590aaaSdan PARTITION BY b 22809590aaaSdan ORDER BY d 22909590aaaSdan ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 23009590aaaSdan ) FROM t1 23109590aaaSdan} {2 12 4 12 6 12 1 9 3 9 5 9} 23209590aaaSdan 23309590aaaSdando_execsql_test 2.27 { 23409590aaaSdan SELECT a, sum(d) OVER ( 23509590aaaSdan ORDER BY d 23609590aaaSdan ROWS BETWEEN CURRENT ROW AND CURRENT ROW 23709590aaaSdan ) FROM t1 23809590aaaSdan} {1 1 2 2 3 3 4 4 5 5 6 6} 23909590aaaSdan 24009590aaaSdando_execsql_test 2.28 { 24109590aaaSdan SELECT a, sum(d) OVER ( 24209590aaaSdan PARTITION BY b 24309590aaaSdan ORDER BY d 24409590aaaSdan ROWS BETWEEN CURRENT ROW AND CURRENT ROW 24509590aaaSdan ) FROM t1 24609590aaaSdan} {2 2 4 4 6 6 1 1 3 3 5 5} 24709590aaaSdan 24809590aaaSdando_execsql_test 2.29 { 24909590aaaSdan SELECT a, sum(d) OVER ( 25009590aaaSdan ORDER BY d 25109590aaaSdan RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 25209590aaaSdan ) FROM t1 25309590aaaSdan} {1 21 2 20 3 18 4 15 5 11 6 6} 25409590aaaSdan 25509590aaaSdando_execsql_test 2.30 { 25609590aaaSdan SELECT a, sum(d) OVER ( 25709590aaaSdan ORDER BY b 25809590aaaSdan RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 25909590aaaSdan ) FROM t1 26009590aaaSdan} {2 21 4 21 6 21 1 9 3 9 5 9} 26109590aaaSdan 26279d4544dSdando_execsql_test 3.1 { 26379d4544dSdan SELECT a, sum(d) OVER ( 26479d4544dSdan PARTITION BY b ORDER BY d 26579d4544dSdan RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 26679d4544dSdan ) FROM t1 26779d4544dSdan} {2 12 4 10 6 6 1 9 3 8 5 5} 26879d4544dSdan 26979d4544dSdando_execsql_test 3.2 { 27079d4544dSdan SELECT a, sum(d) OVER ( 27179d4544dSdan ORDER BY b 27279d4544dSdan RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 27379d4544dSdan ) FROM t1 27479d4544dSdan} {2 21 4 21 6 21 1 9 3 9 5 9} 27579d4544dSdan 27679d4544dSdando_execsql_test 3.3 { 27779d4544dSdan SELECT a, sum(d) OVER ( 27879d4544dSdan ORDER BY d 27979d4544dSdan ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 28079d4544dSdan ) FROM t1 28179d4544dSdan} {1 21 2 21 3 21 4 21 5 21 6 21} 28279d4544dSdan 28379d4544dSdando_execsql_test 3.4 { 28479d4544dSdan SELECT a, sum(d) OVER ( 28579d4544dSdan ORDER BY d/2 28679d4544dSdan ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 28779d4544dSdan ) FROM t1 28879d4544dSdan} {1 1 2 3 3 6 4 10 5 15 6 21} 28979d4544dSdan 29099652ddaSdan#========================================================================== 29199652ddaSdan 29279d4544dSdando_execsql_test 4.0 { 29379d4544dSdan DROP TABLE IF EXISTS t2; 29479d4544dSdan CREATE TABLE t2(a INTEGER PRIMARY KEY, b INTEGER); 29579d4544dSdan INSERT INTO t2(a, b) VALUES 29679d4544dSdan (1,0), (2,74), (3,41), (4,74), (5,23), (6,99), (7,26), (8,33), (9,2), 29779d4544dSdan (10,89), (11,81), (12,96), (13,59), (14,38), (15,68), (16,39), (17,62), 29879d4544dSdan (18,91), (19,46), (20,6), (21,99), (22,97), (23,27), (24,46), (25,78), 29979d4544dSdan (26,54), (27,97), (28,8), (29,67), (30,29), (31,93), (32,84), (33,77), 30079d4544dSdan (34,23), (35,16), (36,16), (37,93), (38,65), (39,35), (40,47), (41,7), 30179d4544dSdan (42,86), (43,74), (44,61), (45,91), (46,85), (47,24), (48,85), (49,43), 30279d4544dSdan (50,59), (51,12), (52,32), (53,56), (54,3), (55,91), (56,22), (57,90), 30379d4544dSdan (58,55), (59,15), (60,28), (61,89), (62,25), (63,47), (64,1), (65,56), 30479d4544dSdan (66,40), (67,43), (68,56), (69,16), (70,75), (71,36), (72,89), (73,98), 30579d4544dSdan (74,76), (75,81), (76,4), (77,94), (78,42), (79,30), (80,78), (81,33), 30679d4544dSdan (82,29), (83,53), (84,63), (85,2), (86,87), (87,37), (88,80), (89,84), 30779d4544dSdan (90,72), (91,41), (92,9), (93,61), (94,73), (95,95), (96,65), (97,13), 30879d4544dSdan (98,58), (99,96), (100,98), (101,1), (102,21), (103,74), (104,65), (105,35), 30979d4544dSdan (106,5), (107,73), (108,11), (109,51), (110,87), (111,41), (112,12), (113,8), 31079d4544dSdan (114,20), (115,31), (116,31), (117,15), (118,95), (119,22), (120,73), 31179d4544dSdan (121,79), (122,88), (123,34), (124,8), (125,11), (126,49), (127,34), 31279d4544dSdan (128,90), (129,59), (130,96), (131,60), (132,55), (133,75), (134,77), 31379d4544dSdan (135,44), (136,2), (137,7), (138,85), (139,57), (140,74), (141,29), (142,70), 31479d4544dSdan (143,59), (144,19), (145,39), (146,26), (147,26), (148,47), (149,80), 31579d4544dSdan (150,90), (151,36), (152,58), (153,47), (154,9), (155,72), (156,72), (157,66), 31679d4544dSdan (158,33), (159,93), (160,75), (161,64), (162,81), (163,9), (164,23), (165,37), 31779d4544dSdan (166,13), (167,12), (168,14), (169,62), (170,91), (171,36), (172,91), 31879d4544dSdan (173,33), (174,15), (175,34), (176,36), (177,99), (178,3), (179,95), (180,69), 31979d4544dSdan (181,58), (182,52), (183,30), (184,50), (185,84), (186,10), (187,84), 32079d4544dSdan (188,33), (189,21), (190,39), (191,44), (192,58), (193,30), (194,38), 32179d4544dSdan (195,34), (196,83), (197,27), (198,82), (199,17), (200,7); 32279d4544dSdan} {} 32379d4544dSdan 32479d4544dSdando_execsql_test 4.1 { 32579d4544dSdan SELECT a, sum(b) OVER ( 32679d4544dSdan PARTITION BY (b%10) 32779d4544dSdan ORDER BY b 32879d4544dSdan ) FROM t2 ORDER BY a; 32908f6de7fSdan} {1 0 2 754 3 251 4 754 5 101 6 1247 7 132 8 266 9 6 10 950 33008f6de7fSdan 11 667 12 1052 13 535 14 128 15 428 16 250 17 336 18 1122 33108f6de7fSdan 19 368 20 6 21 1247 22 1000 23 92 24 368 25 584 26 320 33208f6de7fSdan 27 1000 28 24 29 478 30 133 31 1049 32 1090 33 632 34 101 33308f6de7fSdan 35 54 36 54 37 1049 38 450 39 145 40 354 41 21 42 764 33408f6de7fSdan 43 754 44 424 45 1122 46 930 47 42 48 930 49 352 50 535 33508f6de7fSdan 51 42 52 118 53 536 54 6 55 1122 56 86 57 770 58 255 59 50 33608f6de7fSdan 60 52 61 950 62 75 63 354 64 2 65 536 66 160 67 352 68 536 33708f6de7fSdan 69 54 70 675 71 276 72 950 73 868 74 678 75 667 76 4 33808f6de7fSdan 77 1184 78 160 79 120 80 584 81 266 82 133 83 405 84 468 33908f6de7fSdan 85 6 86 806 87 166 88 500 89 1090 90 552 91 251 92 27 34008f6de7fSdan 93 424 94 687 95 1215 96 450 97 32 98 360 99 1052 100 868 34108f6de7fSdan 101 2 102 66 103 754 104 450 105 145 106 5 107 687 108 24 34208f6de7fSdan 109 302 110 806 111 251 112 42 113 24 114 30 115 128 116 128 34308f6de7fSdan 117 50 118 1215 119 86 120 687 121 683 122 672 123 178 124 24 34408f6de7fSdan 125 24 126 299 127 178 128 770 129 535 130 1052 131 270 34508f6de7fSdan 132 255 133 675 134 632 135 266 136 6 137 21 138 930 139 411 34608f6de7fSdan 140 754 141 133 142 340 143 535 144 46 145 250 146 132 34708f6de7fSdan 147 132 148 354 149 500 150 770 151 276 152 360 153 354 34808f6de7fSdan 154 27 155 552 156 552 157 602 158 266 159 1049 160 675 34908f6de7fSdan 161 384 162 667 163 27 164 101 165 166 166 32 167 42 168 18 35008f6de7fSdan 169 336 170 1122 171 276 172 1122 173 266 174 50 175 178 35108f6de7fSdan 176 276 177 1247 178 6 179 1215 180 604 181 360 182 212 35208f6de7fSdan 183 120 184 210 185 1090 186 10 187 1090 188 266 189 66 35308f6de7fSdan 190 250 191 266 192 360 193 120 194 128 195 178 196 770 35408f6de7fSdan 197 92 198 634 199 38 200 21} 35579d4544dSdan 35679d4544dSdando_execsql_test 4.2 { 35779d4544dSdan SELECT a, sum(b) OVER ( 35879d4544dSdan PARTITION BY (b%10) 35979d4544dSdan ORDER BY b 36079d4544dSdan RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 36179d4544dSdan ) FROM t2 ORDER BY a; 36208f6de7fSdan} {1 0 2 754 3 251 4 754 5 101 6 1247 7 132 8 266 9 6 10 950 36308f6de7fSdan 11 667 12 1052 13 535 14 128 15 428 16 250 17 336 18 1122 36408f6de7fSdan 19 368 20 6 21 1247 22 1000 23 92 24 368 25 584 26 320 36508f6de7fSdan 27 1000 28 24 29 478 30 133 31 1049 32 1090 33 632 34 101 36608f6de7fSdan 35 54 36 54 37 1049 38 450 39 145 40 354 41 21 42 764 36708f6de7fSdan 43 754 44 424 45 1122 46 930 47 42 48 930 49 352 50 535 36808f6de7fSdan 51 42 52 118 53 536 54 6 55 1122 56 86 57 770 58 255 59 50 36908f6de7fSdan 60 52 61 950 62 75 63 354 64 2 65 536 66 160 67 352 68 536 37008f6de7fSdan 69 54 70 675 71 276 72 950 73 868 74 678 75 667 76 4 37108f6de7fSdan 77 1184 78 160 79 120 80 584 81 266 82 133 83 405 84 468 37208f6de7fSdan 85 6 86 806 87 166 88 500 89 1090 90 552 91 251 92 27 37308f6de7fSdan 93 424 94 687 95 1215 96 450 97 32 98 360 99 1052 100 868 37408f6de7fSdan 101 2 102 66 103 754 104 450 105 145 106 5 107 687 108 24 37508f6de7fSdan 109 302 110 806 111 251 112 42 113 24 114 30 115 128 116 128 37608f6de7fSdan 117 50 118 1215 119 86 120 687 121 683 122 672 123 178 124 24 37708f6de7fSdan 125 24 126 299 127 178 128 770 129 535 130 1052 131 270 37808f6de7fSdan 132 255 133 675 134 632 135 266 136 6 137 21 138 930 139 411 37908f6de7fSdan 140 754 141 133 142 340 143 535 144 46 145 250 146 132 38008f6de7fSdan 147 132 148 354 149 500 150 770 151 276 152 360 153 354 38108f6de7fSdan 154 27 155 552 156 552 157 602 158 266 159 1049 160 675 38208f6de7fSdan 161 384 162 667 163 27 164 101 165 166 166 32 167 42 168 18 38308f6de7fSdan 169 336 170 1122 171 276 172 1122 173 266 174 50 175 178 38408f6de7fSdan 176 276 177 1247 178 6 179 1215 180 604 181 360 182 212 38508f6de7fSdan 183 120 184 210 185 1090 186 10 187 1090 188 266 189 66 38608f6de7fSdan 190 250 191 266 192 360 193 120 194 128 195 178 196 770 38708f6de7fSdan 197 92 198 634 199 38 200 21} 38879d4544dSdan 38979d4544dSdando_execsql_test 4.3 { 39079d4544dSdan SELECT b, sum(b) OVER ( 39179d4544dSdan ORDER BY b 39279d4544dSdan ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 39379d4544dSdan ) FROM t2 ORDER BY b; 39408f6de7fSdan} {0 0 1 1 1 2 2 4 2 6 2 8 3 11 3 14 4 18 5 23 6 29 7 36 39508f6de7fSdan 7 43 7 50 8 58 8 66 8 74 9 83 9 92 9 101 10 111 11 122 39608f6de7fSdan 11 133 12 145 12 157 12 169 13 182 13 195 14 209 15 224 39708f6de7fSdan 15 239 15 254 16 270 16 286 16 302 17 319 19 338 20 358 39808f6de7fSdan 21 379 21 400 22 422 22 444 23 467 23 490 23 513 24 537 39908f6de7fSdan 25 562 26 588 26 614 26 640 27 667 27 694 28 722 29 751 40008f6de7fSdan 29 780 29 809 30 839 30 869 30 899 31 930 31 961 32 993 40108f6de7fSdan 33 1026 33 1059 33 1092 33 1125 33 1158 34 1192 34 1226 40208f6de7fSdan 34 1260 34 1294 35 1329 35 1364 36 1400 36 1436 36 1472 40308f6de7fSdan 36 1508 37 1545 37 1582 38 1620 38 1658 39 1697 39 1736 40408f6de7fSdan 39 1775 40 1815 41 1856 41 1897 41 1938 42 1980 43 2023 40508f6de7fSdan 43 2066 44 2110 44 2154 46 2200 46 2246 47 2293 47 2340 40608f6de7fSdan 47 2387 47 2434 49 2483 50 2533 51 2584 52 2636 53 2689 40708f6de7fSdan 54 2743 55 2798 55 2853 56 2909 56 2965 56 3021 57 3078 40808f6de7fSdan 58 3136 58 3194 58 3252 58 3310 59 3369 59 3428 59 3487 40908f6de7fSdan 59 3546 60 3606 61 3667 61 3728 62 3790 62 3852 63 3915 41008f6de7fSdan 64 3979 65 4044 65 4109 65 4174 66 4240 67 4307 68 4375 41108f6de7fSdan 69 4444 70 4514 72 4586 72 4658 72 4730 73 4803 73 4876 41208f6de7fSdan 73 4949 74 5023 74 5097 74 5171 74 5245 74 5319 75 5394 41308f6de7fSdan 75 5469 75 5544 76 5620 77 5697 77 5774 78 5852 78 5930 41408f6de7fSdan 79 6009 80 6089 80 6169 81 6250 81 6331 81 6412 82 6494 41508f6de7fSdan 83 6577 84 6661 84 6745 84 6829 84 6913 85 6998 85 7083 41608f6de7fSdan 85 7168 86 7254 87 7341 87 7428 88 7516 89 7605 89 7694 41708f6de7fSdan 89 7783 90 7873 90 7963 90 8053 91 8144 91 8235 91 8326 41808f6de7fSdan 91 8417 91 8508 93 8601 93 8694 93 8787 94 8881 95 8976 41908f6de7fSdan 95 9071 95 9166 96 9262 96 9358 96 9454 97 9551 97 9648 42008f6de7fSdan 98 9746 98 9844 99 9943 99 10042 99 10141} 42179d4544dSdan 42279d4544dSdando_execsql_test 4.4 { 42379d4544dSdan SELECT b, sum(b) OVER ( 42479d4544dSdan ORDER BY b 425d6f784efSdan RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 42679d4544dSdan ) FROM t2 ORDER BY b; 42708f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 42808f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 42908f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 43008f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 43108f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 43208f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 43308f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 43408f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 43508f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 43608f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 43708f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 43808f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 43908f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 44008f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 44108f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 44208f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 44308f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 44408f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 44508f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 44608f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 44708f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 44808f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 44908f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 45008f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 45108f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 45208f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 45308f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 45408f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 45508f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 456d6f784efSdan 457d6f784efSdando_execsql_test 4.5 { 458d6f784efSdan SELECT b, sum(b) OVER ( 459d6f784efSdan ORDER BY b 460d6f784efSdan RANGE BETWEEN CURRENT ROW AND CURRENT ROW 461d6f784efSdan ) FROM t2 ORDER BY b; 46208f6de7fSdan} {0 0 1 2 1 2 2 6 2 6 2 6 3 6 3 6 4 4 5 5 6 6 7 21 46308f6de7fSdan 7 21 7 21 8 24 8 24 8 24 9 27 9 27 9 27 10 10 11 22 46408f6de7fSdan 11 22 12 36 12 36 12 36 13 26 13 26 14 14 15 45 15 45 46508f6de7fSdan 15 45 16 48 16 48 16 48 17 17 19 19 20 20 21 42 21 42 46608f6de7fSdan 22 44 22 44 23 69 23 69 23 69 24 24 25 25 26 78 26 78 46708f6de7fSdan 26 78 27 54 27 54 28 28 29 87 29 87 29 87 30 90 30 90 46808f6de7fSdan 30 90 31 62 31 62 32 32 33 165 33 165 33 165 33 165 33 165 46908f6de7fSdan 34 136 34 136 34 136 34 136 35 70 35 70 36 144 36 144 47008f6de7fSdan 36 144 36 144 37 74 37 74 38 76 38 76 39 117 39 117 39 117 47108f6de7fSdan 40 40 41 123 41 123 41 123 42 42 43 86 43 86 44 88 44 88 47208f6de7fSdan 46 92 46 92 47 188 47 188 47 188 47 188 49 49 50 50 51 51 47308f6de7fSdan 52 52 53 53 54 54 55 110 55 110 56 168 56 168 56 168 57 57 47408f6de7fSdan 58 232 58 232 58 232 58 232 59 236 59 236 59 236 59 236 47508f6de7fSdan 60 60 61 122 61 122 62 124 62 124 63 63 64 64 65 195 65 195 47608f6de7fSdan 65 195 66 66 67 67 68 68 69 69 70 70 72 216 72 216 72 216 47708f6de7fSdan 73 219 73 219 73 219 74 370 74 370 74 370 74 370 74 370 47808f6de7fSdan 75 225 75 225 75 225 76 76 77 154 77 154 78 156 78 156 47908f6de7fSdan 79 79 80 160 80 160 81 243 81 243 81 243 82 82 83 83 84 336 48008f6de7fSdan 84 336 84 336 84 336 85 255 85 255 85 255 86 86 87 174 48108f6de7fSdan 87 174 88 88 89 267 89 267 89 267 90 270 90 270 90 270 48208f6de7fSdan 91 455 91 455 91 455 91 455 91 455 93 279 93 279 93 279 48308f6de7fSdan 94 94 95 285 95 285 95 285 96 288 96 288 96 288 97 194 48408f6de7fSdan 97 194 98 196 98 196 99 297 99 297 99 297} 485d6f784efSdan 486d6f784efSdando_execsql_test 4.6.1 { 487d6f784efSdan SELECT b, sum(b) OVER ( 488d6f784efSdan RANGE BETWEEN CURRENT ROW AND CURRENT ROW 489d6f784efSdan ) FROM t2 ORDER BY b; 49008f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 49108f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 49208f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 49308f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 49408f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 49508f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 49608f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 49708f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 49808f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 49908f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 50008f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 50108f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 50208f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 50308f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 50408f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 50508f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 50608f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 50708f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 50808f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 50908f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 51008f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 51108f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 51208f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 51308f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 51408f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 51508f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 51608f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 51708f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 51808f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 519d6f784efSdan 520d6f784efSdando_execsql_test 4.6.2 { 521d6f784efSdan SELECT b, sum(b) OVER () FROM t2 ORDER BY b; 52208f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 52308f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 52408f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 52508f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 52608f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 52708f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 52808f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 52908f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 53008f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 53108f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 53208f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 53308f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 53408f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 53508f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 53608f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 53708f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 53808f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 53908f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 54008f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 54108f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 54208f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 54308f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 54408f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 54508f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 54608f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 54708f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 54808f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 54908f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 55008f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 551d6f784efSdan 552d6f784efSdando_execsql_test 4.6.3 { 553d6f784efSdan SELECT b, sum(b) OVER ( 554d6f784efSdan RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 555d6f784efSdan ) FROM t2 ORDER BY b; 55608f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 55708f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 55808f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 55908f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 56008f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 56108f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 56208f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 56308f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 56408f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 56508f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 56608f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 56708f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 56808f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 56908f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 57008f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 57108f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 57208f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 57308f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 57408f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 57508f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 57608f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 57708f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 57808f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 57908f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 58008f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 58108f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 58208f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 58308f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 58408f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 585d6f784efSdan 586d6f784efSdando_execsql_test 4.6.4 { 587d6f784efSdan SELECT b, sum(b) OVER ( 588d6f784efSdan RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 589d6f784efSdan ) FROM t2 ORDER BY b; 59008f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 59108f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 59208f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 59308f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 59408f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 59508f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 59608f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 59708f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 59808f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 59908f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 60008f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 60108f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 60208f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 60308f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 60408f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 60508f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 60608f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 60708f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 60808f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 60908f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 61008f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 61108f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 61208f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 61308f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 61408f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 61508f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 61608f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 61708f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 61808f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 619d6f784efSdan 620d6f784efSdando_execsql_test 4.7.1 { 621d6f784efSdan SELECT b, sum(b) OVER ( 622d6f784efSdan ROWS BETWEEN CURRENT ROW AND CURRENT ROW 623d6f784efSdan ) FROM t2 ORDER BY 1, 2; 62408f6de7fSdan} {0 0 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 5 5 6 6 7 7 7 7 62508f6de7fSdan 7 7 8 8 8 8 8 8 9 9 9 9 9 9 10 10 11 11 11 11 12 12 62608f6de7fSdan 12 12 12 12 13 13 13 13 14 14 15 15 15 15 15 15 16 16 62708f6de7fSdan 16 16 16 16 17 17 19 19 20 20 21 21 21 21 22 22 22 22 62808f6de7fSdan 23 23 23 23 23 23 24 24 25 25 26 26 26 26 26 26 27 27 62908f6de7fSdan 27 27 28 28 29 29 29 29 29 29 30 30 30 30 30 30 31 31 63008f6de7fSdan 31 31 32 32 33 33 33 33 33 33 33 33 33 33 34 34 34 34 63108f6de7fSdan 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 63208f6de7fSdan 37 37 38 38 38 38 39 39 39 39 39 39 40 40 41 41 41 41 63308f6de7fSdan 41 41 42 42 43 43 43 43 44 44 44 44 46 46 46 46 47 47 63408f6de7fSdan 47 47 47 47 47 47 49 49 50 50 51 51 52 52 53 53 54 54 63508f6de7fSdan 55 55 55 55 56 56 56 56 56 56 57 57 58 58 58 58 58 58 63608f6de7fSdan 58 58 59 59 59 59 59 59 59 59 60 60 61 61 61 61 62 62 63708f6de7fSdan 62 62 63 63 64 64 65 65 65 65 65 65 66 66 67 67 68 68 63808f6de7fSdan 69 69 70 70 72 72 72 72 72 72 73 73 73 73 73 73 74 74 63908f6de7fSdan 74 74 74 74 74 74 74 74 75 75 75 75 75 75 76 76 77 77 64008f6de7fSdan 77 77 78 78 78 78 79 79 80 80 80 80 81 81 81 81 81 81 64108f6de7fSdan 82 82 83 83 84 84 84 84 84 84 84 84 85 85 85 85 85 85 64208f6de7fSdan 86 86 87 87 87 87 88 88 89 89 89 89 89 89 90 90 90 90 64308f6de7fSdan 90 90 91 91 91 91 91 91 91 91 91 91 93 93 93 93 93 93 64408f6de7fSdan 94 94 95 95 95 95 95 95 96 96 96 96 96 96 97 97 97 97 64508f6de7fSdan 98 98 98 98 99 99 99 99 99 99} 646d6f784efSdan 647d6f784efSdando_execsql_test 4.7.2 { 648d6f784efSdan SELECT b, sum(b) OVER ( 649d6f784efSdan ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 650d6f784efSdan ) FROM t2 ORDER BY 1, 2; 65108f6de7fSdan} {0 0 1 3379 1 5443 2 372 2 4473 2 7074 3 2916 3 9096 4 4049 65208f6de7fSdan 5 5643 6 1047 7 2205 7 7081 7 10141 8 1553 8 5926 8 6422 65308f6de7fSdan 9 4883 9 7932 9 8497 10 9544 11 5727 11 6433 12 2825 12 5918 65408f6de7fSdan 12 8582 13 5190 13 8570 14 8596 15 3189 15 6023 15 8924 65508f6de7fSdan 16 1942 16 1958 16 3590 17 10134 19 7474 20 5946 21 5464 65608f6de7fSdan 21 9682 22 3029 22 6140 23 212 23 1926 23 8520 24 2626 65708f6de7fSdan 25 3331 26 337 26 7539 26 7565 27 1270 27 10035 28 3217 65808f6de7fSdan 29 1649 29 4355 29 7326 30 4215 30 9400 30 9853 31 5977 65908f6de7fSdan 31 6008 32 2857 33 370 33 4326 33 8175 33 8909 33 9661 66008f6de7fSdan 34 6414 34 6516 34 8958 34 9925 35 2151 35 5638 36 3701 66108f6de7fSdan 36 7818 36 8785 36 8994 37 4597 37 8557 38 735 38 9891 39 842 66208f6de7fSdan 39 7513 39 9721 40 3475 41 115 41 4874 41 5906 42 4185 66308f6de7fSdan 43 2754 43 3518 44 7072 44 9765 46 1041 46 1316 47 2198 66408f6de7fSdan 47 3378 47 7612 47 7923 49 6482 50 9450 51 5778 52 9370 66508f6de7fSdan 53 4408 54 1448 55 3174 55 6876 56 2913 56 3435 56 3574 66608f6de7fSdan 57 7223 58 5248 58 7876 58 9318 58 9823 59 697 59 2813 66708f6de7fSdan 59 6665 59 7455 60 6821 61 2426 61 4944 62 904 62 8658 66808f6de7fSdan 63 4471 64 8407 65 2116 65 5177 65 5603 66 8142 67 1620 66908f6de7fSdan 68 803 69 9260 70 7396 72 4833 72 8004 72 8076 73 5017 67008f6de7fSdan 73 5716 73 6213 74 74 74 189 74 2365 74 5538 74 7297 75 3665 67108f6de7fSdan 75 6951 75 8343 76 3964 77 1903 77 7028 78 1394 78 4293 67208f6de7fSdan 79 6292 80 4677 80 7692 81 542 81 4045 81 8488 82 10117 67308f6de7fSdan 83 10008 84 1826 84 4761 84 9534 84 9628 85 2602 85 2711 67408f6de7fSdan 85 7166 86 2291 87 4560 87 5865 88 6380 89 461 89 3306 67508f6de7fSdan 89 3790 90 3119 90 6606 90 7782 91 995 91 2517 91 3007 67608f6de7fSdan 91 8749 91 8876 93 1742 93 2051 93 8268 94 4143 95 5112 67708f6de7fSdan 95 6118 95 9191 96 638 96 5344 96 6761 97 1243 97 1545 67808f6de7fSdan 98 3888 98 5442 99 311 99 1146 99 9093} 679d6f784efSdan 680d6f784efSdando_execsql_test 4.7.3 { 681d6f784efSdan SELECT b, sum(b) OVER ( 682d6f784efSdan ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 683d6f784efSdan ) FROM t2 ORDER BY 1, 2; 68408f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 68508f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 68608f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 68708f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 68808f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 68908f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 69008f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 69108f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 69208f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 69308f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 69408f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 69508f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 69608f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 69708f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 69808f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 69908f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 70008f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 70108f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 70208f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 70308f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 70408f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 70508f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 70608f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 70708f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 70808f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 70908f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 71008f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 71108f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 71208f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 713d6f784efSdan 714d6f784efSdando_execsql_test 4.7.4 { 715d6f784efSdan SELECT b, sum(b) OVER ( 716d6f784efSdan ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 717d6f784efSdan ) FROM t2 ORDER BY 1, 2; 71808f6de7fSdan} {0 10141 1 4699 1 6763 2 3069 2 5670 2 9771 3 1048 3 7228 71908f6de7fSdan 4 6096 5 4503 6 9100 7 7 7 3067 7 7943 8 3727 8 4223 8 8596 72008f6de7fSdan 9 1653 9 2218 9 5267 10 607 11 3719 11 4425 12 1571 12 4235 72108f6de7fSdan 12 7328 13 1584 13 4964 14 1559 15 1232 15 4133 15 6967 72208f6de7fSdan 16 6567 16 8199 16 8215 17 24 19 2686 20 4215 21 480 21 4698 72308f6de7fSdan 22 4023 22 7134 23 1644 23 8238 23 9952 24 7539 25 6835 72408f6de7fSdan 26 2602 26 2628 26 9830 27 133 27 8898 28 6952 29 2844 72508f6de7fSdan 29 5815 29 8521 30 318 30 771 30 5956 31 4164 31 4195 32 7316 72608f6de7fSdan 33 513 33 1265 33 1999 33 5848 33 9804 34 250 34 1217 34 3659 72708f6de7fSdan 34 3761 35 4538 35 8025 36 1183 36 1392 36 2359 36 6476 72808f6de7fSdan 37 1621 37 5581 38 288 38 9444 39 459 39 2667 39 9338 40 6706 72908f6de7fSdan 41 4276 41 5308 41 10067 42 5998 43 6666 43 7430 44 420 73008f6de7fSdan 44 3113 46 8871 46 9146 47 2265 47 2576 47 6810 47 7990 73108f6de7fSdan 49 3708 50 741 51 4414 52 823 53 5786 54 8747 55 3320 55 7022 73208f6de7fSdan 56 6623 56 6762 56 7284 57 2975 58 376 58 881 58 2323 58 4951 73308f6de7fSdan 59 2745 59 3535 59 7387 59 9503 60 3380 61 5258 61 7776 73408f6de7fSdan 62 1545 62 9299 63 5733 64 1798 65 4603 65 5029 65 8090 73508f6de7fSdan 66 2065 67 8588 68 9406 69 950 70 2815 72 2137 72 2209 73608f6de7fSdan 72 5380 73 4001 73 4498 73 5197 74 2918 74 4677 74 7850 73708f6de7fSdan 74 10026 74 10141 75 1873 75 3265 75 6551 76 6253 77 3190 73808f6de7fSdan 77 8315 78 5926 78 8825 79 3928 80 2529 80 5544 81 1734 73908f6de7fSdan 81 6177 81 9680 82 106 83 216 84 597 84 691 84 5464 84 8399 74008f6de7fSdan 85 3060 85 7515 85 7624 86 7936 87 4363 87 5668 88 3849 74108f6de7fSdan 89 6440 89 6924 89 9769 90 2449 90 3625 90 7112 91 1356 74208f6de7fSdan 91 1483 91 7225 91 7715 91 9237 93 1966 93 8183 93 8492 74308f6de7fSdan 94 6092 95 1045 95 4118 95 5124 96 3476 96 4893 96 9599 74408f6de7fSdan 97 8693 97 8995 98 4797 98 6351 99 1147 99 9094 99 9929} 745d6f784efSdan 746d6f784efSdando_execsql_test 4.8.1 { 747d6f784efSdan SELECT b, sum(b) OVER ( 748d6f784efSdan ORDER BY a 749d6f784efSdan ROWS BETWEEN CURRENT ROW AND CURRENT ROW 750d6f784efSdan ) FROM t2 ORDER BY 1, 2; 75108f6de7fSdan} {0 0 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 5 5 6 6 7 7 7 7 75208f6de7fSdan 7 7 8 8 8 8 8 8 9 9 9 9 9 9 10 10 11 11 11 11 12 12 75308f6de7fSdan 12 12 12 12 13 13 13 13 14 14 15 15 15 15 15 15 16 16 75408f6de7fSdan 16 16 16 16 17 17 19 19 20 20 21 21 21 21 22 22 22 22 75508f6de7fSdan 23 23 23 23 23 23 24 24 25 25 26 26 26 26 26 26 27 27 75608f6de7fSdan 27 27 28 28 29 29 29 29 29 29 30 30 30 30 30 30 31 31 75708f6de7fSdan 31 31 32 32 33 33 33 33 33 33 33 33 33 33 34 34 34 34 75808f6de7fSdan 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 75908f6de7fSdan 37 37 38 38 38 38 39 39 39 39 39 39 40 40 41 41 41 41 76008f6de7fSdan 41 41 42 42 43 43 43 43 44 44 44 44 46 46 46 46 47 47 76108f6de7fSdan 47 47 47 47 47 47 49 49 50 50 51 51 52 52 53 53 54 54 76208f6de7fSdan 55 55 55 55 56 56 56 56 56 56 57 57 58 58 58 58 58 58 76308f6de7fSdan 58 58 59 59 59 59 59 59 59 59 60 60 61 61 61 61 62 62 76408f6de7fSdan 62 62 63 63 64 64 65 65 65 65 65 65 66 66 67 67 68 68 76508f6de7fSdan 69 69 70 70 72 72 72 72 72 72 73 73 73 73 73 73 74 74 76608f6de7fSdan 74 74 74 74 74 74 74 74 75 75 75 75 75 75 76 76 77 77 76708f6de7fSdan 77 77 78 78 78 78 79 79 80 80 80 80 81 81 81 81 81 81 76808f6de7fSdan 82 82 83 83 84 84 84 84 84 84 84 84 85 85 85 85 85 85 76908f6de7fSdan 86 86 87 87 87 87 88 88 89 89 89 89 89 89 90 90 90 90 77008f6de7fSdan 90 90 91 91 91 91 91 91 91 91 91 91 93 93 93 93 93 93 77108f6de7fSdan 94 94 95 95 95 95 95 95 96 96 96 96 96 96 97 97 97 97 77208f6de7fSdan 98 98 98 98 99 99 99 99 99 99} 773d6f784efSdan 774d6f784efSdando_execsql_test 4.8.2 { 775d6f784efSdan SELECT b, sum(b) OVER ( 776d6f784efSdan ORDER BY a 777d6f784efSdan ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 778d6f784efSdan ) FROM t2 ORDER BY 1, 2; 77908f6de7fSdan} {0 0 1 3379 1 5443 2 372 2 4473 2 7074 3 2916 3 9096 4 4049 78008f6de7fSdan 5 5643 6 1047 7 2205 7 7081 7 10141 8 1553 8 5926 8 6422 78108f6de7fSdan 9 4883 9 7932 9 8497 10 9544 11 5727 11 6433 12 2825 12 5918 78208f6de7fSdan 12 8582 13 5190 13 8570 14 8596 15 3189 15 6023 15 8924 78308f6de7fSdan 16 1942 16 1958 16 3590 17 10134 19 7474 20 5946 21 5464 78408f6de7fSdan 21 9682 22 3029 22 6140 23 212 23 1926 23 8520 24 2626 78508f6de7fSdan 25 3331 26 337 26 7539 26 7565 27 1270 27 10035 28 3217 78608f6de7fSdan 29 1649 29 4355 29 7326 30 4215 30 9400 30 9853 31 5977 78708f6de7fSdan 31 6008 32 2857 33 370 33 4326 33 8175 33 8909 33 9661 78808f6de7fSdan 34 6414 34 6516 34 8958 34 9925 35 2151 35 5638 36 3701 78908f6de7fSdan 36 7818 36 8785 36 8994 37 4597 37 8557 38 735 38 9891 39 842 79008f6de7fSdan 39 7513 39 9721 40 3475 41 115 41 4874 41 5906 42 4185 79108f6de7fSdan 43 2754 43 3518 44 7072 44 9765 46 1041 46 1316 47 2198 79208f6de7fSdan 47 3378 47 7612 47 7923 49 6482 50 9450 51 5778 52 9370 79308f6de7fSdan 53 4408 54 1448 55 3174 55 6876 56 2913 56 3435 56 3574 79408f6de7fSdan 57 7223 58 5248 58 7876 58 9318 58 9823 59 697 59 2813 79508f6de7fSdan 59 6665 59 7455 60 6821 61 2426 61 4944 62 904 62 8658 79608f6de7fSdan 63 4471 64 8407 65 2116 65 5177 65 5603 66 8142 67 1620 79708f6de7fSdan 68 803 69 9260 70 7396 72 4833 72 8004 72 8076 73 5017 79808f6de7fSdan 73 5716 73 6213 74 74 74 189 74 2365 74 5538 74 7297 75 3665 79908f6de7fSdan 75 6951 75 8343 76 3964 77 1903 77 7028 78 1394 78 4293 80008f6de7fSdan 79 6292 80 4677 80 7692 81 542 81 4045 81 8488 82 10117 80108f6de7fSdan 83 10008 84 1826 84 4761 84 9534 84 9628 85 2602 85 2711 80208f6de7fSdan 85 7166 86 2291 87 4560 87 5865 88 6380 89 461 89 3306 80308f6de7fSdan 89 3790 90 3119 90 6606 90 7782 91 995 91 2517 91 3007 80408f6de7fSdan 91 8749 91 8876 93 1742 93 2051 93 8268 94 4143 95 5112 80508f6de7fSdan 95 6118 95 9191 96 638 96 5344 96 6761 97 1243 97 1545 80608f6de7fSdan 98 3888 98 5442 99 311 99 1146 99 9093} 807d6f784efSdan 808d6f784efSdando_execsql_test 4.8.3 { 809d6f784efSdan SELECT b, sum(b) OVER ( 810d6f784efSdan ORDER BY a 811d6f784efSdan ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 812d6f784efSdan ) FROM t2 ORDER BY 1, 2; 81308f6de7fSdan} {0 10141 1 10141 1 10141 2 10141 2 10141 2 10141 3 10141 81408f6de7fSdan 3 10141 4 10141 5 10141 6 10141 7 10141 7 10141 7 10141 81508f6de7fSdan 8 10141 8 10141 8 10141 9 10141 9 10141 9 10141 10 10141 81608f6de7fSdan 11 10141 11 10141 12 10141 12 10141 12 10141 13 10141 13 10141 81708f6de7fSdan 14 10141 15 10141 15 10141 15 10141 16 10141 16 10141 16 10141 81808f6de7fSdan 17 10141 19 10141 20 10141 21 10141 21 10141 22 10141 22 10141 81908f6de7fSdan 23 10141 23 10141 23 10141 24 10141 25 10141 26 10141 26 10141 82008f6de7fSdan 26 10141 27 10141 27 10141 28 10141 29 10141 29 10141 29 10141 82108f6de7fSdan 30 10141 30 10141 30 10141 31 10141 31 10141 32 10141 33 10141 82208f6de7fSdan 33 10141 33 10141 33 10141 33 10141 34 10141 34 10141 34 10141 82308f6de7fSdan 34 10141 35 10141 35 10141 36 10141 36 10141 36 10141 36 10141 82408f6de7fSdan 37 10141 37 10141 38 10141 38 10141 39 10141 39 10141 39 10141 82508f6de7fSdan 40 10141 41 10141 41 10141 41 10141 42 10141 43 10141 43 10141 82608f6de7fSdan 44 10141 44 10141 46 10141 46 10141 47 10141 47 10141 47 10141 82708f6de7fSdan 47 10141 49 10141 50 10141 51 10141 52 10141 53 10141 54 10141 82808f6de7fSdan 55 10141 55 10141 56 10141 56 10141 56 10141 57 10141 58 10141 82908f6de7fSdan 58 10141 58 10141 58 10141 59 10141 59 10141 59 10141 59 10141 83008f6de7fSdan 60 10141 61 10141 61 10141 62 10141 62 10141 63 10141 64 10141 83108f6de7fSdan 65 10141 65 10141 65 10141 66 10141 67 10141 68 10141 69 10141 83208f6de7fSdan 70 10141 72 10141 72 10141 72 10141 73 10141 73 10141 73 10141 83308f6de7fSdan 74 10141 74 10141 74 10141 74 10141 74 10141 75 10141 75 10141 83408f6de7fSdan 75 10141 76 10141 77 10141 77 10141 78 10141 78 10141 79 10141 83508f6de7fSdan 80 10141 80 10141 81 10141 81 10141 81 10141 82 10141 83 10141 83608f6de7fSdan 84 10141 84 10141 84 10141 84 10141 85 10141 85 10141 85 10141 83708f6de7fSdan 86 10141 87 10141 87 10141 88 10141 89 10141 89 10141 89 10141 83808f6de7fSdan 90 10141 90 10141 90 10141 91 10141 91 10141 91 10141 91 10141 83908f6de7fSdan 91 10141 93 10141 93 10141 93 10141 94 10141 95 10141 95 10141 84008f6de7fSdan 95 10141 96 10141 96 10141 96 10141 97 10141 97 10141 98 10141 84108f6de7fSdan 98 10141 99 10141 99 10141 99 10141} 842d6f784efSdan 843d6f784efSdando_execsql_test 4.8.4 { 844d6f784efSdan SELECT b, sum(b) OVER ( 845d6f784efSdan ORDER BY a 846d6f784efSdan ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING 847d6f784efSdan ) FROM t2 ORDER BY 1, 2; 84808f6de7fSdan} {0 10141 1 4699 1 6763 2 3069 2 5670 2 9771 3 1048 3 7228 84908f6de7fSdan 4 6096 5 4503 6 9100 7 7 7 3067 7 7943 8 3727 8 4223 8 8596 85008f6de7fSdan 9 1653 9 2218 9 5267 10 607 11 3719 11 4425 12 1571 12 4235 85108f6de7fSdan 12 7328 13 1584 13 4964 14 1559 15 1232 15 4133 15 6967 85208f6de7fSdan 16 6567 16 8199 16 8215 17 24 19 2686 20 4215 21 480 21 4698 85308f6de7fSdan 22 4023 22 7134 23 1644 23 8238 23 9952 24 7539 25 6835 85408f6de7fSdan 26 2602 26 2628 26 9830 27 133 27 8898 28 6952 29 2844 85508f6de7fSdan 29 5815 29 8521 30 318 30 771 30 5956 31 4164 31 4195 32 7316 85608f6de7fSdan 33 513 33 1265 33 1999 33 5848 33 9804 34 250 34 1217 34 3659 85708f6de7fSdan 34 3761 35 4538 35 8025 36 1183 36 1392 36 2359 36 6476 85808f6de7fSdan 37 1621 37 5581 38 288 38 9444 39 459 39 2667 39 9338 40 6706 85908f6de7fSdan 41 4276 41 5308 41 10067 42 5998 43 6666 43 7430 44 420 86008f6de7fSdan 44 3113 46 8871 46 9146 47 2265 47 2576 47 6810 47 7990 86108f6de7fSdan 49 3708 50 741 51 4414 52 823 53 5786 54 8747 55 3320 55 7022 86208f6de7fSdan 56 6623 56 6762 56 7284 57 2975 58 376 58 881 58 2323 58 4951 86308f6de7fSdan 59 2745 59 3535 59 7387 59 9503 60 3380 61 5258 61 7776 86408f6de7fSdan 62 1545 62 9299 63 5733 64 1798 65 4603 65 5029 65 8090 86508f6de7fSdan 66 2065 67 8588 68 9406 69 950 70 2815 72 2137 72 2209 86608f6de7fSdan 72 5380 73 4001 73 4498 73 5197 74 2918 74 4677 74 7850 86708f6de7fSdan 74 10026 74 10141 75 1873 75 3265 75 6551 76 6253 77 3190 86808f6de7fSdan 77 8315 78 5926 78 8825 79 3928 80 2529 80 5544 81 1734 86908f6de7fSdan 81 6177 81 9680 82 106 83 216 84 597 84 691 84 5464 84 8399 87008f6de7fSdan 85 3060 85 7515 85 7624 86 7936 87 4363 87 5668 88 3849 87108f6de7fSdan 89 6440 89 6924 89 9769 90 2449 90 3625 90 7112 91 1356 87208f6de7fSdan 91 1483 91 7225 91 7715 91 9237 93 1966 93 8183 93 8492 87308f6de7fSdan 94 6092 95 1045 95 4118 95 5124 96 3476 96 4893 96 9599 87408f6de7fSdan 97 8693 97 8995 98 4797 98 6351 99 1147 99 9094 99 9929} 87508f6de7fSdan 87608f6de7fSdan 87708f6de7fSdando_test 4.9 { 87808f6de7fSdan set myres {} 87908f6de7fSdan foreach r [db eval {SELECT 88008f6de7fSdan rank() OVER win AS rank, 88108f6de7fSdan cume_dist() OVER win AS cume_dist FROM t1 88208f6de7fSdan WINDOW win AS (ORDER BY 1);}] { 88308f6de7fSdan lappend myres [format %.4f [set r]] 88408f6de7fSdan } 88508f6de7fSdan set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} 88608f6de7fSdan set i 0 88708f6de7fSdan foreach r [set myres] r2 [set res2] { 88808f6de7fSdan if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { 88908f6de7fSdan error "list element [set i] does not match: got=[set r] expected=[set r2]" 89008f6de7fSdan } 89108f6de7fSdan incr i 89208f6de7fSdan } 89308f6de7fSdan set {} {} 89408f6de7fSdan} {} 895f9eae18bSdan 896b28c4e56Sdando_execsql_test 4.10 { 897b28c4e56Sdan SELECT count(*) OVER (ORDER BY b) FROM t1 898b28c4e56Sdan} {3 3 3 6 6 6} 899b28c4e56Sdan 9001efcc9ddSdando_execsql_test 4.11 { 9011efcc9ddSdan SELECT count(distinct a) FILTER (WHERE b='odd') FROM t1 9021efcc9ddSdan} {3} 9031efcc9ddSdan 904a51ddb1eSdan#========================================================================== 905a51ddb1eSdan 906a51ddb1eSdando_execsql_test 5.0 { 907a51ddb1eSdan DROP TABLE IF EXISTS t1; 908a51ddb1eSdan CREATE TABLE t1(x INTEGER, y INTEGER); 909a51ddb1eSdan INSERT INTO t1 VALUES(10, 1); 910a51ddb1eSdan INSERT INTO t1 VALUES(20, 2); 911a51ddb1eSdan INSERT INTO t1 VALUES(3, 3); 912a51ddb1eSdan INSERT INTO t1 VALUES(2, 4); 913a51ddb1eSdan INSERT INTO t1 VALUES(1, 5); 914a51ddb1eSdan} {} 915a51ddb1eSdan 916a51ddb1eSdan 917a51ddb1eSdando_test 5.1 { 918a51ddb1eSdan set myres {} 919a51ddb1eSdan foreach r [db eval {SELECT avg(x) OVER (ORDER BY y) AS z FROM t1 ORDER BY z;}] { 920a51ddb1eSdan lappend myres [format %.4f [set r]] 921a51ddb1eSdan } 922a51ddb1eSdan set res2 {7.2000 8.7500 10.0000 11.0000 15.0000} 923a51ddb1eSdan set i 0 924a51ddb1eSdan foreach r [set myres] r2 [set res2] { 925a51ddb1eSdan if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { 926a51ddb1eSdan error "list element [set i] does not match: got=[set r] expected=[set r2]" 927a51ddb1eSdan } 928a51ddb1eSdan incr i 929a51ddb1eSdan } 930a51ddb1eSdan set {} {} 931a51ddb1eSdan} {} 932a51ddb1eSdan 93369843342Sdan#========================================================================== 93469843342Sdan 93569843342Sdando_execsql_test 6.0 { 93669843342Sdan DROP TABLE IF EXISTS t0; 93769843342Sdan CREATE TABLE t0(c0 INTEGER UNIQUE); 93869843342Sdan INSERT INTO t0 VALUES(0); 93969843342Sdan} {} 94069843342Sdan 94169843342Sdando_execsql_test 6.1 { 94269843342Sdan SELECT DENSE_RANK() OVER(), LAG(0) OVER() FROM t0; 94369843342Sdan} {1 {}} 94469843342Sdan 94569843342Sdando_execsql_test 6.2 { 94669843342Sdan SELECT * FROM t0 WHERE 94769843342Sdan (0, t0.c0) IN (SELECT DENSE_RANK() OVER(), LAG(0) OVER() FROM t0); 94869843342Sdan} {} 94969843342Sdan 950*d8d2fb92Sdan#========================================================================== 951*d8d2fb92Sdan 952*d8d2fb92Sdando_execsql_test 7.0 { 953*d8d2fb92Sdan DROP TABLE IF EXISTS t1; 954*d8d2fb92Sdan CREATE TABLE t1(a INTEGER, b INTEGER, c INTEGER); 955*d8d2fb92Sdan INSERT INTO t1 VALUES(1, 1, 1); 956*d8d2fb92Sdan INSERT INTO t1 VALUES(1, 2, 2); 957*d8d2fb92Sdan INSERT INTO t1 VALUES(3, 3, 3); 958*d8d2fb92Sdan INSERT INTO t1 VALUES(3, 4, 4); 959*d8d2fb92Sdan} {} 960*d8d2fb92Sdan 961*d8d2fb92Sdando_execsql_test 7.1 { 962*d8d2fb92Sdan SELECT c, sum(c) OVER win1 FROM t1 963*d8d2fb92Sdan WINDOW win1 AS (ORDER BY b) 964*d8d2fb92Sdan} {1 1 2 3 3 6 4 10} 965*d8d2fb92Sdan 966*d8d2fb92Sdando_execsql_test 7.2 { 967*d8d2fb92Sdan SELECT c, sum(c) OVER win1 FROM t1 968*d8d2fb92Sdan WINDOW win1 AS (PARTITION BY 1 ORDER BY b) 969*d8d2fb92Sdan} {1 1 2 3 3 6 4 10} 970*d8d2fb92Sdan 971*d8d2fb92Sdando_execsql_test 7.3 { 972*d8d2fb92Sdan SELECT c, sum(c) OVER win1 FROM t1 973*d8d2fb92Sdan WINDOW win1 AS (ORDER BY 1) 974*d8d2fb92Sdan} {1 10 2 10 3 10 4 10} 975*d8d2fb92Sdan 976b6e9f7a4Sdanfinish_test 977