ClickHouse/tests/queries/0_stateless/02125_many_mutations_2.sh

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
1.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Tags: long, no-tsan, no-debug, no-asan, no-msan, no-ubsan, no-parallel
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=../shell_config.sh
. "$CURDIR"/../shell_config.sh
2023-06-25 06:48:31 +00:00
# "max_parts_to_merge_at_once = 1" prevents merges to start in background before our own OPTIMIZE FINAL
2023-07-06 01:43:59 +00:00
$CLICKHOUSE_CLIENT --multiquery -q "
drop table if exists many_mutations;
create table many_mutations (x UInt32, y UInt32) engine = MergeTree order by x settings number_of_mutations_to_delay = 0, number_of_mutations_to_throw = 0, max_parts_to_merge_at_once = 1;
insert into many_mutations select number, number + 1 from numbers(2000);
system stop merges many_mutations;
"
$CLICKHOUSE_CLIENT -q "select count() from many_mutations"
job()
{
for i in {1..1000}
do
2023-07-06 01:43:59 +00:00
echo "alter table many_mutations delete where y = ${i} * 2 settings mutations_sync = 0;"
done | $CLICKHOUSE_CLIENT --multiquery
}
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
job &
wait
2023-07-06 01:43:59 +00:00
$CLICKHOUSE_CLIENT --multiquery -q "
select count() from system.mutations where database = currentDatabase() and table = 'many_mutations' and not is_done;
system start merges many_mutations;
optimize table many_mutations final SETTINGS optimize_throw_if_noop = 1;
system flush logs;
select count() from system.mutations where database = currentDatabase() and table = 'many_mutations' and not is_done;
select count() from many_mutations;
select * from system.part_log where database = currentDatabase() and table == 'many_mutations' and peak_memory_usage > 1e9;
drop table many_mutations;
"