Skip to content

Commit 5b8b7e3

Browse files
authored
Merge branch 'main' into li0k/clean_up_expired_files
2 parents af34051 + ed58a68 commit 5b8b7e3

File tree

46 files changed

+2100
-278
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2100
-278
lines changed

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
statement ok
2+
create table t(id int, name string);
3+
4+
statement error Serverless Backfill is disabled
5+
create materialized view serverless_backfill_mv with (cloud.serverless_backfill_enabled = true) as select * from t;
6+
7+
statement ok
8+
drop table t;

e2e_test/iceberg/test_case/pure_slt/datafusion/agg.slt

Lines changed: 263 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,269 @@ SELECT COUNT(*) FROM t;
116116
statement ok
117117
DROP TABLE t;
118118

119+
# ==================== DataFusion Native Aggregate Functions ====================
120+
121+
statement ok
122+
CREATE TABLE agg_test (
123+
grp INT,
124+
val_int INT,
125+
val_bigint BIGINT,
126+
val_float FLOAT,
127+
val_double DOUBLE,
128+
val_bool BOOLEAN,
129+
) WITH (commit_checkpoint_interval = 1) ENGINE = iceberg;
130+
131+
statement ok
132+
INSERT INTO agg_test VALUES
133+
(1, 10, 100, 1.5, 10.5, true),
134+
(1, 20, 200, 2.5, 20.5, true),
135+
(1, 30, 300, 3.5, 30.5, false),
136+
(2, 5, 50, 0.5, 5.5, false),
137+
(2, 15, 150, 1.0, 15.0, true),
138+
(2, NULL, NULL, NULL, NULL, NULL);
139+
140+
statement ok
141+
FLUSH;
142+
143+
sleep 5s
144+
145+
# ==================== SUM Aggregate Tests ====================
146+
147+
query ???
148+
SELECT grp, sum(val_int), sum(val_bigint)
149+
FROM agg_test
150+
GROUP BY grp
151+
ORDER BY grp;
152+
----
153+
1 60 600
154+
2 20 200
155+
156+
# ==================== MIN/MAX Aggregate Tests ====================
157+
158+
query ????
159+
SELECT grp, min(val_int), max(val_int), min(val_float)
160+
FROM agg_test
161+
GROUP BY grp
162+
ORDER BY grp;
163+
----
164+
1 10 30 1.5
165+
2 5 15 0.5
166+
167+
# ==================== COUNT Aggregate Tests ====================
168+
# count(*) and count(column)
169+
170+
query ???
171+
SELECT grp, count(*), count(val_int)
172+
FROM agg_test
173+
GROUP BY grp
174+
ORDER BY grp;
175+
----
176+
1 3 3
177+
2 3 2
178+
179+
# ==================== AVG Aggregate Tests ====================
180+
181+
query ???
182+
SELECT grp, avg(val_int), avg(val_float)
183+
FROM agg_test
184+
GROUP BY grp
185+
ORDER BY grp;
186+
----
187+
1 20.00000000000000 2.5
188+
2 10.00000000000000 0.75
189+
190+
# ==================== Variance Tests ====================
191+
# var_pop(column) and var_samp(column)
192+
193+
query ??
194+
SELECT grp, var_pop(val_int)
195+
FROM agg_test
196+
GROUP BY grp
197+
ORDER BY grp;
198+
----
199+
1 66.66666666666666
200+
2 25.00000000000000
201+
202+
query ??
203+
SELECT grp, var_samp(val_int)
204+
FROM agg_test
205+
GROUP BY grp
206+
ORDER BY grp;
207+
----
208+
1 100.00000000000000
209+
2 50.00000000000000
210+
211+
# ==================== Standard Deviation Tests ====================
212+
# stddev_pop(column) and stddev_samp(column)
213+
214+
query ??
215+
SELECT grp, stddev_pop(val_int)
216+
FROM agg_test
217+
GROUP BY grp
218+
ORDER BY grp;
219+
----
220+
1 8.164965809277259
221+
2 5.000000000000000
222+
223+
query ??
224+
SELECT grp, stddev_samp(val_int)
225+
FROM agg_test
226+
GROUP BY grp
227+
ORDER BY grp;
228+
----
229+
1 10.000000000000000
230+
2 7.071067811865476
231+
232+
# ==================== Bitwise Aggregate Tests ====================
233+
# bit_and(column), bit_or(column), bit_xor(column)
234+
235+
query ???
236+
SELECT grp, bit_and(val_int), bit_or(val_int), bit_xor(val_int)
237+
FROM agg_test
238+
GROUP BY grp
239+
ORDER BY grp;
240+
----
241+
1 0 30 0
242+
2 5 15 10
243+
244+
# ==================== Boolean Aggregate Tests ====================
245+
# bool_and(column) and bool_or(column)
246+
247+
query ??
248+
SELECT grp, bool_and(val_bool), bool_or(val_bool)
249+
FROM agg_test
250+
GROUP BY grp
251+
ORDER BY grp;
252+
----
253+
1 f t
254+
2 f t
255+
256+
# ==================== First/Last Value Tests ====================
257+
# first_value(column ORDER BY ...) and last_value(column ORDER BY ...)
258+
259+
query ??
260+
SELECT grp, first_value(val_int ORDER BY val_int), last_value(val_int ORDER BY val_int)
261+
FROM agg_test
262+
GROUP BY grp
263+
ORDER BY grp;
264+
----
265+
1 10 30
266+
2 5 NULL
267+
268+
# ==================== Array Aggregate Tests ====================
269+
# array_agg(column ORDER BY ...)
270+
271+
query ?
272+
SELECT array_agg(val_int ORDER BY val_int)
273+
FROM agg_test
274+
WHERE grp = 1;
275+
----
276+
{10,20,30}
277+
278+
query ?
279+
SELECT array_agg(val_int ORDER BY val_int DESC)
280+
FROM agg_test
281+
WHERE grp = 1;
282+
----
283+
{30,20,10}
284+
285+
# Test array_agg with NULLs
286+
query ?
287+
SELECT array_agg(val_int ORDER BY val_int)
288+
FROM agg_test
289+
WHERE grp = 2;
290+
----
291+
{5,15,NULL}
292+
293+
# ==================== DISTINCT Modifier Tests ====================
294+
295+
statement ok
296+
INSERT INTO agg_test VALUES
297+
(3, 1, 10, 1.0, 1.0, true),
298+
(3, 1, 10, 1.0, 1.0, true),
299+
(3, 2, 20, 2.0, 2.0, false);
300+
301+
statement ok
302+
FLUSH;
303+
304+
sleep 3s
305+
306+
query ??
307+
SELECT count(val_int), count(DISTINCT val_int)
308+
FROM agg_test
309+
WHERE grp = 3;
310+
----
311+
3 2
312+
313+
query ??
314+
SELECT sum(val_int), sum(DISTINCT val_int)
315+
FROM agg_test
316+
WHERE grp = 3;
317+
----
318+
4 3
319+
320+
# ==================== FILTER Clause Tests ====================
321+
322+
query ??
323+
SELECT
324+
sum(val_int),
325+
sum(val_int) FILTER (WHERE val_bool = true)
326+
FROM agg_test
327+
WHERE grp = 1;
328+
----
329+
60 30
330+
331+
query ??
332+
SELECT
333+
count(*),
334+
count(*) FILTER (WHERE val_int > 10)
335+
FROM agg_test
336+
WHERE grp = 1;
337+
----
338+
3 2
339+
340+
# ==================== Multiple Aggregates Tests ====================
341+
342+
query ???????
343+
SELECT
344+
grp,
345+
sum(val_int),
346+
avg(val_float),
347+
min(val_int),
348+
max(val_int),
349+
count(*),
350+
bool_or(val_bool)
351+
FROM agg_test
352+
WHERE grp <= 2
353+
GROUP BY grp
354+
ORDER BY grp;
355+
----
356+
1 60 2.5 10 30 3 t
357+
2 20 0.75 5 15 3 t
358+
359+
# ==================== Aggregates with Expressions Tests ====================
360+
361+
query ??
362+
SELECT
363+
sum(val_int * 2),
364+
avg(val_float + val_double)
365+
FROM agg_test
366+
WHERE grp = 1;
367+
----
368+
120 23
369+
370+
# ==================== Empty Result Set Tests ====================
371+
372+
query ?????
373+
SELECT sum(val_int), avg(val_float), min(val_int), max(val_int), count(*)
374+
FROM agg_test
375+
WHERE grp = 999;
376+
----
377+
NULL NULL NULL NULL 0
378+
379+
statement ok
380+
DROP TABLE agg_test;
381+
119382
statement ok
120383
DROP CONNECTION my_conn;
121384

0 commit comments

Comments
 (0)