mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 19:42:00 +00:00
74 lines
2.3 KiB
Bash
Executable File
74 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
# shellcheck source=../shell_config.sh
|
|
. "$CURDIR"/../shell_config.sh
|
|
|
|
# shellcheck source=./mergetree_mutations.lib
|
|
. "$CURDIR"/mergetree_mutations.lib
|
|
|
|
set -e
|
|
|
|
function wait_for_alter()
|
|
{
|
|
type=$1
|
|
for i in {1..100}; do
|
|
sleep 0.1
|
|
${CLICKHOUSE_CLIENT} --query "SHOW CREATE TABLE t_limit_mutations" | grep -q "\`v\` $type" && break;
|
|
|
|
if [[ $i -eq 100 ]]; then
|
|
echo "Timed out while waiting for alter to execute"
|
|
fi
|
|
done
|
|
}
|
|
|
|
${CLICKHOUSE_CLIENT} -n --query "
|
|
DROP TABLE IF EXISTS t_limit_mutations SYNC;
|
|
|
|
CREATE TABLE t_limit_mutations (id UInt64, v UInt64)
|
|
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{database}/t_limit_mutations', '1') ORDER BY id
|
|
SETTINGS number_of_mutations_to_throw = 2;
|
|
|
|
SET mutations_sync = 0;
|
|
SYSTEM STOP MERGES t_limit_mutations;
|
|
|
|
INSERT INTO t_limit_mutations VALUES (1, 2);
|
|
|
|
ALTER TABLE t_limit_mutations UPDATE v = 3 WHERE 1;
|
|
ALTER TABLE t_limit_mutations UPDATE v = 4 WHERE 1;
|
|
|
|
SYSTEM SYNC REPLICA t_limit_mutations PULL;
|
|
|
|
ALTER TABLE t_limit_mutations UPDATE v = 5 WHERE 1; -- { serverError TOO_MANY_MUTATIONS }
|
|
ALTER TABLE t_limit_mutations MODIFY COLUMN v String; -- { serverError TOO_MANY_MUTATIONS }
|
|
|
|
SELECT * FROM t_limit_mutations ORDER BY id;
|
|
SELECT count() FROM system.mutations WHERE database = currentDatabase() AND table = 't_limit_mutations' AND NOT is_done;
|
|
SHOW CREATE TABLE t_limit_mutations;
|
|
"
|
|
|
|
${CLICKHOUSE_CLIENT} -n --query "
|
|
ALTER TABLE t_limit_mutations UPDATE v = 6 WHERE 1 SETTINGS number_of_mutations_to_throw = 100;
|
|
ALTER TABLE t_limit_mutations MODIFY COLUMN v String SETTINGS number_of_mutations_to_throw = 100, alter_sync = 0;
|
|
"
|
|
|
|
wait_for_alter "String"
|
|
|
|
${CLICKHOUSE_CLIENT} -n --query "
|
|
SELECT * FROM t_limit_mutations ORDER BY id;
|
|
SELECT count() FROM system.mutations WHERE database = currentDatabase() AND table = 't_limit_mutations' AND NOT is_done;
|
|
SHOW CREATE TABLE t_limit_mutations;
|
|
"
|
|
|
|
${CLICKHOUSE_CLIENT} --query "SYSTEM START MERGES t_limit_mutations"
|
|
|
|
wait_for_mutation "t_limit_mutations" "0000000003"
|
|
|
|
${CLICKHOUSE_CLIENT} -n --query "
|
|
SELECT * FROM t_limit_mutations ORDER BY id;
|
|
SELECT count() FROM system.mutations WHERE database = currentDatabase() AND table = 't_limit_mutations' AND NOT is_done;
|
|
SHOW CREATE TABLE t_limit_mutations;
|
|
|
|
DROP TABLE IF EXISTS t_limit_mutations SYNC;
|
|
"
|