mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-18 22:40:50 +00:00
81 lines
2.6 KiB
Bash
81 lines
2.6 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||
|
. $CURDIR/../shell_config.sh
|
||
|
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "DROP DATABASE IF EXISTS dictdb"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "CREATE DATABASE dictdb Engine = Ordinary"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "
|
||
|
CREATE TABLE dictdb.dict_invalidate
|
||
|
ENGINE = Memory AS
|
||
|
SELECT
|
||
|
122 as dummy,
|
||
|
toDateTime('2019-10-29 18:51:35') AS last_time
|
||
|
FROM system.one"
|
||
|
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "
|
||
|
CREATE DICTIONARY dictdb.invalidate
|
||
|
(
|
||
|
dummy UInt64,
|
||
|
two UInt8 EXPRESSION dummy
|
||
|
)
|
||
|
PRIMARY KEY dummy
|
||
|
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'dict_invalidate' DB 'dictdb' INVALIDATE_QUERY 'select max(last_time) from dictdb.dict_invalidate'))
|
||
|
LIFETIME(MIN 0 MAX 1)
|
||
|
LAYOUT(FLAT())"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "SELECT dictGetUInt8('dictdb.invalidate', 'two', toUInt64(122))"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "DROP TABLE dictdb.dict_invalidate"
|
||
|
|
||
|
function check_exception_detected()
|
||
|
{
|
||
|
|
||
|
query_result=`$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1`
|
||
|
|
||
|
while [ -z "$query_result" ]
|
||
|
do
|
||
|
query_result=`$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1`
|
||
|
sleep 0.1
|
||
|
done
|
||
|
}
|
||
|
|
||
|
|
||
|
export -f check_exception_detected;
|
||
|
timeout 10 bash -c check_exception_detected 2> /dev/null
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1 | grep -Eo "Table dictdb.dict_invalidate .* exist."
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "
|
||
|
CREATE TABLE dictdb.dict_invalidate
|
||
|
ENGINE = Memory AS
|
||
|
SELECT
|
||
|
133 as dummy,
|
||
|
toDateTime('2019-10-29 18:51:35') AS last_time
|
||
|
FROM system.one"
|
||
|
|
||
|
function check_exception_fixed()
|
||
|
{
|
||
|
query_result=`$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1`
|
||
|
|
||
|
while [ "$query_result" ]
|
||
|
do
|
||
|
query_result=`$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1`
|
||
|
sleep 0.1
|
||
|
done
|
||
|
}
|
||
|
|
||
|
export -f check_exception_fixed;
|
||
|
timeout 10 bash -c check_exception_fixed 2> /dev/null
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "SELECT last_exception FROM system.dictionaries WHERE database = 'dictdb' AND name = 'invalidate'" 2>&1
|
||
|
$CLICKHOUSE_CLIENT --query "SELECT dictGetUInt8('dictdb.invalidate', 'two', toUInt64(133))"
|
||
|
|
||
|
$CLICKHOUSE_CLIENT --query "DROP DATABASE IF EXISTS dictdb"
|