1384 lines
32 KiB
Plaintext
1384 lines
32 KiB
Plaintext
################################################################################
|
||
#
|
||
# NOTICE:
|
||
#
|
||
# This file unfortunately contains characters in various different encodings.
|
||
# Be careful when editing this file to ensure that you (or your editor) do
|
||
# not change things (such as encodings) on lines that you did not mean to
|
||
# modify.
|
||
#
|
||
################################################################################
|
||
|
||
# Result differences depending on FS case sensitivity.
|
||
if (!$require_case_insensitive_file_system)
|
||
{
|
||
--source include/have_case_sensitive_file_system.inc
|
||
}
|
||
|
||
#
|
||
# Test of some show commands
|
||
#
|
||
|
||
--disable_warnings
|
||
drop table if exists t1,t2;
|
||
drop table if exists t1aa,t2aa;
|
||
drop database if exists mysqltest;
|
||
drop database if exists mysqltest1;
|
||
|
||
delete from mysql.user where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
delete from mysql.db where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
flush privileges;
|
||
--enable_warnings
|
||
--character_set latin1
|
||
|
||
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
|
||
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
check table t1 fast;
|
||
check table t1 fast;
|
||
check table t1 changed;
|
||
insert into t1 values (5,5,5);
|
||
check table t1 changed;
|
||
check table t1 medium;
|
||
check table t1 extended;
|
||
analyze table t1;
|
||
--replace_result 4225 # 4097 #
|
||
show index from t1;
|
||
--disable_metadata
|
||
--error ER_DUP_ENTRY
|
||
insert into t1 values (5,5,5);
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
optimize table t1;
|
||
--disable_metadata
|
||
optimize table t1;
|
||
drop table t1;
|
||
|
||
# show variables;
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
show variables like "wait_timeout%";
|
||
show variables like "WAIT_timeout%";
|
||
show variables like "this_doesn't_exists%";
|
||
--replace_result 4225 # 4097 #
|
||
show table status from test like "this_doesn't_exists%";
|
||
--replace_result 4225 # 4097 #
|
||
show databases;
|
||
--replace_result 4225 # 4097 #
|
||
show databases like "test%";
|
||
--disable_metadata
|
||
|
||
#
|
||
# Test of SHOW CREATE
|
||
#
|
||
|
||
create temporary table t1 (a int not null);
|
||
show create table t1;
|
||
alter table t1 rename t2;
|
||
show create table t2;
|
||
drop table t2;
|
||
|
||
create table t1 (
|
||
test_set set( 'val1', 'val2', 'val3' ) not null default '',
|
||
name char(20) default 'O''Brien' comment 'O''Brien as default',
|
||
c int not null comment 'int column',
|
||
`c-b` int comment 'name with a minus',
|
||
`space 2` int comment 'name with a space'
|
||
) comment = 'it\'s a table' ;
|
||
show create table t1;
|
||
set sql_quote_show_create=0;
|
||
show create table t1;
|
||
set sql_quote_show_create=1;
|
||
show full columns from t1;
|
||
drop table t1;
|
||
|
||
create table t1 (a int not null, unique aa (a));
|
||
show create table t1;
|
||
drop table t1;
|
||
create table t1 (a int not null, primary key (a));
|
||
show create table t1;
|
||
drop table t1;
|
||
|
||
flush tables;
|
||
#
|
||
# We will see some of new DD tables being opened
|
||
# after flush tables. These tables were open when we write to
|
||
# mysql.general_log.
|
||
#
|
||
--sorted_result
|
||
show open tables;
|
||
create table t1(n int);
|
||
insert into t1 values (1);
|
||
--sorted_result
|
||
show open tables;
|
||
drop table t1;
|
||
|
||
create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0), h float(3,2), i float(3,0));
|
||
show columns from t1;
|
||
show full columns from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Check metadata
|
||
#
|
||
create table t1 (a int not null);
|
||
create table t2 select max(a) from t1;
|
||
show columns from t2;
|
||
drop table t1,t2;
|
||
|
||
# Check auto conversions of types
|
||
|
||
create table t1 (c decimal, d double, f float, r real);
|
||
show columns from t1;
|
||
drop table t1;
|
||
|
||
create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
|
||
show columns from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test for Bug#2593 SHOW CREATE TABLE doesn't properly double quotes
|
||
#
|
||
|
||
SET @old_sql_mode= @@sql_mode, sql_mode= '';
|
||
SET @old_sql_quote_show_create= @@sql_quote_show_create, sql_quote_show_create= OFF;
|
||
|
||
CREATE TABLE ```ab``cd``` (i INT);
|
||
SHOW CREATE TABLE ```ab``cd```;
|
||
DROP TABLE ```ab``cd```;
|
||
|
||
CREATE TABLE ```ab````cd``` (i INT);
|
||
SHOW CREATE TABLE ```ab````cd```;
|
||
DROP TABLE ```ab````cd```;
|
||
|
||
CREATE TABLE ```a` (i INT);
|
||
SHOW CREATE TABLE ```a`;
|
||
DROP TABLE ```a`;
|
||
|
||
CREATE TABLE `a.1` (i INT);
|
||
SHOW CREATE TABLE `a.1`;
|
||
DROP TABLE `a.1`;
|
||
|
||
SET sql_mode= 'ANSI_QUOTES';
|
||
|
||
CREATE TABLE """a" (i INT);
|
||
SHOW CREATE TABLE """a";
|
||
DROP TABLE """a";
|
||
|
||
# to test quotes around keywords.. :
|
||
|
||
SET sql_mode= '';
|
||
SET sql_quote_show_create= OFF;
|
||
|
||
CREATE TABLE t1 (i INT);
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
CREATE TABLE `table` (i INT);
|
||
SHOW CREATE TABLE `table`;
|
||
DROP TABLE `table`;
|
||
|
||
SET sql_quote_show_create= @old_sql_quote_show_create;
|
||
SET sql_mode= @old_sql_mode;
|
||
|
||
#
|
||
# Test for Bug#2719 Heap tables status shows wrong or missing data.
|
||
#
|
||
|
||
select @@max_heap_table_size;
|
||
|
||
CREATE TABLE t1 (
|
||
a int(11) default NULL,
|
||
KEY a USING BTREE (a)
|
||
) ENGINE=HEAP;
|
||
|
||
CREATE TABLE t2 (
|
||
b int(11) default NULL,
|
||
index(b)
|
||
) ENGINE=HEAP;
|
||
|
||
CREATE TABLE t3 (
|
||
a int(11) default NULL,
|
||
b int(11) default NULL,
|
||
KEY a USING BTREE (a),
|
||
index(b)
|
||
) ENGINE=HEAP;
|
||
|
||
insert into t1 values (1),(2);
|
||
insert into t2 values (1),(2);
|
||
insert into t3 values (1,1),(2,2);
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
show table status;
|
||
insert into t1 values (3),(4);
|
||
insert into t2 values (3),(4);
|
||
insert into t3 values (3,3),(4,4);
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
show table status;
|
||
delete from t1 where a=3;
|
||
delete from t2 where b=3;
|
||
delete from t3 where a=3;
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 10 # 12 #
|
||
show table status;
|
||
truncate table t1;
|
||
truncate table t2;
|
||
truncate table t3;
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
show table status;
|
||
insert into t1 values (5);
|
||
insert into t2 values (5);
|
||
insert into t3 values (5,5);
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
show table status;
|
||
delete from t1 where a=5;
|
||
delete from t2 where b=5;
|
||
delete from t3 where a=5;
|
||
analyze table t1, t2, t3;
|
||
--replace_column 6 # 7 # 8 # 9 # 10 # 12 #
|
||
show table status;
|
||
|
||
drop table t1, t2, t3;
|
||
|
||
#
|
||
# Test for Bug#3342 SHOW CREATE DATABASE seems to require DROP privilege
|
||
#
|
||
|
||
create database mysqltest;
|
||
show create database mysqltest;
|
||
create table mysqltest.t1(a int);
|
||
insert into mysqltest.t1 values(1);
|
||
create user mysqltest_1@localhost, mysqltest_2@localhost, mysqltest_3@localhost;
|
||
grant select on `mysqltest`.* to mysqltest_1@localhost;
|
||
grant usage on `mysqltest`.* to mysqltest_2@localhost;
|
||
grant drop on `mysqltest`.* to mysqltest_3@localhost;
|
||
|
||
connect (con1,localhost,mysqltest_1,,mysqltest);
|
||
connection con1;
|
||
select * from t1;
|
||
show create database mysqltest;
|
||
--error ER_TABLEACCESS_DENIED_ERROR
|
||
drop table t1;
|
||
--error ER_DBACCESS_DENIED_ERROR
|
||
drop database mysqltest;
|
||
disconnect con1;
|
||
--source include/wait_until_disconnected.inc
|
||
|
||
connect (con2,localhost,mysqltest_2,,test);
|
||
connection con2;
|
||
--error ER_TABLEACCESS_DENIED_ERROR
|
||
select * from mysqltest.t1;
|
||
--error ER_DBACCESS_DENIED_ERROR
|
||
show create database mysqltest;
|
||
--error ER_TABLEACCESS_DENIED_ERROR
|
||
drop table mysqltest.t1;
|
||
--error ER_DBACCESS_DENIED_ERROR
|
||
drop database mysqltest;
|
||
disconnect con2;
|
||
--source include/wait_until_disconnected.inc
|
||
|
||
connect (con3,localhost,mysqltest_3,,test);
|
||
connection con3;
|
||
--error ER_TABLEACCESS_DENIED_ERROR
|
||
select * from mysqltest.t1;
|
||
show create database mysqltest;
|
||
drop table mysqltest.t1;
|
||
drop database mysqltest;
|
||
disconnect con3;
|
||
--source include/wait_until_disconnected.inc
|
||
|
||
connection default;
|
||
set names binary;
|
||
delete from mysql.user
|
||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
delete from mysql.db
|
||
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
|
||
flush privileges;
|
||
|
||
# Test for Bug#9439 Reporting wrong datatype for sub_part on show index
|
||
CREATE TABLE t1(
|
||
field1 text NOT NULL,
|
||
PRIMARY KEY(field1(750))
|
||
);
|
||
--enable_metadata
|
||
--replace_result 4225 # 4097 #
|
||
show index from t1;
|
||
--disable_metadata
|
||
drop table t1;
|
||
|
||
# Test for Bug#11635 mysqldump exports TYPE instead of USING for HASH
|
||
create table t1 (
|
||
c1 int NOT NULL,
|
||
c2 int NOT NULL,
|
||
PRIMARY KEY USING HASH (c1),
|
||
INDEX USING BTREE(c2)
|
||
);
|
||
SHOW CREATE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Bug#12183 SHOW OPEN TABLES behavior doesn't match grammar
|
||
# First we close all open tables with FLUSH tables and then we open some.
|
||
#
|
||
|
||
--echo
|
||
--echo # Bug#12183 SHOW OPEN TABLES behavior doesn't match grammar.
|
||
--echo
|
||
|
||
# NOTE: SHOW OPEN TABLES does not sort result list by database or table names.
|
||
# Tables are listed in the order they were opened. We can not use the system
|
||
# database (mysql) for the test here, because we have no control over the order
|
||
# of opening tables in it. Consequently, we can not use 'SHOW OPEN TABLES'.
|
||
|
||
--disable_warnings
|
||
DROP DATABASE IF EXISTS mysqltest1;
|
||
--enable_warnings
|
||
|
||
CREATE DATABASE mysqltest1;
|
||
use mysqltest1;
|
||
|
||
--echo
|
||
|
||
CREATE TABLE t1(a INT);
|
||
CREATE TABLE t2(a INT);
|
||
|
||
--echo
|
||
|
||
--disable_ps_protocol
|
||
FLUSH TABLES;
|
||
|
||
--echo
|
||
|
||
SELECT 1 FROM t1;
|
||
SELECT 1 FROM t2;
|
||
|
||
--echo
|
||
|
||
--sorted_result
|
||
SHOW OPEN TABLES FROM mysqltest1;
|
||
|
||
--echo
|
||
|
||
SHOW OPEN TABLES FROM mysqltest1 LIKE 'z%';
|
||
|
||
--echo
|
||
|
||
SHOW OPEN TABLES FROM mysqltest1 LIKE 't1%';
|
||
|
||
--echo
|
||
|
||
SHOW OPEN TABLES FROM mysqltest1 LIKE '%1%';
|
||
|
||
--echo
|
||
|
||
FLUSH TABLES;
|
||
--enable_ps_protocol
|
||
|
||
--echo
|
||
|
||
DROP DATABASE mysqltest1;
|
||
use test;
|
||
|
||
--echo
|
||
|
||
#
|
||
# Bug#12591 SHOW TABLES FROM dbname produces wrong error message
|
||
#
|
||
--error ER_BAD_DB_ERROR
|
||
SHOW TABLES FROM non_existing_database;
|
||
|
||
--echo End of 4.1 tests
|
||
|
||
#
|
||
# Check that SHOW TABLES and SHOW COLUMNS give a error if there is no
|
||
# referenced database and table respectively.
|
||
#
|
||
--error ER_BAD_DB_ERROR
|
||
SHOW TABLES FROM no_such_database;
|
||
--error ER_NO_SUCH_TABLE
|
||
SHOW COLUMNS FROM no_such_table;
|
||
|
||
|
||
#
|
||
# Bug#19764 SHOW commands end up in the slow log as table scans
|
||
#
|
||
SET GLOBAL EVENT_SCHEDULER = OFF;
|
||
--source include/no_running_event_scheduler.inc
|
||
CREATE TABLE t1 (f1 INT, f2 INT);
|
||
INSERT INTO t1 VALUES(10, 20);
|
||
flush status;
|
||
show status like 'slow_queries';
|
||
show tables;
|
||
show status like 'slow_queries';
|
||
# Table scan query, to ensure that slow_queries does still get incremented
|
||
# (mysqld is started with --log-queries-not-using-indexes)
|
||
select 1 from t1 limit 1;
|
||
show status like 'slow_queries';
|
||
DROP TABLE t1;
|
||
|
||
create table t1 (a int);
|
||
create trigger tr1 before insert on t1 for each row
|
||
begin
|
||
end;
|
||
create view v1 as select a from t1;
|
||
create procedure p1()
|
||
begin
|
||
end;
|
||
create function f1()
|
||
returns int
|
||
return 0;
|
||
create event e1 on schedule every 1 year starts now()
|
||
ends date_add(now(), interval 5 hour) do
|
||
begin
|
||
end;
|
||
|
||
--disable_result_log
|
||
flush status;
|
||
show databases;
|
||
show tables;
|
||
show events;
|
||
show table status;
|
||
--sorted_result
|
||
show open tables;
|
||
show plugins;
|
||
show columns in t1;
|
||
show slave hosts;
|
||
show keys in t1;
|
||
show storage engines;
|
||
show privileges;
|
||
show count(*) warnings;
|
||
show count(*) errors;
|
||
show warnings;
|
||
show status;
|
||
show processlist;
|
||
show variables;
|
||
show charset;
|
||
show collation;
|
||
show grants;
|
||
show create database test;
|
||
show create table t1;
|
||
show create view v1;
|
||
show master status;
|
||
show slave status;
|
||
show create procedure p1;
|
||
show create function f1;
|
||
show create trigger tr1;
|
||
show procedure status;
|
||
show create event e1;
|
||
--enable_result_log
|
||
|
||
show status like 'slow_queries';
|
||
|
||
drop view v1;
|
||
drop table t1;
|
||
drop procedure p1;
|
||
drop function f1;
|
||
drop event e1;
|
||
SET GLOBAL EVENT_SCHEDULER = ON;
|
||
--source include/running_event_scheduler.inc
|
||
|
||
#
|
||
# Bug#10491 Server returns data as charset binary SHOW CREATE TABLE or SELECT
|
||
# FROM I_S.
|
||
#
|
||
|
||
#
|
||
# Part 1: check that meta-data specifies not-binary character set.
|
||
#
|
||
|
||
# Ensure that all needed objects are dropped.
|
||
|
||
--disable_warnings
|
||
DROP DATABASE IF EXISTS mysqltest1;
|
||
DROP TABLE IF EXISTS t1;
|
||
DROP VIEW IF EXISTS v1;
|
||
DROP PROCEDURE IF EXISTS p1;
|
||
DROP FUNCTION IF EXISTS f1;
|
||
--enable_warnings
|
||
|
||
# Create objects.
|
||
|
||
CREATE DATABASE mysqltest1;
|
||
|
||
CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
|
||
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
|
||
|
||
CREATE VIEW v1 AS SELECT 1;
|
||
|
||
CREATE PROCEDURE p1() SELECT 1;
|
||
|
||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||
|
||
|
||
# Test.
|
||
|
||
set names utf8;
|
||
|
||
--echo -- Here we enable metadata just to check that the collation of the
|
||
--echo -- resultset is non-binary for string type. This should be changed
|
||
--echo -- after Bug#29394 is implemented.
|
||
|
||
--enable_metadata
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CHARACTER SET LIKE 'utf8';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW COLLATION LIKE 'latin1_bin';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE DATABASE mysqltest1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 4225 # 4097 #
|
||
SHOW DATABASES LIKE 'mysqltest1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE TABLE t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 4225 # 4097 #
|
||
SHOW INDEX FROM t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 20613 # 20609 # 20485 # 20481 #
|
||
SELECT
|
||
TABLE_CATALOG,
|
||
TABLE_SCHEMA,
|
||
TABLE_NAME,
|
||
TABLE_TYPE,
|
||
ENGINE,
|
||
ROW_FORMAT,
|
||
TABLE_COLLATION,
|
||
CREATE_OPTIONS,
|
||
TABLE_COMMENT
|
||
FROM INFORMATION_SCHEMA.TABLES
|
||
WHERE table_name = 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 20613 # 20609 # 20485 # 20481 #
|
||
SELECT
|
||
TABLE_CATALOG,
|
||
TABLE_SCHEMA,
|
||
TABLE_NAME,
|
||
COLUMN_NAME,
|
||
COLUMN_DEFAULT,
|
||
IS_NULLABLE,
|
||
DATA_TYPE,
|
||
CHARACTER_SET_NAME,
|
||
COLLATION_NAME,
|
||
COLUMN_TYPE,
|
||
COLUMN_KEY,
|
||
EXTRA,
|
||
PRIVILEGES,
|
||
COLUMN_COMMENT
|
||
FROM INFORMATION_SCHEMA.COLUMNS
|
||
WHERE table_name = 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 4225 # 4097 #
|
||
SHOW TABLES LIKE 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW COLUMNS FROM t1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_column 6 #
|
||
SHOW TRIGGERS LIKE 't1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
TRIGGER_CATALOG,
|
||
TRIGGER_SCHEMA,
|
||
TRIGGER_NAME,
|
||
EVENT_MANIPULATION,
|
||
EVENT_OBJECT_CATALOG,
|
||
EVENT_OBJECT_SCHEMA,
|
||
EVENT_OBJECT_TABLE,
|
||
ACTION_CONDITION,
|
||
ACTION_STATEMENT,
|
||
ACTION_ORIENTATION,
|
||
ACTION_TIMING,
|
||
ACTION_REFERENCE_OLD_TABLE,
|
||
ACTION_REFERENCE_NEW_TABLE,
|
||
ACTION_REFERENCE_OLD_ROW,
|
||
ACTION_REFERENCE_NEW_ROW,
|
||
SQL_MODE,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.TRIGGERS
|
||
WHERE trigger_name = 't1_bi';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE VIEW v1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--replace_result 20613 # 20485 # 20609 # 20481 #
|
||
SELECT *
|
||
FROM INFORMATION_SCHEMA.VIEWS
|
||
WHERE table_name = 'v1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE PROCEDURE p1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
SPECIFIC_NAME,
|
||
ROUTINE_CATALOG,
|
||
ROUTINE_SCHEMA,
|
||
ROUTINE_NAME,
|
||
ROUTINE_TYPE,
|
||
DTD_IDENTIFIER,
|
||
ROUTINE_BODY,
|
||
ROUTINE_DEFINITION,
|
||
EXTERNAL_NAME,
|
||
EXTERNAL_LANGUAGE,
|
||
PARAMETER_STYLE,
|
||
IS_DETERMINISTIC,
|
||
SQL_DATA_ACCESS,
|
||
SQL_PATH,
|
||
SECURITY_TYPE,
|
||
SQL_MODE,
|
||
ROUTINE_COMMENT,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE routine_name = 'p1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SHOW CREATE FUNCTION f1;
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
SELECT
|
||
SPECIFIC_NAME,
|
||
ROUTINE_CATALOG,
|
||
ROUTINE_SCHEMA,
|
||
ROUTINE_NAME,
|
||
ROUTINE_TYPE,
|
||
DTD_IDENTIFIER,
|
||
ROUTINE_BODY,
|
||
ROUTINE_DEFINITION,
|
||
EXTERNAL_NAME,
|
||
EXTERNAL_LANGUAGE,
|
||
PARAMETER_STYLE,
|
||
IS_DETERMINISTIC,
|
||
SQL_DATA_ACCESS,
|
||
SQL_PATH,
|
||
SECURITY_TYPE,
|
||
SQL_MODE,
|
||
ROUTINE_COMMENT,
|
||
DEFINER
|
||
FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE routine_name = 'f1';
|
||
|
||
--echo ----------------------------------------------------------------
|
||
|
||
--disable_metadata
|
||
|
||
# Cleanup.
|
||
|
||
DROP DATABASE mysqltest1;
|
||
DROP TABLE t1;
|
||
DROP VIEW v1;
|
||
DROP PROCEDURE p1;
|
||
DROP FUNCTION f1;
|
||
|
||
#
|
||
# Part 2: check that table with non-latin1 characters are dumped/restored
|
||
# correctly.
|
||
#
|
||
|
||
# Ensure that all needed objects are dropped.
|
||
|
||
set names koi8r;
|
||
|
||
--disable_warnings
|
||
DROP DATABASE IF EXISTS mysqltest1;
|
||
--enable_warnings
|
||
|
||
# Create objects.
|
||
|
||
CREATE DATABASE mysqltest1;
|
||
|
||
use mysqltest1;
|
||
|
||
CREATE TABLE t1(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 INT);
|
||
|
||
# Check:
|
||
# - Dump mysqltest1;
|
||
|
||
--let $outfile1=$MYSQLTEST_VARDIR/tmp/show_check.mysqltest1.sql
|
||
|
||
--source include/count_sessions.inc
|
||
--echo
|
||
--echo ---> Dumping mysqltest1 to outfile1
|
||
--exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$MYSQL_SHAREDIR/charsets --databases mysqltest1 > $outfile1
|
||
# Take care that the additional session caused by MYSQL_DUMP has disappeared.
|
||
--source include/wait_until_count_sessions.inc
|
||
|
||
# - Clean mysqltest1;
|
||
|
||
--echo
|
||
--echo
|
||
|
||
DROP DATABASE mysqltest1;
|
||
|
||
# - Restore mysqltest1;
|
||
|
||
--echo
|
||
--echo
|
||
|
||
--source include/count_sessions.inc
|
||
--echo ---> Restoring mysqltest1...
|
||
--exec $MYSQL test < $outfile1
|
||
--remove_file $outfile1
|
||
# Take care that the additional session caused by MYSQL has disappeared.
|
||
--source include/wait_until_count_sessions.inc
|
||
|
||
# - Check definition of the table.
|
||
|
||
SHOW CREATE TABLE mysqltest1.t1;
|
||
|
||
# Cleanup.
|
||
|
||
DROP DATABASE mysqltest1;
|
||
use test;
|
||
|
||
#
|
||
# Bug#9785 SELECT privilege for the whole database is needed to do
|
||
# SHOW CREATE DATABASE
|
||
#
|
||
create database mysqltest;
|
||
show create database mysqltest;
|
||
create table mysqltest.t1(a int);
|
||
insert into mysqltest.t1 values(1);
|
||
create user mysqltest_4@localhost;
|
||
grant select on `mysqltest`.`t1` to mysqltest_4@localhost;
|
||
connect (con4,localhost,mysqltest_4,,mysqltest);
|
||
connection con4;
|
||
show create database mysqltest;
|
||
disconnect con4;
|
||
--source include/wait_until_disconnected.inc
|
||
connection default;
|
||
delete from mysql.user where user='mysqltest_4';
|
||
delete from mysql.db where user='mysqltest_4';
|
||
delete from mysql.tables_priv where user='mysqltest_4';
|
||
flush privileges;
|
||
drop database mysqltest;
|
||
|
||
#
|
||
# Ensure that show plugin code is tested
|
||
#
|
||
|
||
--disable_result_log
|
||
show plugins;
|
||
--enable_result_log
|
||
|
||
#
|
||
# Bug#19874 SHOW COLUMNS and SHOW KEYS handle identifiers containing
|
||
# \ incorrectly
|
||
#
|
||
create database `mysqlttest\1`;
|
||
create table `mysqlttest\1`.`a\b` (a int);
|
||
show tables from `mysqlttest\1`;
|
||
show fields from `mysqlttest\1`.`a\b`;
|
||
show columns from `a\b` from `mysqlttest\1`;
|
||
show keys from `mysqlttest\1`.`a\b`;
|
||
drop table `mysqlttest\1`.`a\b`;
|
||
drop database `mysqlttest\1`;
|
||
|
||
#
|
||
# Bug#24392 SHOW ENGINE MUTEX STATUS is a synonym for SHOW INNODB STATUS
|
||
#
|
||
|
||
--error ER_UNKNOWN_STORAGE_ENGINE
|
||
show engine foobar status;
|
||
--error ER_UNKNOWN_STORAGE_ENGINE
|
||
show engine foobar logs;
|
||
--error ER_UNKNOWN_STORAGE_ENGINE
|
||
show engine foobar mutex;
|
||
|
||
--error ER_UNKNOWN_STORAGE_ENGINE
|
||
show engine mutex status;
|
||
|
||
show engine csv status;
|
||
show engine csv logs;
|
||
show engine csv mutex;
|
||
#
|
||
# Bug#25081 SHOW FULL TABLES on table with latin chars in name fails
|
||
#
|
||
set names utf8;
|
||
--disable_warnings
|
||
drop table if exists `été`;
|
||
--enable_warnings
|
||
create table `été` (field1 int);
|
||
show full tables;
|
||
drop table `été`;
|
||
set names latin1;
|
||
|
||
--echo #
|
||
--echo # Bug#4374 SHOW TABLE STATUS FROM ignores collation_connection
|
||
--echo # Character set: Latin-1 (ISO-8859-1)
|
||
--echo #
|
||
SET NAMES latin1;
|
||
CREATE DATABASE `<60>`;
|
||
CREATE TABLE `<60>`.`<60>` (a int) ENGINE=Memory;
|
||
ANALYZE TABLE `<60>`.`<60>`;
|
||
--replace_column 6 # 7 # 8 # 9 # 12 #
|
||
SHOW TABLE STATUS FROM `<60>` LIKE '<27>';
|
||
DROP DATABASE `<60>`;
|
||
|
||
#
|
||
# Bug#26402 Server crashes with old-style named table
|
||
#
|
||
--error ER_NO_SUCH_TABLE,ER_FILE_NOT_FOUND
|
||
show columns from `#mysql50#????????`;
|
||
call mtr.add_suppression("Can.t find file: '.\\\\test\\\\\\?{8}.frm'");
|
||
|
||
#
|
||
# SHOW CREATE TRIGGER test.
|
||
#
|
||
|
||
# Prepare.
|
||
|
||
--disable_warnings
|
||
DROP TABLE IF EXISTS t1;
|
||
DROP PROCEDURE IF EXISTS p1;
|
||
--enable_warnings
|
||
|
||
CREATE TABLE t1(c1 INT);
|
||
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
|
||
|
||
# Test.
|
||
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi;
|
||
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
--replace_column 7 #
|
||
CALL p1();
|
||
|
||
PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi';
|
||
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
EXECUTE stmt1;
|
||
--replace_column 7 #
|
||
|
||
# Cleanup.
|
||
|
||
DROP TABLE t1;
|
||
DROP PROCEDURE p1;
|
||
DEALLOCATE PREPARE stmt1;
|
||
|
||
#
|
||
# Bug#10491 Server returns data as charset binary SHOW CREATE TABLE or SELECT
|
||
# FROM INFORMATION_SCHEMA.
|
||
#
|
||
# Before the change performed to fix the bug, the metadata of the output of
|
||
# SHOW CREATE statements would always describe the result as 'binary'. That
|
||
# would ensure that the result is never converted to character_set_client
|
||
# (which was essential to mysqldump). Now we return to the client the actual
|
||
# character set of the object -- which is character_set_client of the
|
||
# connection that issues the CREATE statement, and this triggers an automatic
|
||
# conversion to character_set_results of the connection that issues SHOW CREATE
|
||
# statement.
|
||
#
|
||
# This test demonstrates that this conversion indeed is taking place.
|
||
#
|
||
|
||
# Prepare: create objects in a one character set.
|
||
|
||
set names koi8r;
|
||
|
||
--disable_warnings
|
||
DROP VIEW IF EXISTS v1;
|
||
DROP PROCEDURE IF EXISTS p1;
|
||
DROP FUNCTION IF EXISTS f1;
|
||
DROP TABLE IF EXISTS t1;
|
||
DROP EVENT IF EXISTS ev1;
|
||
--enable_warnings
|
||
|
||
CREATE VIEW v1 AS SELECT '<27><><EFBFBD><EFBFBD>' AS test;
|
||
|
||
CREATE PROCEDURE p1() SELECT '<27><><EFBFBD><EFBFBD>' AS test;
|
||
|
||
CREATE FUNCTION f1() RETURNS CHAR(10) RETURN '<27><><EFBFBD><EFBFBD>';
|
||
|
||
CREATE TABLE t1(c1 CHAR(10));
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1
|
||
FOR EACH ROW
|
||
SET NEW.c1 = '<27><><EFBFBD><EFBFBD>';
|
||
|
||
CREATE EVENT ev1 ON SCHEDULE AT '2030-01-01 00:00:00' DO SELECT '<27><><EFBFBD><EFBFBD>' AS test;
|
||
|
||
# Test: switch the character set and show that SHOW CREATE output is
|
||
# automatically converted to the new character_set_client.
|
||
|
||
set names utf8;
|
||
|
||
SHOW CREATE VIEW v1;
|
||
|
||
SHOW CREATE PROCEDURE p1;
|
||
|
||
SHOW CREATE FUNCTION f1;
|
||
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
SHOW CREATE EVENT ev1;
|
||
|
||
# Cleanup.
|
||
|
||
DROP VIEW v1;
|
||
DROP PROCEDURE p1;
|
||
DROP FUNCTION f1;
|
||
DROP TABLE t1;
|
||
DROP EVENT ev1;
|
||
|
||
#
|
||
# Bug#30036 SHOW TABLE TYPES causes the debug client to crash
|
||
#
|
||
--disable_result_log
|
||
SHOW STORAGE ENGINES;
|
||
--enable_result_log
|
||
|
||
|
||
#
|
||
# Bug#32710 SHOW INNODB STATUS requires SUPER
|
||
#
|
||
|
||
CREATE USER test_u@localhost;
|
||
GRANT PROCESS ON *.* TO test_u@localhost;
|
||
|
||
connect (conn1, localhost, test_u,,);
|
||
|
||
--disable_result_log
|
||
SHOW ENGINE MYISAM MUTEX;
|
||
SHOW ENGINE MYISAM STATUS;
|
||
--enable_result_log
|
||
|
||
disconnect conn1;
|
||
--source include/wait_until_disconnected.inc
|
||
connection default;
|
||
DROP USER test_u@localhost;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug #48985: show create table crashes if previous access to the table
|
||
--echo # was killed
|
||
--echo #
|
||
|
||
connect(con1,localhost,root,,);
|
||
CONNECTION con1;
|
||
LET $ID= `SELECT connection_id()`;
|
||
|
||
CONNECTION default;
|
||
--disable_query_log
|
||
eval KILL QUERY $ID;
|
||
--enable_query_log
|
||
|
||
CONNECTION con1;
|
||
let $wait_timeout= 5;
|
||
let $wait_condition=
|
||
SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE
|
||
INFO= "KILL QUERY $ID";
|
||
--source include/wait_condition.inc
|
||
--error ER_NO_SUCH_TABLE
|
||
SHOW CREATE TABLE non_existent;
|
||
|
||
DISCONNECT con1;
|
||
--source include/wait_until_disconnected.inc
|
||
CONNECTION default;
|
||
|
||
|
||
--echo End of 5.1 tests
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#52593 SHOW CREATE TABLE is blocked if table is locked
|
||
--echo # for write by another connection
|
||
|
||
--disable_warnings
|
||
DROP TABLE IF EXISTS t1;
|
||
--enable_warnings
|
||
|
||
connect(con1, localhost,root);
|
||
connection default;
|
||
|
||
CREATE TABLE t1 (i INT PRIMARY KEY);
|
||
LOCK TABLE t1 WRITE;
|
||
--echo # Switching to connection 'con1'.
|
||
connection con1;
|
||
--echo # This statement used to be blocked.
|
||
SHOW CREATE TABLE t1;
|
||
|
||
disconnect con1;
|
||
--source include/wait_until_disconnected.inc
|
||
|
||
--echo # Switching to connection 'default'.
|
||
connection default;
|
||
UNLOCK TABLES;
|
||
DROP TABLE t1;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#54905 Connection with WRITE lock cannot ALTER table due to
|
||
--echo # concurrent SHOW CREATE
|
||
--echo #
|
||
|
||
--disable_warnings
|
||
DROP TABLE IF EXISTS t1;
|
||
--enable_warnings
|
||
|
||
CREATE TABLE t1(a INT);
|
||
|
||
--echo # Connection con1
|
||
connect (con1,localhost,root);
|
||
LOCK TABLE t1 WRITE;
|
||
|
||
--echo # Connection default
|
||
connection default;
|
||
START TRANSACTION;
|
||
SHOW CREATE TABLE t1;
|
||
|
||
--echo # Connection con1
|
||
connection con1;
|
||
# Used to block
|
||
ALTER TABLE t1 CHARACTER SET = utf8;
|
||
UNLOCK TABLES;
|
||
|
||
--echo # Connection default
|
||
connection default;
|
||
COMMIT;
|
||
disconnect con1;
|
||
DROP TABLE t1;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#55498 SHOW CREATE TRIGGER takes wrong type of metadata lock.
|
||
--echo #
|
||
|
||
--disable_warnings
|
||
DROP TABLE IF EXISTS t1;
|
||
--enable_warnings
|
||
|
||
CREATE TABLE t1 (a INT);
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1;
|
||
|
||
--echo # Test 1: SHOW CREATE TRIGGER with WRITE locked table.
|
||
|
||
--echo # Connection con1
|
||
connect (con1, localhost, root);
|
||
LOCK TABLE t1 WRITE;
|
||
|
||
--echo # Connection default
|
||
connection default;
|
||
# Should not block.
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
--echo # Connection con1
|
||
connection con1;
|
||
UNLOCK TABLES;
|
||
|
||
--echo # Test 2: ALTER TABLE with SHOW CREATE TRIGGER in transaction
|
||
|
||
--echo # Connection default
|
||
connection default;
|
||
START TRANSACTION;
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
--echo # Connection con1
|
||
connection con1;
|
||
# Should not block.
|
||
ALTER TABLE t1 CHARACTER SET = utf8;
|
||
|
||
disconnect con1;
|
||
--source include/wait_until_disconnected.inc
|
||
|
||
--echo # Connection default
|
||
connection default;
|
||
COMMIT;
|
||
DROP TRIGGER t1_bi;
|
||
DROP TABLE t1;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#57306 SHOW PROCESSLIST does not display string literals well.
|
||
--echo #
|
||
|
||
SET NAMES latin1;
|
||
SELECT GET_LOCK('t', 1000);
|
||
--connect (con1,localhost,root,,)
|
||
--connection con1
|
||
SET NAMES latin1;
|
||
--send SELECT GET_LOCK('t',1000) AS 'óóóó';
|
||
--connection default
|
||
# Make sure con1 has switched from "SET NAMES" to "SELECT GET_LOCK"
|
||
let $wait_timeout= 10;
|
||
let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE '%GET_LOCK%' AND ID != CONNECTION_ID();
|
||
--source include/wait_condition.inc
|
||
--replace_column 1 ### 3 ### 6 ### 7 ###
|
||
--sorted_result
|
||
SHOW PROCESSLIST;
|
||
SET NAMES utf8;
|
||
--replace_column 1 ### 3 ### 6 ### 7 ###
|
||
--sorted_result
|
||
SHOW PROCESSLIST;
|
||
SELECT RELEASE_LOCK('t');
|
||
--connection con1
|
||
--reap
|
||
--disconnect con1
|
||
--source include/wait_until_disconnected.inc
|
||
--connection default
|
||
SET NAMES latin1;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#58996 SHOW CREATE TRIGGER fails when subject table is shadowed by
|
||
--echo # a temporary table.
|
||
--echo #
|
||
|
||
--disable_warnings
|
||
DROP TABLE IF EXISTS t1;
|
||
--enable_warnings
|
||
|
||
CREATE TABLE t1 (a INT);
|
||
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW BEGIN END;
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
CREATE TEMPORARY TABLE t1 (b INT);
|
||
# Should still work
|
||
--replace_column 7 #
|
||
SHOW CREATE TRIGGER t1_bi;
|
||
|
||
DROP TEMPORARY TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
|
||
--echo #
|
||
--echo # WL#6454: Deprecate SHOW AUTHORS and SHOW CONTRIBUTORS
|
||
--echo #
|
||
|
||
--echo # These statements were deprecated in 5.5 and removed in 5.6.
|
||
--echo # They should therefore give ER_PARSE_ERROR here.
|
||
|
||
--error ER_PARSE_ERROR
|
||
SHOW AUTHORS;
|
||
--error ER_PARSE_ERROR
|
||
SHOW CONTRIBUTORS;
|
||
|
||
|
||
--echo #
|
||
--echo # Bug#20709462: GENERATED COLUMNS NOT PRINTED CORRECTLY IN
|
||
--echo # SHOW CREATE TABLE
|
||
--echo #
|
||
|
||
CREATE TABLE t1 (i CHAR(3),
|
||
n CHAR(20) CHARACTER SET utf8 GENERATED ALWAYS AS (md5(i)));
|
||
|
||
--echo # Use SHOW CREATE TABLE output below unmodified to re-create table
|
||
SHOW CREATE TABLE t1;
|
||
|
||
DROP TABLE t1;
|
||
|
||
CREATE TABLE `t1` (
|
||
`i` char(3) DEFAULT NULL,
|
||
`n` char(20) CHARACTER SET utf8 GENERATED ALWAYS AS (md5(i)) VIRTUAL
|
||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||
|
||
DROP TABLE t1;
|
||
|
||
--echo #
|
||
--echo # Bug#24800048 - SHOW TABLES FROM DATABASE HANGS ON WINDOWS PLATFORM
|
||
--echo #
|
||
|
||
CREATE DATABASE unknown;
|
||
|
||
--echo # On case sensitive file system following statement fails as DB name
|
||
--echo # is in different case. Following statement works fine on case insensitive
|
||
--echo # file systems.
|
||
--error 0,ER_BAD_DB_ERROR
|
||
SHOW TABLES FROM UNKNOWN;
|
||
|
||
--echo # On case sensitive file system following statement fails as DB name
|
||
--echo # is in different case. Following statement works fine on case insensitive
|
||
--echo # file systems.
|
||
--echo # Without fix following SHOW TABLES statements hangs in Windows (with
|
||
--echo # lower_case_table_names=1).
|
||
--error 0,ER_BAD_DB_ERROR
|
||
SHOW TABLES FROM UNKNOWN;
|
||
|
||
DROP DATABASE unknown;
|
||
|
||
--echo #
|
||
--echo # WL#9570 - Extend SHOW statements to list hidden columns and index
|
||
--echo # information.
|
||
--echo #
|
||
--echo # Test case to verify hidden columns, index and index elements
|
||
--echo # display in INFORMATION_SCHEMA queries and SHOW statements.
|
||
--echo # EXPECTATION: INFORMATION_SCHEMA.COLUMNS/STATISTICS*/KEY_COLUMN_USAGE
|
||
--echo # SHOW [FULL] COLUMNS and SHOW INDEX should not display
|
||
--echo # hidden columns, indexes and index elements.
|
||
--echo # SHOW EXTENED [FULL] COLUMNS and SHOW EXTENDED INDEX
|
||
--echo # should display hidden columns, index and index elements
|
||
--echo # too.
|
||
--echo #
|
||
--echo #
|
||
CREATE TABLE t1 (c1 int(11) NOT NULL,
|
||
c2 int(11) DEFAULT NULL,
|
||
c3 text,
|
||
PRIMARY KEY (c1));
|
||
CREATE INDEX c2d ON t1(c2);
|
||
|
||
--echo # With fix, following statements should not show the hidden columns.
|
||
--replace_column 3 # 4 # 5 # 6 #
|
||
SHOW COLUMNS FROM t1;
|
||
--replace_column 3 # 4 # 5 # 6 # 7 # 8 # 9 #
|
||
SHOW FULL COLUMNS FROM t1;
|
||
SELECT table_name, column_name, column_type FROM
|
||
INFORMATION_SCHEMA.COLUMNS WHERE table_name='t1';
|
||
--echo # EXTENDED keyword is introduced to list the hidden columns.
|
||
--replace_column 3 # 4 # 5 # 6 #
|
||
SHOW EXTENDED COLUMNS FROM t1;
|
||
--replace_column 3 # 4 # 5 # 6 # 7 # 8 # 9 #
|
||
SHOW EXTENDED FULL COLUMNS FROM t1;
|
||
|
||
--echo # With fix, following statements should not show the hidden index and
|
||
--echo # index columns.
|
||
SHOW INDEX FROM t1;
|
||
SELECT table_schema, table_name, index_name, column_name FROM
|
||
INFORMATION_SCHEMA.STATISTICS WHERE table_name='t1';
|
||
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE table_name='t1';
|
||
SELECT constraint_schema, constraint_name, table_name, column_name FROM
|
||
INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE table_name='t1';
|
||
|
||
--echo # EXTENDED keyword is introduced to list the hidden index and index
|
||
--echo # columns.
|
||
SHOW EXTENDED INDEX FROM t1;
|
||
DROP TABLE t1;
|
||
|
||
--echo #
|
||
--echo # Bug#27387773 COLUMN OPTION FOR DESCRIBE IS IGNORED
|
||
--echo #
|
||
|
||
CREATE TEMPORARY TABLE t1 (f1 INT, f2 INT);
|
||
--echo # These DESCRIBEs would show just single column after the fix.
|
||
DESCRIBE t1 f1;
|
||
DESCRIBE t1 f2;
|
||
SHOW COLUMNS FROM t1 LIKE 'f1';
|
||
SHOW COLUMNS FROM t1 LIKE 'f2';
|
||
DROP TABLE t1;
|
||
|
||
--echo #
|
||
--echo # Bug#11754608 MYSQL DOESN'T SHOW WHAT COLLATION WAS USED IF THAT
|
||
--echo # COLLATION IS THE DEFAU
|
||
--echo #
|
||
|
||
CREATE TABLE t1 (f1 CHAR(1),
|
||
f2 CHAR(1) COLLATE UTF8_BIN,
|
||
f3 CHAR(1) CHARSET UTF8MB3,
|
||
f4 CHAR(1) CHARSET UTF8MB4);
|
||
|
||
--echo # The SHOW command should show the utf8mb4 charset for f4 after ALTER.
|
||
SHOW CREATE TABLE t1;
|
||
ALTER TABLE t1 ADD COLUMN f5 CHAR(1);
|
||
ALTER TABLE t1 ADD COLUMN f6 CHAR(1) CHARSET UTF8MB4;
|
||
|
||
--echo # The SHOW command should show the utf8mb4 charset for f6 after ALTER.
|
||
SHOW CREATE TABLE t1;
|
||
|
||
--echo # Check if we retain the property after CREATE SELECT.
|
||
CREATE TABLE t2 AS SELECT * FROM t1;
|
||
SHOW CREATE TABLE t2;
|
||
|
||
--echo # Check if we retain the property after CREATE LIKE.
|
||
CREATE TABLE t3 LIKE t1;
|
||
SHOW CREATE TABLE t3;
|
||
|
||
DROP TABLE t1;
|
||
DROP TABLE t2;
|
||
DROP TABLE t3;
|
||
|
||
# Wait till all disconnects are completed
|
||
--source include/wait_until_count_sessions.inc
|