ClickHouse/tests/queries/0_stateless/01781_merge_tree_deduplication.sql
2022-05-25 11:44:37 +02:00

191 lines
6.1 KiB
SQL

-- Tags: no-replicated-database
-- Tag no-replicated-database: Unsupported type of ALTER query
DROP TABLE IF EXISTS merge_tree_deduplication;
CREATE TABLE merge_tree_deduplication
(
key UInt64,
value String,
part UInt8 DEFAULT 77
)
ENGINE=MergeTree()
ORDER BY key
PARTITION BY part
SETTINGS non_replicated_deduplication_window=3;
SYSTEM STOP MERGES merge_tree_deduplication;
INSERT INTO merge_tree_deduplication (key, value) VALUES (1, '1');
SELECT key, value FROM merge_tree_deduplication;
INSERT INTO merge_tree_deduplication (key, value) VALUES (1, '1');
SELECT key, value FROM merge_tree_deduplication;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value) VALUES (2, '2');
INSERT INTO merge_tree_deduplication (key, value) VALUES (3, '3');
INSERT INTO merge_tree_deduplication (key, value) VALUES (4, '4');
INSERT INTO merge_tree_deduplication (key, value) VALUES (1, '1');
SELECT key, value FROM merge_tree_deduplication ORDER BY key;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value) VALUES (5, '5');
INSERT INTO merge_tree_deduplication (key, value) VALUES (6, '6');
INSERT INTO merge_tree_deduplication (key, value) VALUES (7, '7');
INSERT INTO merge_tree_deduplication (key, value) VALUES (5, '5');
SELECT key, value FROM merge_tree_deduplication ORDER BY key;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value) VALUES (8, '8');
INSERT INTO merge_tree_deduplication (key, value) VALUES (9, '9');
INSERT INTO merge_tree_deduplication (key, value) VALUES (10, '10');
INSERT INTO merge_tree_deduplication (key, value) VALUES (11, '11');
INSERT INTO merge_tree_deduplication (key, value) VALUES (12, '12');
INSERT INTO merge_tree_deduplication (key, value) VALUES (10, '10');
INSERT INTO merge_tree_deduplication (key, value) VALUES (11, '11');
INSERT INTO merge_tree_deduplication (key, value) VALUES (12, '12');
SELECT key, value FROM merge_tree_deduplication ORDER BY key;
SELECT '===============';
ALTER TABLE merge_tree_deduplication DROP PART '77_9_9_0'; -- some old part
INSERT INTO merge_tree_deduplication (key, value) VALUES (10, '10');
SELECT key, value FROM merge_tree_deduplication WHERE key = 10;
ALTER TABLE merge_tree_deduplication DROP PART '77_13_13_0'; -- fresh part
INSERT INTO merge_tree_deduplication (key, value) VALUES (12, '12');
SELECT key, value FROM merge_tree_deduplication WHERE key = 12;
DETACH TABLE merge_tree_deduplication;
ATTACH TABLE merge_tree_deduplication;
OPTIMIZE TABLE merge_tree_deduplication FINAL;
INSERT INTO merge_tree_deduplication (key, value) VALUES (11, '11'); -- deduplicated
INSERT INTO merge_tree_deduplication (key, value) VALUES (12, '12'); -- deduplicated
SELECT '===============';
SELECT key, value FROM merge_tree_deduplication ORDER BY key;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (11, '11', 88);
ALTER TABLE merge_tree_deduplication DROP PARTITION 77;
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (11, '11', 88); --deduplicated
INSERT INTO merge_tree_deduplication (key, value) VALUES (11, '11'); -- not deduplicated
INSERT INTO merge_tree_deduplication (key, value) VALUES (12, '12'); -- not deduplicated
SELECT part, key, value FROM merge_tree_deduplication ORDER BY key, part;
-- Alters....
ALTER TABLE merge_tree_deduplication MODIFY SETTING non_replicated_deduplication_window = 2;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 33);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (2, '2', 33);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (3, '3', 33);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 33);
SELECT * FROM merge_tree_deduplication WHERE part = 33 ORDER BY key;
SELECT '===============';
ALTER TABLE merge_tree_deduplication MODIFY SETTING non_replicated_deduplication_window = 0;
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 33);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 33);
DETACH TABLE merge_tree_deduplication;
ATTACH TABLE merge_tree_deduplication;
SELECT * FROM merge_tree_deduplication WHERE part = 33 ORDER BY key;
SELECT '===============';
ALTER TABLE merge_tree_deduplication MODIFY SETTING non_replicated_deduplication_window = 3;
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 33);
SELECT * FROM merge_tree_deduplication WHERE part = 33 ORDER BY key;
SELECT '===============';
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 44);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (2, '2', 44);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (3, '3', 44);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (1, '1', 44);
INSERT INTO merge_tree_deduplication (key, value, part) VALUES (4, '4', 44);
DETACH TABLE merge_tree_deduplication;
ATTACH TABLE merge_tree_deduplication;
SELECT * FROM merge_tree_deduplication WHERE part = 44 ORDER BY key;
DROP TABLE IF EXISTS merge_tree_deduplication;
SELECT '===============';
DROP TABLE IF EXISTS merge_tree_no_deduplication;
CREATE TABLE merge_tree_no_deduplication
(
key UInt64,
value String
)
ENGINE=MergeTree()
ORDER BY key;
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (1, '1');
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (1, '1');
SELECT * FROM merge_tree_no_deduplication ORDER BY key;
SELECT '===============';
ALTER TABLE merge_tree_no_deduplication MODIFY SETTING non_replicated_deduplication_window = 3;
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (1, '1');
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (2, '2');
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (3, '3');
DETACH TABLE merge_tree_no_deduplication;
ATTACH TABLE merge_tree_no_deduplication;
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (1, '1');
INSERT INTO merge_tree_no_deduplication (key, value) VALUES (4, '4');
SELECT * FROM merge_tree_no_deduplication ORDER BY key;
DROP TABLE IF EXISTS merge_tree_no_deduplication;