2023-08-08 14:55:07 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
# Tags: zookeeper, no-replicated-database
|
|
|
|
# no-replicated-database because it adds extra replicas
|
|
|
|
|
|
|
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|
|
|
# shellcheck source=../shell_config.sh
|
|
|
|
. "$CURDIR"/../shell_config.sh
|
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT -q "drop table if exists rmt sync;"
|
|
|
|
$CLICKHOUSE_CLIENT -q "CREATE TABLE rmt (a UInt8, b Int16, c Float32, d String, e Array(UInt8), f Nullable(UUID), g Tuple(UInt8, UInt16))
|
|
|
|
ENGINE = ReplicatedMergeTree('/test/02253/$CLICKHOUSE_TEST_ZOOKEEPER_PREFIX/rmt', '1') ORDER BY a PARTITION BY b % 10
|
|
|
|
SETTINGS old_parts_lifetime = 1, cleanup_delay_period = 0, cleanup_delay_period_random_add = 0,
|
2023-08-29 12:02:43 +00:00
|
|
|
cleanup_thread_preferred_points_per_iteration=0, min_bytes_for_wide_part=0, remove_empty_parts=0, replace_long_file_name_to_hash=0"
|
2023-08-08 14:55:07 +00:00
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT --insert_keeper_fault_injection_probability=0 -q "INSERT INTO rmt SELECT rand(1), 0, 1 / rand(3), toString(rand(4)), [rand(5), rand(6)], rand(7) % 2 ? NULL : generateUUIDv4(), (rand(8), rand(9)) FROM numbers(1000);"
|
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT -q "check table rmt"
|
|
|
|
$CLICKHOUSE_CLIENT -q "select count() from rmt"
|
|
|
|
|
|
|
|
path=$($CLICKHOUSE_CLIENT -q "select path from system.parts where database='$CLICKHOUSE_DATABASE' and table='rmt' and name='0_0_0_0'")
|
|
|
|
# ensure that path is absolute before removing
|
|
|
|
$CLICKHOUSE_CLIENT -q "select throwIf(substring('$path', 1, 1) != '/', 'Path is relative: $path')" || exit
|
|
|
|
rm -rf "$path"
|
|
|
|
|
|
|
|
# detach the broken part, replace it with empty one
|
|
|
|
$CLICKHOUSE_CLIENT -q "check table rmt" 2>/dev/null
|
|
|
|
$CLICKHOUSE_CLIENT -q "select count() from rmt"
|
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT --receive_timeout=60 -q "system sync replica rmt"
|
|
|
|
|
|
|
|
# the empty part should pass the check
|
|
|
|
$CLICKHOUSE_CLIENT -q "check table rmt"
|
|
|
|
$CLICKHOUSE_CLIENT -q "select count() from rmt"
|
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT -q "select name, part_type, hash_of_all_files, hash_of_uncompressed_files, uncompressed_hash_of_compressed_files from system.parts where database=currentDatabase()"
|
|
|
|
|
|
|
|
$CLICKHOUSE_CLIENT -q "drop table rmt sync;"
|