ClickHouse/tests/queries/0_stateless/02183_dictionary_no_attributes.sql
2022-12-13 12:48:14 +01:00

195 lines
5.0 KiB
SQL

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;
INSERT INTO 02183_range_dictionary_source_table VALUES(0, 0, 1);
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);
SELECT 'RangeHashedDictionary';
SELECT * FROM 02183_range_dictionary;
SELECT dictHas('02183_range_dictionary', 0, 0);
SELECT dictHas('02183_range_dictionary', 0, 2);
DROP DICTIONARY 02183_range_dictionary;
DROP TABLE 02183_range_dictionary_source_table;