2022-01-22 20:01:56 +00:00
|
|
|
DROP TABLE IF EXISTS 02183_dictionary_test_table;
|
|
|
|
CREATE TABLE 02183_dictionary_test_table (id UInt64) ENGINE=TinyLog;
|
|
|
|
INSERT INTO 02183_dictionary_test_table VALUES (0), (1);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_dictionary_test_table;
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_flat_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_flat_dictionary
|
|
|
|
(
|
|
|
|
id UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
|
|
|
LAYOUT(FLAT())
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_dictionary_test_table'))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'FlatDictionary';
|
|
|
|
|
|
|
|
SELECT dictGet('02183_flat_dictionary', 'value', 0); -- {serverError 36}
|
|
|
|
SELECT dictHas('02183_flat_dictionary', 0);
|
|
|
|
SELECT dictHas('02183_flat_dictionary', 1);
|
|
|
|
SELECT dictHas('02183_flat_dictionary', 2);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_flat_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_flat_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_hashed_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_hashed_dictionary
|
|
|
|
(
|
|
|
|
id UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
|
|
|
LAYOUT(HASHED())
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_dictionary_test_table'))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'HashedDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_hashed_dictionary', 0);
|
|
|
|
SELECT dictHas('02183_hashed_dictionary', 1);
|
|
|
|
SELECT dictHas('02183_hashed_dictionary', 2);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_hashed_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_hashed_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_hashed_array_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_hashed_array_dictionary
|
|
|
|
(
|
|
|
|
id UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
|
|
|
LAYOUT(HASHED_ARRAY())
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_dictionary_test_table'))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'HashedArrayDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_hashed_array_dictionary', 0);
|
|
|
|
SELECT dictHas('02183_hashed_array_dictionary', 1);
|
|
|
|
SELECT dictHas('02183_hashed_array_dictionary', 2);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_hashed_array_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_hashed_array_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_cache_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_cache_dictionary
|
|
|
|
(
|
|
|
|
id UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
|
|
|
LAYOUT(CACHE(SIZE_IN_CELLS 10))
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_dictionary_test_table'))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'CacheDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_cache_dictionary', 0);
|
|
|
|
SELECT dictHas('02183_cache_dictionary', 1);
|
|
|
|
SELECT dictHas('02183_cache_dictionary', 2);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_cache_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_cache_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_direct_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_direct_dictionary
|
|
|
|
(
|
|
|
|
id UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY id
|
|
|
|
LAYOUT(HASHED())
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_dictionary_test_table'))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'DirectDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_direct_dictionary', 0);
|
|
|
|
SELECT dictHas('02183_direct_dictionary', 1);
|
|
|
|
SELECT dictHas('02183_direct_dictionary', 2);
|
|
|
|
|
|
|
|
SELECT * FROM 02183_direct_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_direct_dictionary;
|
|
|
|
|
|
|
|
DROP TABLE 02183_dictionary_test_table;
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS ip_trie_dictionary_source_table;
|
|
|
|
CREATE TABLE ip_trie_dictionary_source_table
|
|
|
|
(
|
|
|
|
prefix String
|
|
|
|
) ENGINE = TinyLog;
|
|
|
|
|
|
|
|
INSERT INTO ip_trie_dictionary_source_table VALUES ('127.0.0.0');
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_ip_trie_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_ip_trie_dictionary
|
|
|
|
(
|
|
|
|
prefix String
|
|
|
|
)
|
|
|
|
PRIMARY KEY prefix
|
|
|
|
SOURCE(CLICKHOUSE(TABLE 'ip_trie_dictionary_source_table'))
|
|
|
|
LAYOUT(IP_TRIE())
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'IPTrieDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_ip_trie_dictionary', tuple(IPv4StringToNum('127.0.0.0')));
|
|
|
|
SELECT dictHas('02183_ip_trie_dictionary', tuple(IPv4StringToNum('127.0.0.1')));
|
|
|
|
SELECT * FROM 02183_ip_trie_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_ip_trie_dictionary;
|
|
|
|
DROP TABLE ip_trie_dictionary_source_table;
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS 02183_polygon_dictionary_source_table;
|
|
|
|
CREATE TABLE 02183_polygon_dictionary_source_table
|
|
|
|
(
|
|
|
|
key Array(Array(Array(Tuple(Float64, Float64))))
|
|
|
|
) ENGINE = TinyLog;
|
|
|
|
|
|
|
|
INSERT INTO 02183_polygon_dictionary_source_table VALUES ([[[(0, 0), (0, 1), (1, 1), (1, 0)]]]);
|
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_polygon_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_polygon_dictionary
|
|
|
|
(
|
|
|
|
key Array(Array(Array(Tuple(Float64, Float64))))
|
|
|
|
)
|
|
|
|
PRIMARY KEY key
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_polygon_dictionary_source_table'))
|
|
|
|
LAYOUT(POLYGON(store_polygon_key_column 1))
|
|
|
|
LIFETIME(0);
|
|
|
|
|
|
|
|
SELECT 'PolygonDictionary';
|
|
|
|
|
|
|
|
SELECT dictHas('02183_polygon_dictionary', tuple(0.5, 0.5));
|
|
|
|
SELECT dictHas('02183_polygon_dictionary', tuple(1.5, 1.5));
|
|
|
|
SELECT * FROM 02183_polygon_dictionary;
|
|
|
|
|
|
|
|
DROP DICTIONARY 02183_polygon_dictionary;
|
|
|
|
DROP TABLE 02183_polygon_dictionary_source_table;
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS 02183_range_dictionary_source_table;
|
|
|
|
CREATE TABLE 02183_range_dictionary_source_table
|
|
|
|
(
|
|
|
|
key UInt64,
|
|
|
|
start UInt64,
|
|
|
|
end UInt64
|
|
|
|
)
|
|
|
|
ENGINE = TinyLog;
|
|
|
|
|
2022-01-23 17:20:37 +00:00
|
|
|
INSERT INTO 02183_range_dictionary_source_table VALUES(0, 0, 1);
|
2022-01-22 20:01:56 +00:00
|
|
|
|
|
|
|
DROP DICTIONARY IF EXISTS 02183_range_dictionary;
|
|
|
|
CREATE DICTIONARY 02183_range_dictionary
|
|
|
|
(
|
|
|
|
key UInt64,
|
|
|
|
start UInt64,
|
|
|
|
end UInt64
|
|
|
|
)
|
|
|
|
PRIMARY KEY key
|
|
|
|
SOURCE(CLICKHOUSE(TABLE '02183_range_dictionary_source_table'))
|
|
|
|
LAYOUT(RANGE_HASHED())
|
|
|
|
RANGE(MIN start MAX end)
|
|
|
|
LIFETIME(0);
|
|
|
|
|
2022-01-23 17:20:37 +00:00
|
|
|
SELECT 'RangeHashedDictionary';
|
|
|
|
SELECT * FROM 02183_range_dictionary;
|
|
|
|
SELECT dictHas('02183_range_dictionary', 0, 0);
|
|
|
|
SELECT dictHas('02183_range_dictionary', 0, 2);
|
2022-01-22 20:01:56 +00:00
|
|
|
|
|
|
|
DROP DICTIONARY 02183_range_dictionary;
|
|
|
|
DROP TABLE 02183_range_dictionary_source_table;
|