#!/usr/bin/env bash function wait_for_delete_empty_parts() { local table=$1 local database=${2:-$CLICKHOUSE_DATABASE} local timeout=${3:-20} while [[ timeout -gt 0 ]] do res=$(${CLICKHOUSE_CLIENT} --query="SELECT count() FROM system.parts WHERE database='$database' AND table='$table' AND active AND rows=0") [[ $res -eq 0 ]] && return 0 sleep 2 timeout=$((timeout - 2)) done echo "Timed out while waiting for delete empty parts!" >&2 return 2 } function wait_for_delete_inactive_parts() { local table=$1 local database=${2:-$CLICKHOUSE_DATABASE} local timeout=${3:-20} while [[ timeout -gt 0 ]] do res=$(${CLICKHOUSE_CLIENT} --query="SELECT count() FROM system.parts WHERE database='$database' AND table='$table' AND not active") [[ $res -eq 0 ]] && return 0 sleep 2 timeout=$((timeout - 2)) done echo "Timed out while waiting for delete inactive parts!" >&2 return 2 } export -f wait_for_delete_empty_parts export -f wait_for_delete_inactive_parts