mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-20 07:21:02 +00:00
65572a23fe
Due to the async nature of SYSTEM RELOAD DICTIONARY/DICTIONARIES the test can fail, if the reload will happen after the dictGet*(): .862801 [ 36 ] {61df55ee-4a17-4bf3-8cfb-9478490393c3} <Debug> executeQuery: (from [::1]:37422) SYSTEM RELOAD DICTIONARY `foo 1234.dict` .863681 [ 36 ] {cd55d9f9-d176-4b19-bc97-d25575da2d15} <Debug> executeQuery: (from [::1]:37422) SELECT query_count FROM system.dictionaries WHERE (database = 'foo 1234') AND ... .863678 [ 54 ] {} <Debug> executeQuery: (internal) SELECT `key`, `val` FROM `foo 1234`.`dict_data`; This is just a hotfix, long-term solution will be to make SYSTEM RELOAD DICTIONARY syncronous (by adding another command or making already existing). Refs: #7916
30 lines
1.2 KiB
SQL
30 lines
1.2 KiB
SQL
DROP DATABASE IF EXISTS dict_db_01036;
|
|
CREATE DATABASE dict_db_01036;
|
|
|
|
CREATE TABLE dict_db_01036.dict_data (key UInt64, val UInt64) Engine=Memory();
|
|
CREATE DICTIONARY dict_db_01036.dict
|
|
(
|
|
key UInt64 DEFAULT 0,
|
|
val UInt64 DEFAULT 10
|
|
)
|
|
PRIMARY KEY key
|
|
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'dict_data' PASSWORD '' DB 'dict_db_01036'))
|
|
LIFETIME(MIN 0 MAX 0)
|
|
LAYOUT(FLAT());
|
|
|
|
SELECT query_count FROM system.dictionaries WHERE database = 'dict_db_01036' AND name = 'dict';
|
|
SELECT dictGetUInt64('dict_db_01036.dict', 'val', toUInt64(0));
|
|
SELECT query_count FROM system.dictionaries WHERE database = 'dict_db_01036' AND name = 'dict';
|
|
|
|
SELECT 'SYSTEM RELOAD DICTIONARY';
|
|
SYSTEM RELOAD DICTIONARY 'dict_db_01036.dict';
|
|
SELECT sleep(0.3);
|
|
SELECT query_count FROM system.dictionaries WHERE database = 'dict_db_01036' AND name = 'dict';
|
|
SELECT dictGetUInt64('dict_db_01036.dict', 'val', toUInt64(0));
|
|
SELECT query_count FROM system.dictionaries WHERE database = 'dict_db_01036' AND name = 'dict';
|
|
|
|
SELECT 'CREATE DATABASE';
|
|
DROP DATABASE IF EXISTS empty_db_01036;
|
|
CREATE DATABASE empty_db_01036;
|
|
SELECT query_count FROM system.dictionaries WHERE database = 'dict_db_01036' AND name = 'dict';
|