ClickHouse/tests/queries/0_stateless/02724_show_indexes.sql

81 lines
2.1 KiB
MySQL
Raw Normal View History

2023-04-25 18:04:19 +00:00
-- 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;
2023-04-25 18:04:19 +00:00
SHOW KEYS FROM tbl;
SELECT '--- EXTENDED';
SHOW EXTENDED INDEX FROM tbl;
--
SELECT '--- WHERE';
SHOW INDEX FROM tbl WHERE index_type LIKE '%minmax%';
2023-05-05 11:03:47 +00:00
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 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 `'`;
2023-04-25 18:04:19 +00:00
-- 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;