447 lines
17 KiB
Plaintext
447 lines
17 KiB
Plaintext
# TestShowCreateTableAutoRandom
|
|
drop table if exists auto_random_tbl1;
|
|
create table auto_random_tbl1 (a bigint primary key auto_random(3), b varchar(255));
|
|
show create table `auto_random_tbl1`;
|
|
drop table if exists auto_random_tbl2;
|
|
create table auto_random_tbl2 (a bigint auto_random primary key, b char);
|
|
show create table auto_random_tbl2;
|
|
drop table if exists auto_random_tbl3;
|
|
create table auto_random_tbl3 (a bigint /*T![auto_rand] auto_random */ primary key);
|
|
show create table auto_random_tbl3;
|
|
drop table if exists auto_random_tbl4;
|
|
create table auto_random_tbl4 (a bigint primary key auto_random(5), b varchar(255)) auto_random_base = 100;
|
|
show create table `auto_random_tbl4`;
|
|
drop table if exists auto_random_tbl5;
|
|
create table auto_random_tbl5 (a bigint auto_random primary key, b char) auto_random_base 50;
|
|
show create table auto_random_tbl5;
|
|
drop table if exists auto_random_tbl6;
|
|
create table auto_random_tbl6 (a bigint /*T![auto_rand] auto_random */ primary key) auto_random_base 200;
|
|
show create table auto_random_tbl6;
|
|
drop table if exists auto_random_tbl7;
|
|
create table auto_random_tbl7 (a bigint primary key auto_random(4, 32), b varchar(255));
|
|
show create table auto_random_tbl7;
|
|
|
|
# TestAutoIdCache
|
|
drop table if exists t;
|
|
create table t(a int auto_increment key) auto_id_cache = 10;
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(a int auto_increment unique, b int key) auto_id_cache 100;
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(a int key) auto_id_cache 5;
|
|
show create table t;
|
|
|
|
# TestIssue19507
|
|
drop table if exists t2;
|
|
CREATE TABLE t2(a int primary key, b int unique, c int not null, unique index (c));
|
|
SHOW INDEX IN t2;
|
|
CREATE INDEX t2_b_c_index ON t2 (b, c);
|
|
CREATE INDEX t2_c_b_index ON t2 (c, b);
|
|
SHOW INDEX IN t2;
|
|
|
|
# TestShowViewWithWindowFunction
|
|
drop table if exists test1;
|
|
CREATE TABLE `test1` (`id` int(0) NOT NULL,`num` int(0) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
create or replace view test1_v as(select id,row_number() over (partition by num) from test1);
|
|
desc test1_v;
|
|
|
|
# TestShowTTLOption
|
|
drop table if exists t;
|
|
create table t(created_at datetime) ttl = `created_at` + INTERVAL 100 YEAR;
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(created_at datetime) ttl = `created_at` + INTERVAL 100 YEAR ttl_enable = 'OFF';
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t (created_at datetime) TTL = created_at + INTERVAL 3.14159 HOUR_MINUTE;
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t (created_at datetime) TTL = created_at + INTERVAL "15:20" HOUR_MINUTE;
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t (created_at datetime) TTL = created_at + INTERVAL 100 YEAR TTL_JOB_INTERVAL = '1d';
|
|
show create table t;
|
|
|
|
# TestShowHistogramsInFlight
|
|
# show histograms_in_flight; // it is unstable.
|
|
|
|
# TestShowOpenTables
|
|
show open tables;
|
|
show open tables in executor__show;
|
|
|
|
# TestShowCreateViewDefiner
|
|
create or replace view v1 as select 1;
|
|
show create view v1;
|
|
drop view v1;
|
|
|
|
# TestShowCreateTable
|
|
drop database if exists test1;
|
|
drop database if exists test2;
|
|
drop table if exists t, t1;
|
|
create table t1(a int,b int);
|
|
drop view if exists v1;
|
|
create or replace definer=`root`@`127.0.0.1` view v1 as select * from t1;
|
|
show create table v1;
|
|
show create view v1;
|
|
drop view v1;
|
|
drop table t1;
|
|
drop view if exists v;
|
|
create or replace definer=`root`@`127.0.0.1` view v as select JSON_MERGE('{}', '{}') as col;
|
|
show create view v;
|
|
drop view if exists v;
|
|
drop table if exists t1;
|
|
create table t1(a int,b int);
|
|
create or replace definer=`root`@`127.0.0.1` view v1 as select avg(a),t1.* from t1 group by a;
|
|
show create view v1;
|
|
drop view v1;
|
|
create or replace definer=`root`@`127.0.0.1` view v1 as select a+b, t1.* , a as c from t1;
|
|
show create view v1;
|
|
drop table t1;
|
|
drop view v1;
|
|
create table t(c int, b int as (c + 1))ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
|
show create table `t`;
|
|
drop table t;
|
|
create table t(c int, b int as (c + 1) not null)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
|
|
show create table `t`;
|
|
drop table t;
|
|
create table t ( a char(10) charset utf8 collate utf8_bin, b char(10) as (rtrim(a)));
|
|
show create table `t`;
|
|
drop table t;
|
|
drop table if exists different_charset;
|
|
create table different_charset(ch1 varchar(10) charset utf8, ch2 varchar(10) charset binary);
|
|
show create table different_charset;
|
|
drop table if exists t;
|
|
create table `t` (
|
|
`a` timestamp not null default current_timestamp,
|
|
`b` timestamp(3) default current_timestamp(3),
|
|
`c` datetime default current_timestamp,
|
|
`d` datetime(4) default current_timestamp(4),
|
|
`e` varchar(20) default 'cUrrent_tImestamp',
|
|
`f` datetime(2) default current_timestamp(2) on update current_timestamp(2),
|
|
`g` timestamp(2) default current_timestamp(2) on update current_timestamp(2),
|
|
`h` date default current_date );
|
|
show create table `t`;
|
|
drop table t;
|
|
create table t (a int, b int) shard_row_id_bits = 4 pre_split_regions=3;
|
|
show create table `t`;
|
|
drop table t;
|
|
drop table if exists t1;
|
|
create table t1(c int unsigned default 0);
|
|
show create table `t1`;
|
|
drop table t1;
|
|
CREATE TABLE `log` (`LOG_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,`ROUND_ID` bigint(20) UNSIGNED NOT NULL,`USER_ID` int(10) UNSIGNED NOT NULL,`USER_IP` int(10) UNSIGNED DEFAULT NULL,`END_TIME` datetime NOT NULL,`USER_TYPE` int(11) DEFAULT NULL,`APP_ID` int(11) DEFAULT NULL,PRIMARY KEY (`LOG_ID`,`END_TIME`) NONCLUSTERED,KEY `IDX_EndTime` (`END_TIME`),KEY `IDX_RoundId` (`ROUND_ID`),KEY `IDX_UserId_EndTime` (`USER_ID`,`END_TIME`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=505488 PARTITION BY RANGE ( month(`end_time`) ) (PARTITION `p1` VALUES LESS THAN (2),PARTITION `p2` VALUES LESS THAN (3),PARTITION `p3` VALUES LESS THAN (4),PARTITION `p4` VALUES LESS THAN (5),PARTITION `p5` VALUES LESS THAN (6),PARTITION `p6` VALUES LESS THAN (7),PARTITION `p7` VALUES LESS THAN (8),PARTITION `p8` VALUES LESS THAN (9),PARTITION `p9` VALUES LESS THAN (10),PARTITION `p10` VALUES LESS THAN (11),PARTITION `p11` VALUES LESS THAN (12),PARTITION `p12` VALUES LESS THAN (MAXVALUE));
|
|
show create table log;
|
|
create table ttt4(a varchar(123) default null collate utf8mb4_unicode_ci)engine=innodb default charset=utf8mb4 collate=utf8mb4_unicode_ci;
|
|
show create table `ttt4`;
|
|
create table ttt5(a varchar(123) default null)engine=innodb default charset=utf8mb4 collate=utf8mb4_bin;
|
|
show create table `ttt5`;
|
|
drop table if exists t;
|
|
create table t(a int, b real);
|
|
alter table t add index expr_idx((a*b+1));
|
|
show create table t;
|
|
drop sequence if exists seq;
|
|
create sequence seq;
|
|
show create table seq;
|
|
drop table if exists binary_collate;
|
|
create table binary_collate(a varchar(10)) default collate=binary;
|
|
show create table binary_collate;
|
|
drop table if exists binary_collate;
|
|
create table binary_collate(a varchar(10)) default charset=binary collate=binary;
|
|
show create table binary_collate;
|
|
drop table if exists binary_collate;
|
|
create table binary_collate(a varchar(10)) default charset=utf8mb4 collate=utf8mb4_bin;
|
|
show create table binary_collate;
|
|
drop table if exists default_num;
|
|
create table default_num(a int default 11);
|
|
show create table default_num;
|
|
drop table if exists default_varchar;
|
|
create table default_varchar(a varchar(10) default "haha");
|
|
show create table default_varchar;
|
|
drop table if exists default_sequence;
|
|
create table default_sequence(a int default nextval(seq));
|
|
show create table default_sequence;
|
|
set @@foreign_key_checks=0;
|
|
DROP TABLE IF EXISTS parent, child;
|
|
CREATE TABLE child (id INT NOT NULL PRIMARY KEY auto_increment, parent_id INT NOT NULL, INDEX par_ind (parent_id), CONSTRAINT child_ibfk_1 FOREIGN KEY (parent_id) REFERENCES parent(id));
|
|
CREATE TABLE parent ( id INT NOT NULL PRIMARY KEY auto_increment );
|
|
show create table child;
|
|
DROP TABLE child;
|
|
CREATE TABLE child (id INT NOT NULL PRIMARY KEY auto_increment, parent_id INT NOT NULL, INDEX par_ind (parent_id), CONSTRAINT child_ibfk_1 FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE RESTRICT ON UPDATE CASCADE);
|
|
show create table child;
|
|
create database test1;
|
|
create database test2;
|
|
create table test1.t1 (id int key, b int, index(b));
|
|
create table test2.t2 (id int key, b int, foreign key fk(b) references test1.t1(id));
|
|
show create table test2.t2;
|
|
drop database if exists test1;
|
|
drop database if exists test2;
|
|
|
|
drop table if exists t;
|
|
create table t(a int, b char(10) as ('a'));
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(a int, b char(10) as (_utf8'a'));
|
|
show create table t;
|
|
DROP TABLE IF EXISTS t;
|
|
create table t (id int, name varchar(10), unique index idx (id)) partition by list (id) (
|
|
partition p0 values in (3,5,6,9,17),
|
|
partition p1 values in (1,2,10,11,19,20),
|
|
partition p2 values in (4,12,13,14,18),
|
|
partition p3 values in (7,8,15,16,null)
|
|
);
|
|
show create table t;
|
|
DROP TABLE IF EXISTS t;
|
|
create table t (id int, name varchar(10), unique index idx (id)) partition by list columns (id) (
|
|
partition p0 values in (3,5,6,9,17),
|
|
partition p1 values in (1,2,10,11,19,20),
|
|
partition p2 values in (4,12,13,14,18),
|
|
partition p3 values in (7,8,15,16,null)
|
|
);
|
|
show create table t;
|
|
DROP TABLE IF EXISTS t;
|
|
create table t (id int, name varchar(10), unique index idx (id, name)) partition by list columns (id, name) (
|
|
partition p0 values in ((3, '1'), (5, '5')),
|
|
partition p1 values in ((1, '1')));
|
|
show create table t;
|
|
DROP TABLE IF EXISTS t;
|
|
create table t (id int primary key, v varchar(255) not null, key idx_v (v) comment 'foo\'bar');
|
|
show create table t;
|
|
CREATE TABLE `thash` (
|
|
`id` bigint unsigned NOT NULL,
|
|
`data` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
)
|
|
PARTITION BY HASH (`id`)
|
|
(PARTITION pEven COMMENT = "Even ids",
|
|
PARTITION pOdd COMMENT = "Odd ids");
|
|
show create table `thash`;
|
|
drop table if exists `thash`;
|
|
CREATE TABLE `thash` (
|
|
`id` bigint unsigned NOT NULL,
|
|
`data` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
)
|
|
PARTITION BY HASH (`id`);
|
|
show create table `thash`;
|
|
drop table if exists t;
|
|
create table t(a int primary key, b varchar(20) default '\\');
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(a set('a', 'b') charset binary,b enum('a', 'b') charset ascii);
|
|
show create table t;
|
|
drop table if exists t;
|
|
create table t(a bit default (rand()));
|
|
show create table t;
|
|
drop table if exists t;
|
|
-- error 1654
|
|
create table t (a varchar(255) character set ascii) partition by range columns (a) (partition p values less than (0xff));
|
|
create table t (a varchar(255) character set ascii) partition by range columns (a) (partition p values less than (0x7f));
|
|
show create table t;
|
|
set @@foreign_key_checks=default;
|
|
|
|
# TestShowErrors
|
|
create table if not exists show_errors (a int);
|
|
-- error 1050
|
|
create table show_errors (a int);
|
|
show errors;
|
|
select 1;
|
|
-- error 1064
|
|
create invalid;
|
|
show errors;
|
|
|
|
# TestIssue3641
|
|
connect (conn1, localhost, root,,);
|
|
-- error 1046
|
|
show tables;
|
|
-- error 1046
|
|
show tables;
|
|
connection default;
|
|
disconnect conn1;
|
|
|
|
# TestShowSlow
|
|
# The test result is volatile, because
|
|
# 1. Slow queries is stored in domain, which may be affected by other tests.
|
|
# 2. Collecting slow queries is a asynchronous process, check immediately may not get the expected result.
|
|
# 3. Make slow query like "select sleep(1)" would slow the CI.
|
|
# So, we just cover the code but do not check the result.
|
|
--disable_result_log
|
|
admin show slow recent 3;
|
|
admin show slow top 3;
|
|
admin show slow top internal 3;
|
|
admin show slow top all 3;
|
|
--enable_result_log
|
|
|
|
# TestShowCreateStmtIgnoreLocalTemporaryTables
|
|
drop table if exists v1;
|
|
drop view if exists v1;
|
|
drop sequence if exists seq1;
|
|
drop table if exists seq1;
|
|
|
|
## SHOW CREATE VIEW ignores local temporary table with the same name
|
|
create view v1 as select 1;
|
|
create temporary table v1 (a int);
|
|
show create table v1;
|
|
drop view v1;
|
|
-- error 1146
|
|
show create view v1;
|
|
|
|
## SHOW CREATE SEQUENCE ignores local temporary table with the same name
|
|
drop view if exists seq1;
|
|
create sequence seq1;
|
|
create temporary table seq1 (a int);
|
|
show create sequence seq1;
|
|
drop sequence seq1;
|
|
-- error 1146
|
|
show create sequence seq1;
|
|
|
|
# TestShowBuiltin
|
|
show builtins;
|
|
|
|
# TestShowPerformanceSchema
|
|
# for Issue 19231
|
|
# Ideally we should create a new performance_schema table here with indices that we run the tests on.
|
|
# However, its not possible to create a new performance_schema table since its a special in memory table.
|
|
# Instead the test below uses the default index on the table.
|
|
SHOW INDEX FROM performance_schema.events_statements_summary_by_digest;
|
|
|
|
# TestShowTemporaryTable
|
|
drop table if exists t1, t3, t4, t5, t6, t7;
|
|
create global temporary table t1 (id int) on commit delete rows;
|
|
create global temporary table t3 (i int primary key, j int) on commit delete rows;
|
|
|
|
## For issue https://github.com/pingcap/tidb/issues/24752
|
|
show create table t1;
|
|
|
|
## No panic, fix issue https://github.com/pingcap/tidb/issues/24788
|
|
show create table t3;
|
|
|
|
## Verify that the `show create table` result can be used to build the table.
|
|
CREATE GLOBAL TEMPORARY TABLE `t4` (
|
|
`i` int(11) NOT NULL,
|
|
`j` int(11) DEFAULT NULL,
|
|
PRIMARY KEY (`i`) /*T![clustered_index] CLUSTERED */
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ON COMMIT DELETE ROWS;
|
|
|
|
## Cover auto increment column.
|
|
CREATE GLOBAL TEMPORARY TABLE t5 (
|
|
id int(11) NOT NULL AUTO_INCREMENT,
|
|
b int(11) NOT NULL,
|
|
pad varbinary(255) DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
KEY b (b)) ON COMMIT DELETE ROWS;
|
|
show create table t5;
|
|
create temporary table t6 (i int primary key, j int);
|
|
show create table t6;
|
|
create temporary table t7 (i int primary key auto_increment, j int);
|
|
begin;
|
|
insert into t7 (j) values (14);
|
|
insert into t7 (j) values (24);
|
|
select * from t7;
|
|
show create table t7;
|
|
commit;
|
|
|
|
# TestShowCachedTable
|
|
drop table if exists t1;
|
|
create table t1 (id int);
|
|
alter table t1 cache;
|
|
show create table t1;
|
|
select create_options from information_schema.tables where table_schema = 'executor__show' and table_name = 't1';
|
|
alter table t1 nocache;
|
|
show create table t1;
|
|
select create_options from information_schema.tables where table_schema = 'executor__show' and table_name = 't1';
|
|
|
|
# TestShowDatabasesLike
|
|
DROP DATABASE IF EXISTS `TEST_$1`;
|
|
DROP DATABASE IF EXISTS `test_$2`;
|
|
CREATE DATABASE `TEST_$1`;
|
|
CREATE DATABASE `test_$2`;
|
|
SHOW DATABASES LIKE 'TEST_$%';
|
|
SHOW DATABASES LIKE 'test_$%';
|
|
|
|
# TestShowCollationsLike
|
|
SHOW COLLATION LIKE 'UTF8MB4_BI%';
|
|
SHOW COLLATION LIKE 'utf8mb4_bi%';
|
|
|
|
# TestShowDatabasesInfoSchemaFirst
|
|
drop user if exists 'show';
|
|
drop database if exists AAAA;
|
|
drop database if exists BBBB;
|
|
create user 'show'@'%';
|
|
|
|
connect (conn1, localhost, show,,);
|
|
show databases;
|
|
|
|
connection default;
|
|
create database AAAA;
|
|
create database BBBB;
|
|
grant select on AAAA.* to 'show'@'%';
|
|
grant select on BBBB.* to 'show'@'%';
|
|
|
|
connection conn1;
|
|
show databases;
|
|
|
|
connection default;
|
|
disconnect conn1;
|
|
drop user 'show'@'%';
|
|
drop database AAAA;
|
|
drop database BBBB;
|
|
|
|
# TestShowTableStatusLike
|
|
DROP table IF EXISTS `T1`;
|
|
CREATE table `T1` (a int);
|
|
## ignore create time
|
|
-- replace_column 12 1
|
|
SHOW table status LIKE 't1';
|
|
DROP table IF EXISTS `Li_1`;
|
|
DROP table IF EXISTS `li_2`;
|
|
CREATE table `Li_1` (a int);
|
|
CREATE table `li_2` (a int);
|
|
-- replace_column 12 1
|
|
SHOW table status LIKE 'li%';
|
|
|
|
# TestShowPasswordVariable
|
|
SET GLOBAL authentication_ldap_sasl_bind_root_pwd = '';
|
|
show variables like 'authentication_ldap_sasl_bind_root_pwd';
|
|
SELECT current_value FROM information_schema.variables_info WHERE VARIABLE_NAME LIKE 'authentication_ldap_sasl_bind_root_pwd';
|
|
SET GLOBAL authentication_ldap_sasl_bind_root_pwd = password;
|
|
show variables like 'authentication_ldap_sasl_bind_root_pwd';
|
|
SELECT current_value FROM information_schema.variables_info WHERE VARIABLE_NAME LIKE 'authentication_ldap_sasl_bind_root_pwd';
|
|
SET GLOBAL authentication_ldap_simple_bind_root_pwd = '';
|
|
show variables like 'authentication_ldap_simple_bind_root_pwd';
|
|
SELECT current_value FROM information_schema.variables_info WHERE VARIABLE_NAME LIKE 'authentication_ldap_simple_bind_root_pwd';
|
|
SET GLOBAL authentication_ldap_simple_bind_root_pwd = password;
|
|
show variables like 'authentication_ldap_simple_bind_root_pwd';
|
|
SELECT current_value FROM information_schema.variables_info WHERE VARIABLE_NAME LIKE 'authentication_ldap_simple_bind_root_pwd';
|
|
SET GLOBAL authentication_ldap_simple_bind_root_pwd = default;
|
|
SET GLOBAL authentication_ldap_sasl_bind_root_pwd = default;
|
|
|
|
# TestShowForNewCollations
|
|
show collation;
|
|
select * from information_schema.COLLATIONS;
|
|
show character set like '%utf8mb4%';
|
|
select * from information_schema.COLLATIONS where IS_DEFAULT='Yes' and CHARACTER_SET_NAME='utf8mb4';
|
|
set @@session.default_collation_for_utf8mb4='utf8mb4_0900_ai_ci';
|
|
show variables like 'default_collation_for_utf8mb4';
|
|
show collation;
|
|
select * from information_schema.COLLATIONS;
|
|
show character set like '%utf8mb4%';
|
|
select * from information_schema.COLLATIONS where IS_DEFAULT='Yes' and CHARACTER_SET_NAME='utf8mb4';
|
|
set @@session.default_collation_for_utf8mb4=default;
|
|
|
|
# TestShowPreSplitRegionsForAutoRandomTables
|
|
DROP TABLE IF EXISTS `t`;
|
|
CREATE TABLE `t` (a BIGINT PRIMARY KEY AUTO_RANDOM(2), b INT) PRE_SPLIT_REGIONS=4;
|
|
SHOW CREATE TABLE `t`;
|
|
|
|
# TestShowCreateTableWithPartialIndex
|
|
set names utf8mb4 collate utf8mb4_bin;
|
|
drop table if exists t;
|
|
create table t (id int primary key, col int, key(col) where col > 100);
|
|
show create table t;
|
|
drop table t;
|
|
create table t (id int primary key, col varchar(255), key(col) where col > "100");
|
|
show create table t;
|
|
drop table t;
|
|
set names utf8mb4 collate utf8mb4_general_ci;
|