Skip to content

Commit ee5d332

Browse files
committed
sqllogictest: make sqllogictest tests resilient to result ordering
At least those that we managed to find by futzing with result ordering as a result of stashed peek responses.
1 parent a11086f commit ee5d332

40 files changed

+692
-792
lines changed

misc/python/materialize/query_fitness/pick.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def dump_slt(conn: pg8000.Connection, query: str) -> None:
4141
print(
4242
f"""
4343
44-
query {colspec}
44+
query {colspec} rowsort
4545
{query}
4646
----
4747
9999999999 values hashing to YY

test/sqllogictest/aclitem.slt

+1-1
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ SELECT makeaclitem(1, 2, 'CREATE', true)::text
287287

288288
# aclexplode
289289

290-
query T
290+
query T rowsort
291291
SELECT aclexplode(ARRAY[makeaclitem(1, 2, 'SELECT, INSERT, DELETE', false), makeaclitem(3, 4, 'USAGE', false)])
292292
----
293293
(4,3,USAGE,f)

test/sqllogictest/aggregates.slt

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ SELECT a + 1 FROM t GROUP BY a + 1 HAVING sum(b) = 3
7171
2
7272
3
7373

74-
query II
74+
query II rowsort
7575
SELECT t1.a, (SELECT t2.a FROM t t2 WHERE t2.b = 2 AND t1.b = t2.b GROUP BY t2.a) FROM t t1;
7676
----
7777
1 NULL

test/sqllogictest/aggregates_2.slt

+15-15
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CREATE TABLE t (
1919
statement ok
2020
INSERT INTO t VALUES (1, '10', 'x'), (2, '20', NULL), (3, '30', NULL), (4, '40', 'x'), (5, '50a', 'x'), (5, '50b', 'y'), (5, '50c', 'z');
2121

22-
query TT
22+
query TT rowsort
2323
SELECT a, array_agg(b) FROM t GROUP BY a;
2424
----
2525
1 {10}
@@ -29,7 +29,7 @@ SELECT a, array_agg(b) FROM t GROUP BY a;
2929
5 {50a,50b,50c}
3030

3131

32-
query TTT
32+
query TTT rowsort
3333
SELECT a, array_agg(b), array_agg(c) FROM t GROUP BY a;
3434
----
3535
2 {20} {NULL}
@@ -39,7 +39,7 @@ SELECT a, array_agg(b), array_agg(c) FROM t GROUP BY a;
3939
5 {50a,50b,50c} {x,y,z}
4040

4141

42-
query TTT
42+
query TTT rowsort
4343
SELECT a, array_agg(b), string_agg(c, ',') FROM t GROUP BY a;
4444
----
4545
2 {20} NULL
@@ -49,7 +49,7 @@ SELECT a, array_agg(b), string_agg(c, ',') FROM t GROUP BY a;
4949
5 {50a,50b,50c} x,y,z
5050

5151

52-
query TTT
52+
query TTT rowsort
5353
SELECT a, array_agg(b), string_agg(c, ',' ORDER BY b DESC) FROM t GROUP BY a;
5454
----
5555
2 {20} NULL
@@ -59,19 +59,19 @@ SELECT a, array_agg(b), string_agg(c, ',' ORDER BY b DESC) FROM t GROUP BY a;
5959
5 {50a,50b,50c} z,y,x
6060

6161

62-
query TTT
62+
query TTT rowsort
6363
SELECT a, array_agg(b), max(c) FROM t WHERE c <> 'x' GROUP BY a;
6464
----
6565
5 {50b,50c} z
6666

6767

68-
query TTT
68+
query TTT rowsort
6969
SELECT a, array_agg(b), max(b) FROM t GROUP BY a HAVING count(a) > 1;
7070
----
7171
5 {50a,50b,50c} 50c
7272

7373

74-
query TTT
74+
query TTT rowsort
7575
SELECT a, min(b), max(b) FROM t GROUP BY a;
7676
----
7777
1 10 10
@@ -81,7 +81,7 @@ SELECT a, min(b), max(b) FROM t GROUP BY a;
8181
5 50a 50c
8282

8383

84-
query TTT
84+
query TTT rowsort
8585
SELECT a, array_agg(b ORDER BY b ASC), array_agg(b ORDER BY b DESC) FROM t GROUP BY a;
8686
----
8787
1 {10} {10}
@@ -91,27 +91,27 @@ SELECT a, array_agg(b ORDER BY b ASC), array_agg(b ORDER BY b DESC) FROM t GROUP
9191
5 {50a,50b,50c} {50c,50b,50a}
9292

9393

94-
query TTT
94+
query TTT rowsort
9595
SELECT array_agg(b ORDER BY b ASC), array_agg(b ORDER BY b DESC), bool_or(b IS NOT NULL) FROM t;
9696
----
9797
{10,20,30,40,50a,50b,50c} {50c,50b,50a,40,30,20,10} true
9898

9999

100-
query TTT
100+
query TTT rowsort
101101
SELECT t1.a, array_agg(t1.c), array_agg(t2.c) FROM t t1 INNER JOIN t t2 ON t1.c = t2.c WHERE t1.c IS NOT NULL GROUP BY t1.a;
102102
----
103103
1 {x,x,x} {x,x,x}
104104
4 {x,x,x} {x,x,x}
105105
5 {x,x,x,y,z} {x,x,x,y,z}
106106

107107

108-
query TTTT
108+
query TTTT rowsort
109109
SELECT sum(a), jsonb_agg(b), array_agg(b), array_agg(b) FROM t;
110110
----
111111
25 ["10","20","30","40","50a","50b","50c"] {10,20,30,40,50a,50b,50c} {10,20,30,40,50a,50b,50c}
112112

113113

114-
query TT
114+
query TT rowsort
115115
SELECT a, array_agg(b ORDER BY b) FROM t GROUP BY a HAVING array_agg(b ORDER BY b) = array_agg(b ORDER BY b DESC);
116116
----
117117
1 {10}
@@ -120,7 +120,7 @@ SELECT a, array_agg(b ORDER BY b) FROM t GROUP BY a HAVING array_agg(b ORDER BY
120120
4 {40}
121121

122122

123-
query TTT
123+
query TTT rowsort
124124
SELECT a, array_agg(b), array_agg(sha256(b::BYTEA)) FROM t GROUP BY a;
125125
----
126126
1 {10} {"\\x4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5"}
@@ -130,7 +130,7 @@ SELECT a, array_agg(b), array_agg(sha256(b::BYTEA)) FROM t GROUP BY a;
130130
5 {50a,50b,50c} {"\\x189a55d80e074ffaacb282b6f9b51dcc1152a4e3f365a09d086347cbddcbb49b","\\xb3aecad3a43c511942fac3629ec9d191ff86961285d711875822721a1b676cd9","\\xb7abe8e9eedafe78353d0d3c6d837e1295b727f2ce3e220b4271b25a3b2e347b"}
131131

132132

133-
query TTT
133+
query TTT rowsort
134134
SELECT a, array_agg(b), array_agg(CASE WHEN a = 1 THEN 'ooo' ELSE b END) FROM t GROUP BY a;
135135
----
136136
2 {20} {20}
@@ -140,7 +140,7 @@ SELECT a, array_agg(b), array_agg(CASE WHEN a = 1 THEN 'ooo' ELSE b END) FROM t
140140
5 {50a,50b,50c} {50a,50b,50c}
141141

142142

143-
query TTT
143+
query TTT rowsort
144144
SELECT a, dense_rank() OVER (ORDER BY a), array_agg(b) FROM t GROUP BY a;
145145
----
146146
1 1 {10}

test/sqllogictest/alter-table.slt

+1-1
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ ALTER TABLE t2 ADD COLUMN c timestamp;
429429
statement ok
430430
COMMENT ON COLUMN t2.c IS 'added later';
431431

432-
query TTIT
432+
query TTIT rowsort
433433
SELECT * FROM mz_internal.mz_comments WHERE id = 'u1';
434434
----
435435
u1 table 3 added␠later

test/sqllogictest/arrays.slt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,7 @@ SELECT array_position(ARRAY[['mon']]::text[], 'mon', null)
10961096

10971097
# multi-dimensional arrays
10981098
# how else can we handle whitespace terminals in strings?
1099-
query T
1099+
query T rowsort
11001100
SELECT
11011101
concat_ws(
11021102
E'\t',
@@ -1175,7 +1175,7 @@ end
11751175
{{{{b},{b}}},{{{b},{b}}},{{{b},{b}}}} 3 1 2 1 b end
11761176

11771177
# Test that whitespace produces same results
1178-
query T
1178+
query T rowsort
11791179
SELECT
11801180
concat_ws(
11811181
E'\t',

test/sqllogictest/autogenerated/all_parts_essential.slt

+9-6
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ Target cluster: quickstart
345345
EOF
346346

347347

348-
query IIII
348+
query IIII valuesort
349349
SELECT l_quantity * l_extendedprice,
350350
c_nationkey,
351351
MAX(l_linenumber),
@@ -361,7 +361,8 @@ WHERE c_acctbal <= l_extendedprice
361361
GROUP BY 1,
362362
2
363363
----
364-
52 values hashing to 4e4afdc4bb20f0010546172d79444057
364+
52 values hashing to 01070c9bba39135ea979d3cb794ef48a
365+
365366

366367

367368
query T multiline
@@ -409,7 +410,7 @@ Target cluster: quickstart
409410
EOF
410411

411412

412-
query II
413+
query II valuesort
413414
SELECT o_orderkey,
414415
l_quantity
415416
FROM lineitem
@@ -418,7 +419,8 @@ WHERE l_commitDATE >= '1998-03-22'
418419
AND l_orderkey BETWEEN 59 AND 95 + 5
419420
OR l_receiptDATE = o_orderdate
420421
----
421-
32 values hashing to ec8074554bd06af7be96411043391bed
422+
32 values hashing to 0b856148acc0ae8e03776d5d7c2f7521
423+
422424

423425

424426
query T multiline
@@ -661,7 +663,7 @@ Target cluster: quickstart
661663
EOF
662664

663665

664-
query III
666+
query III valuesort
665667
SELECT c_nationkey,
666668
MAX(l_suppkey),
667669
MAX(o_orderkey)
@@ -673,7 +675,8 @@ WHERE o_orderkey BETWEEN 117 AND 165 + 124
673675
AND l_orderkey BETWEEN 62 AND 126 + 154
674676
GROUP BY 1
675677
----
676-
27 values hashing to 5990c609ef0c343e4cc5c941b12002d1
678+
27 values hashing to 3b3d73b9b18547300a7b2981ff7f07c8
679+
677680

678681

679682

test/sqllogictest/boolean.slt

+1-1
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ Target cluster: quickstart
401401

402402
EOF
403403

404-
query II
404+
query II rowsort
405405
SELECT *
406406
FROM z
407407
WHERE CASE WHEN a > b THEN FALSE ELSE TRUE END

test/sqllogictest/cluster.slt

+1-1
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ CREATE CLUSTER REPLICA t1.r123 SIZE '2', BILLED AS 'free'
732732
----
733733
db error: ERROR: cannot modify managed cluster t1
734734

735-
query TTTTT
735+
query TTTTT rowsort
736736
SELECT id, name, cluster_id, size, owner_id FROM mz_cluster_replicas WHERE cluster_id LIKE 'u%'
737737
----
738738
u1 r1 u1 2 s1

0 commit comments

Comments
 (0)