ClickHouse/tests/queries/0_stateless/02570_fallback_from_async_insert.sh
2023-03-07 15:13:13 +00:00

54 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=../shell_config.sh
. "$CURDIR"/../shell_config.sh
message="INSERT query will be executed synchronously because it has too much data"
$CLICKHOUSE_CLIENT --query "DROP TABLE IF EXISTS t_async_insert_fallback"
$CLICKHOUSE_CLIENT --query "CREATE TABLE t_async_insert_fallback (a UInt64) ENGINE = Memory"
query_id_suffix="${CLICKHOUSE_DATABASE}_${RANDOM}"
# inlined data via native protocol
$CLICKHOUSE_CLIENT \
--query_id "0_$query_id_suffix" \
--async_insert 1 \
--async_insert_max_data_size 5 \
--query "INSERT INTO t_async_insert_fallback VALUES (1) (2) (3)"
# inlined data via http
${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}&query_id=1_$query_id_suffix&async_insert=1&async_insert_max_data_size=3" \
-d "INSERT INTO t_async_insert_fallback VALUES (4) (5) (6)"
# partially inlined partially sent via post data
${CLICKHOUSE_CURL} -sS -X POST \
"${CLICKHOUSE_URL}&query_id=2_$query_id_suffix&async_insert=1&async_insert_max_data_size=5&query=INSERT+INTO+t_async_insert_fallback+VALUES+(7)" \
--data-binary @- <<< "(8) (9)"
# partially inlined partially sent via post data
${CLICKHOUSE_CURL} -sS -X POST \
"${CLICKHOUSE_URL}&query_id=3_$query_id_suffix&async_insert=1&async_insert_max_data_size=5&query=INSERT+INTO+t_async_insert_fallback+VALUES+(10)+(11)" \
--data-binary @- <<< "(12)"
# sent via post data
${CLICKHOUSE_CURL} -sS -X POST \
"${CLICKHOUSE_URL}&query_id=4_$query_id_suffix&async_insert=1&async_insert_max_data_size=5&query=INSERT+INTO+t_async_insert_fallback+FORMAT+Values" \
--data-binary @- <<< "(13) (14) (15)"
# no limit for async insert size
${CLICKHOUSE_CURL} -sS -X POST \
"${CLICKHOUSE_URL}&query_id=5_$query_id_suffix&async_insert=1&query=INSERT+INTO+t_async_insert_fallback+FORMAT+Values" \
--data-binary @- <<< "(16) (17) (18)"
$CLICKHOUSE_CLIENT --query "SELECT * FROM t_async_insert_fallback ORDER BY a"
$CLICKHOUSE_CLIENT --query "SYSTEM FLUSH LOGS"
$CLICKHOUSE_CLIENT --query "
SELECT 'id_' || splitByChar('_', query_id)[1] AS id FROM system.text_log
WHERE query_id LIKE '%$query_id_suffix' AND message LIKE '%$message%'
ORDER BY id
"
$CLICKHOUSE_CLIENT --query "DROP TABLE IF EXISTS t_async_insert_fallback"