#!/usr/bin/env bash set -e CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . $CURDIR/../shell_config.sh $CLICKHOUSE_CLIENT --multiquery </dev/null & done wait done } function alter_thread() { trap 'exit' INT ALTER[0]="ALTER TABLE mv MODIFY QUERY SELECT v == 1 as test, v as case FROM src_a;" ALTER[1]="ALTER TABLE mv MODIFY QUERY SELECT v == 2 as test, v as case FROM src_b;" while true; do $CLICKHOUSE_CLIENT --allow_experimental_alter_materialized_view_structure=1 \ -q "${ALTER[$RANDOM % 2]}" sleep "0.0$RANDOM" done } insert_thread & insert_thread_pid=$! alter_thread & alter_thread_pid=$! while true; do is_done=$($CLICKHOUSE_CLIENT -q "SELECT countIf(case = 1) > 0 AND countIf(case = 2) > 0 FROM mv;") if [ "$is_done" -eq "1" ]; then break fi done kill -INT $insert_thread_pid kill -INT $alter_thread_pid wait $CLICKHOUSE_CLIENT -q "SELECT 'inconsistencies', count() FROM mv WHERE test == 0;"