2021-01-01 20:15:43 +00:00
#!/usr/bin/env bash
2022-09-07 15:57:29 +00:00
# Tags: no-fasttest
2021-01-01 20:15:43 +00:00
set -e
CURDIR = $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd )
2021-01-03 15:45:08 +00:00
# shellcheck source=../shell_config.sh
2021-01-01 20:15:43 +00:00
. " $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;"
2022-05-28 17:20:32 +00:00
function thread_select {
2023-07-04 11:42:27 +00:00
local TIMELIMIT = $(( SECONDS+$1 ))
while [ $SECONDS -lt " $TIMELIMIT " ] ; do
2023-02-02 01:46:30 +00:00
$CLICKHOUSE_CLIENT --local_filesystem_read_method pread --query "SELECT * FROM test FORMAT Null"
2022-05-28 17:20:32 +00:00
sleep 0.0$RANDOM
done
2021-01-01 20:15:43 +00:00
}
2022-05-28 17:20:32 +00:00
function thread_insert {
2023-07-04 11:42:27 +00:00
local TIMELIMIT = $(( SECONDS+$1 ))
while [ $SECONDS -lt " $1 " ] ; do
2022-05-28 17:20:32 +00:00
$CLICKHOUSE_CLIENT --query "INSERT INTO test VALUES (1, ['Hello'])"
sleep 0.0$RANDOM
done
2021-01-01 20:15:43 +00:00
}
export -f thread_select
export -f thread_insert
2022-05-28 17:20:32 +00:00
2021-01-01 20:15:43 +00:00
# Do randomized queries and expect nothing extraordinary happens.
2023-07-04 11:42:27 +00:00
TIMEOUT = 10
2021-01-01 20:15:43 +00:00
2023-07-04 11:42:27 +00:00
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_select $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
thread_insert $TIMEOUT &
2021-01-01 20:15:43 +00:00
wait
echo "Done"
$CLICKHOUSE_CLIENT --multiquery --query "DROP TABLE IF EXISTS test;"