mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-28 02:21:59 +00:00
99 lines
2.5 KiB
SQL
99 lines
2.5 KiB
SQL
-- Tags: no-parallel
|
|
-- no-parallel: creates a custom database schema and expects to use it exclusively
|
|
|
|
-- Create a test table and verify that the output of SHOW INDEXES is sane.
|
|
-- The matching of actual/expected results relies on the fact that the output of SHOW INDEX is sorted.
|
|
DROP TABLE IF EXISTS tbl;
|
|
CREATE TABLE tbl
|
|
(
|
|
a UInt64,
|
|
b UInt64,
|
|
c UInt64,
|
|
d UInt64,
|
|
e UInt64,
|
|
INDEX mm1_idx (a, c, d) TYPE minmax,
|
|
INDEX mm2_idx (c, d, e) TYPE minmax,
|
|
INDEX set_idx (e) TYPE set(100),
|
|
INDEX blf_idx (d, b) TYPE bloom_filter(0.8)
|
|
)
|
|
ENGINE = MergeTree
|
|
PRIMARY KEY (c, a);
|
|
|
|
SELECT '--- Aliases of SHOW INDEX';
|
|
SHOW INDEX FROM tbl;
|
|
SHOW INDEXES FROM tbl;
|
|
SHOW INDICES FROM tbl;
|
|
SHOW KEYS FROM tbl;
|
|
|
|
SELECT '--- EXTENDED';
|
|
SHOW EXTENDED INDEX FROM tbl;
|
|
--
|
|
SELECT '--- WHERE';
|
|
SHOW INDEX FROM tbl WHERE index_type LIKE '%minmax%';
|
|
|
|
SELECT '--- Check with weird table names';
|
|
|
|
DROP TABLE IF EXISTS `$4@^7`;
|
|
CREATE TABLE `$4@^7` (c String) ENGINE = MergeTree ORDER BY c;
|
|
SHOW INDEX FROM `$4@^7`;
|
|
DROP TABLE `$4@^7`;
|
|
|
|
DROP TABLE IF EXISTS NULL;
|
|
CREATE TABLE NULL (c String) ENGINE = MergeTree ORDER BY c;
|
|
SHOW INDEX FROM NULL;
|
|
DROP TABLE NULL;
|
|
|
|
DROP TABLE IF EXISTS `tab.with.dots`;
|
|
CREATE TABLE `tab.with.dots`
|
|
(
|
|
a UInt64,
|
|
b UInt64,
|
|
c UInt64,
|
|
d UInt64,
|
|
e UInt64,
|
|
INDEX mm1_idx (a, c, d) TYPE minmax,
|
|
INDEX mm2_idx (c, d, e) TYPE minmax,
|
|
INDEX set_idx (e) TYPE set(100),
|
|
INDEX blf_idx (d, b) TYPE bloom_filter(0.8)
|
|
)
|
|
ENGINE = MergeTree
|
|
PRIMARY KEY (c, a);
|
|
SHOW INDEX FROM `tab.with.dots`;
|
|
DROP TABLE `tab.with.dots`;
|
|
|
|
DROP DATABASE IF EXISTS `'`;
|
|
CREATE DATABASE `'`;
|
|
CREATE TABLE `'`.`'` (c String) ENGINE = MergeTree ORDER BY c;
|
|
SHOW INDEX FROM `'` FROM `'`;
|
|
SHOW INDEX FROM `'`.`'`; -- abbreviated form
|
|
DROP TABLE `'`.`'`;
|
|
DROP DATABASE `'`;
|
|
|
|
-- Create a table in a different database. Intentionally using the same table/column names as above so
|
|
-- we notice if something is buggy in the implementation of SHOW INDEX.
|
|
DROP DATABASE IF EXISTS database_123456789abcde;
|
|
CREATE DATABASE database_123456789abcde; -- pseudo-random database name
|
|
|
|
DROP TABLE IF EXISTS database_123456789abcde.tbl;
|
|
CREATE TABLE database_123456789abcde.tbl
|
|
(
|
|
a UInt64,
|
|
b UInt64,
|
|
INDEX mmi_idx b TYPE minmax
|
|
)
|
|
ENGINE = MergeTree
|
|
PRIMARY KEY a;
|
|
|
|
SELECT '--- Original table';
|
|
SHOW INDEX FROM tbl;
|
|
|
|
SELECT '--- Equally named table in other database';
|
|
SHOW INDEX FROM tbl FROM database_123456789abcde;
|
|
|
|
SELECT '--- Short form';
|
|
SHOW INDEX FROM database_123456789abcde.tbl;
|
|
|
|
DROP DATABASE database_123456789abcde;
|
|
|
|
DROP TABLE tbl;
|