mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
27 lines
978 B
MySQL
27 lines
978 B
MySQL
|
DROP TABLE IF EXISTS segfault;
|
||
|
DROP TABLE IF EXISTS segfault_mv;
|
||
|
|
||
|
CREATE TABLE segfault
|
||
|
(
|
||
|
id UInt32,
|
||
|
uuid UUID,
|
||
|
tags_ids Array(UInt32)
|
||
|
) ENGINE = MergeTree()
|
||
|
ORDER BY (id);
|
||
|
|
||
|
CREATE MATERIALIZED VIEW segfault_mv
|
||
|
ENGINE = AggregatingMergeTree()
|
||
|
ORDER BY (id)
|
||
|
AS SELECT
|
||
|
id,
|
||
|
uniqState(uuid) as uniq_uuids,
|
||
|
uniqMapState(CAST((tags_ids, arrayMap(_ -> toString(uuid), tags_ids)), 'Map(UInt32, String)')) as uniq_tags_ids
|
||
|
FROM segfault
|
||
|
GROUP BY id;
|
||
|
|
||
|
INSERT INTO segfault SELECT * FROM generateRandom('id UInt32, uuid UUID, c Array(UInt32)', 10, 5, 5) LIMIT 100;
|
||
|
INSERT INTO segfault SELECT * FROM generateRandom('id UInt32, uuid UUID, c Array(UInt32)', 10, 5, 5) LIMIT 100;
|
||
|
INSERT INTO segfault SELECT * FROM generateRandom('id UInt32, uuid UUID, c Array(UInt32)', 10, 5, 5) LIMIT 100;
|
||
|
|
||
|
SELECT ignore(CAST((arrayMap(k -> toString(k), mapKeys(uniqMapMerge(uniq_tags_ids) AS m)), mapValues(m)), 'Map(String, UInt32)')) FROM segfault_mv;
|