mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 10:52:30 +00:00
54 lines
2.0 KiB
Bash
54 lines
2.0 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
# Tags: no-random-settings, no-random-merge-tree-settings
|
||
|
|
||
|
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||
|
# shellcheck source=../shell_config.sh
|
||
|
. "$CUR_DIR"/../shell_config.sh
|
||
|
|
||
|
${CLICKHOUSE_CLIENT} --query "
|
||
|
DROP TABLE IF EXISTS t_mutate_profile_events;
|
||
|
|
||
|
CREATE TABLE t_mutate_profile_events (key UInt64, id UInt64, v1 UInt64, v2 UInt64)
|
||
|
ENGINE = MergeTree ORDER BY id PARTITION BY key
|
||
|
SETTINGS min_bytes_for_wide_part = 0;
|
||
|
|
||
|
INSERT INTO t_mutate_profile_events SELECT 1, number, number, number FROM numbers(10000);
|
||
|
INSERT INTO t_mutate_profile_events SELECT 2, number, number, number FROM numbers(10000);
|
||
|
|
||
|
SET mutations_sync = 2;
|
||
|
|
||
|
ALTER TABLE t_mutate_profile_events UPDATE v1 = 1000 WHERE key = 1;
|
||
|
ALTER TABLE t_mutate_profile_events DELETE WHERE key = 2 AND v2 % 10 = 0;
|
||
|
"
|
||
|
|
||
|
# Mutation query may return before the entry is added to part log.
|
||
|
# So, we may have to retry the flush of logs until all entries are actually flushed.
|
||
|
for _ in {1..10}; do
|
||
|
${CLICKHOUSE_CLIENT} --query "SYSTEM FLUSH LOGS"
|
||
|
res=$(${CLICKHOUSE_CLIENT} --query "SELECT count() FROM system.part_log WHERE database = currentDatabase() AND table = 't_mutate_profile_events' AND event_type = 'MutatePart'")
|
||
|
|
||
|
if [[ $res -eq 4 ]]; then
|
||
|
break
|
||
|
fi
|
||
|
|
||
|
sleep 2.0
|
||
|
done
|
||
|
|
||
|
${CLICKHOUSE_CLIENT} --query "
|
||
|
SELECT
|
||
|
splitByChar('_', part_name)[-1] AS version,
|
||
|
sum(ProfileEvents['MutationTotalParts']),
|
||
|
sum(ProfileEvents['MutationUntouchedParts']),
|
||
|
sum(ProfileEvents['MutatedRows']),
|
||
|
sum(ProfileEvents['MutatedUncompressedBytes']),
|
||
|
sum(ProfileEvents['MutationAllPartColumns']),
|
||
|
sum(ProfileEvents['MutationSomePartColumns']),
|
||
|
sum(ProfileEvents['MutationTotalMilliseconds']) > 0,
|
||
|
sum(ProfileEvents['MutationExecuteMilliseconds']) > 0,
|
||
|
FROM system.part_log
|
||
|
WHERE database = currentDatabase() AND table = 't_mutate_profile_events' AND event_type = 'MutatePart'
|
||
|
GROUP BY version ORDER BY version;
|
||
|
|
||
|
DROP TABLE IF EXISTS t_mutate_profile_events;
|
||
|
"
|