ClickHouse/tests/queries/0_stateless/01632_tinylog_read_write.sh
2023-07-04 12:29:24 +00:00

51 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Tags: no-fasttest
set -e
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=../shell_config.sh
. "$CURDIR"/../shell_config.sh
$CLICKHOUSE_CLIENT --multiquery --query "DROP TABLE IF EXISTS test; CREATE TABLE IF NOT EXISTS test (x UInt64, s Array(Nullable(String))) ENGINE = TinyLog;"
function thread_select {
local TIMELIMIT=$((SECONDS+$1))
while [ $SECONDS -lt "$TIMELIMIT" ]; do
$CLICKHOUSE_CLIENT --local_filesystem_read_method pread --query "SELECT * FROM test FORMAT Null"
sleep 0.0$RANDOM
done
}
function thread_insert {
local TIMELIMIT=$((SECONDS+$1))
while [ $SECONDS -lt "$1" ]; do
$CLICKHOUSE_CLIENT --query "INSERT INTO test VALUES (1, ['Hello'])"
sleep 0.0$RANDOM
done
}
export -f thread_select
export -f thread_insert
# Do randomized queries and expect nothing extraordinary happens.
TIMEOUT=10
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
wait
echo "Done"
$CLICKHOUSE_CLIENT --multiquery --query "DROP TABLE IF EXISTS test;"