From ff9e74bf2a8289a763f9d292c6fc3279be29a052 Mon Sep 17 00:00:00 2001 From: Denis Zhuravlev Date: Wed, 17 Mar 2021 20:29:24 -0300 Subject: [PATCH] test for #17302 --- .../0_stateless/01763_ttl_group_by.reference | 6 +++++ .../0_stateless/01763_ttl_group_by.sql | 26 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 tests/queries/0_stateless/01763_ttl_group_by.reference create mode 100644 tests/queries/0_stateless/01763_ttl_group_by.sql diff --git a/tests/queries/0_stateless/01763_ttl_group_by.reference b/tests/queries/0_stateless/01763_ttl_group_by.reference new file mode 100644 index 00000000000..bdea806e747 --- /dev/null +++ b/tests/queries/0_stateless/01763_ttl_group_by.reference @@ -0,0 +1,6 @@ +206000 0 3 5 +41200 0 3 1 +20600 0 3 1 +206000 0 3 5 +41200 0 3 1 +20600 0 3 1 diff --git a/tests/queries/0_stateless/01763_ttl_group_by.sql b/tests/queries/0_stateless/01763_ttl_group_by.sql new file mode 100644 index 00000000000..6bfc9647f55 --- /dev/null +++ b/tests/queries/0_stateless/01763_ttl_group_by.sql @@ -0,0 +1,26 @@ +drop table if exists test_ttl_group_by01763; +CREATE TABLE test_ttl_group_by01763 +(key UInt32, ts DateTime, value UInt32, min_value UInt32 default value, max_value UInt32 default value) +ENGINE = MergeTree() PARTITION BY toYYYYMM(ts) +ORDER BY (key, toStartOfInterval(ts, toIntervalMinute(3)), ts) +TTL ts + INTERVAL 5 MINUTE GROUP BY key, toStartOfInterval(ts, toIntervalMinute(3)) +SET value = sum(value), min_value = min(min_value), max_value = max(max_value), ts=min(toStartOfInterval(ts, toIntervalMinute(3))); + +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 10 minute + number, 1 FROM numbers(100000); +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 10 minute + number, 0 FROM numbers(1000); +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 10 minute + number, 3 FROM numbers(1000); +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 2 month + number, 1 FROM numbers(100000); +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 2 month + number, 0 FROM numbers(1000); +INSERT INTO test_ttl_group_by01763(key, ts, value) SELECT number%5 as key, now() - interval 2 month + number, 3 FROM numbers(1000); + +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763; +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763 where key = 3 ; +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763 where key = 3 and ts <= today() - interval 30 day ; + +OPTIMIZE TABLE test_ttl_group_by01763 FINAL; + +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763; +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763 where key = 3 ; +SELECT sum(value), min(min_value), max(max_value), uniqExact(key) FROM test_ttl_group_by01763 where key = 3 and ts <= today() - interval 30 day ; + +drop table test_ttl_group_by01763;