1238 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			1238 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Uses GRANT commands that usually disabled in embedded server | |||
|  | -- source include/not_embedded.inc | |||
|  | 
 | |||
|  | # check that CSV engine was compiled in, as the result of the test | |||
|  | # depends on the presence of the log tables (which are CSV-based). | |||
|  | --source include/have_csv.inc | |||
|  | 
 | |||
|  | # Save the initial number of concurrent sessions | |||
|  | --source include/count_sessions.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 | |||
|  | 
 | |||
|  | 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; | |||
|  | 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%"; | |||
|  | show table status from test like "this_doesn't_exists%"; | |||
|  | show databases; | |||
|  | show databases like "test%"; | |||
|  | --disable_metadata | |||
|  | 
 | |||
|  | # | |||
|  | # Check of show index | |||
|  | # | |||
|  | create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4)); | |||
|  | insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1); | |||
|  | 
 | |||
|  | --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 | |||
|  | analyze table t1; | |||
|  | --disable_metadata | |||
|  | show index from t1; | |||
|  | 
 | |||
|  | --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 | |||
|  | 
 | |||
|  | repair table t1; | |||
|  | --disable_metadata | |||
|  | show index from t1; | |||
|  | drop table t1; | |||
|  | 
 | |||
|  | # | |||
|  | # 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; | |||
|  | show open tables; | |||
|  | create table t1(n int); | |||
|  | insert into t1 values (1); | |||
|  | show open tables; | |||
|  | drop table t1; | |||
|  | 
 | |||
|  | create table t1 (a int not null, b VARCHAR(10), INDEX (b) ) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" ENGINE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed; | |||
|  | show create table t1; | |||
|  | alter table t1 MAX_ROWS=200 ROW_FORMAT=dynamic PACK_KEYS=0; | |||
|  | show create table t1; | |||
|  | ALTER TABLE t1 AVG_ROW_LENGTH=0 CHECKSUM=0 COMMENT="" MIN_ROWS=0 MAX_ROWS=0 PACK_KEYS=DEFAULT DELAY_KEY_WRITE=0 ROW_FORMAT=default; | |||
|  | show create table t1; | |||
|  | 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; | |||
|  | 
 | |||
|  | # | |||
|  | # Do a create table that tries to cover all types and options | |||
|  | # | |||
|  | create table t1 ( | |||
|  | type_bool bool not null default 0, | |||
|  | type_tiny tinyint not null auto_increment primary key, | |||
|  | type_short smallint(3), | |||
|  | type_mediumint mediumint, | |||
|  | type_bigint bigint, | |||
|  | type_decimal decimal(5,2), | |||
|  | type_numeric numeric(5,2), | |||
|  | empty_char char(0), | |||
|  | type_char char(2), | |||
|  | type_varchar varchar(10), | |||
|  | type_timestamp timestamp not null, | |||
|  | type_date date not null default '0000-00-00', | |||
|  | type_time time not null default '00:00:00', | |||
|  | type_datetime datetime not null default '0000-00-00 00:00:00', | |||
|  | type_year year, | |||
|  | type_enum enum ('red', 'green', 'blue'), | |||
|  | type_set enum ('red', 'green', 'blue'), | |||
|  | type_tinyblob tinyblob, | |||
|  | type_blob blob, | |||
|  | type_medium_blob mediumblob, | |||
|  | type_long_blob longblob, | |||
|  | index(type_short) | |||
|  | ) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" ENGINE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed CHARSET=latin1; | |||
|  | 
 | |||
|  | # Not tested above: RAID_# UNION INSERT_METHOD DATA DIRECTORY INDEX DIRECTORY | |||
|  | show create table t1; | |||
|  | insert into t1 (type_timestamp) values ("2003-02-07 10:00:01"); | |||
|  | select * 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"; | |||
|  | 
 | |||
|  | # Bug#4374 SHOW TABLE STATUS FROM ignores collation_connection | |||
|  | #set names latin1; | |||
|  | #create database `<60>`; | |||
|  | #create table `<60>`.`<60>` (a int) engine=heap; | |||
|  | #--replace_column 7 # 8 # 9 # 12 # | |||
|  | #show table status from `<60>` LIKE '<27>'; | |||
|  | #drop database `<60>`; | |||
|  | 
 | |||
|  | # 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); | |||
|  | --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); | |||
|  | --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); | |||
|  | --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; | |||
|  | --replace_column 6 # 7 # 8 # 9 # 10 # 12 # | |||
|  | show table status; | |||
|  | truncate table t1; | |||
|  | truncate table t2; | |||
|  | truncate table 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); | |||
|  | --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; | |||
|  | --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); | |||
|  | 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; | |||
|  | 
 | |||
|  | 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; | |||
|  | 
 | |||
|  | 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; | |||
|  | 
 | |||
|  | 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; | |||
|  | 
 | |||
|  | # This test fails on MAC OSX, so it is temporary disabled. | |||
|  | # This needs WL#1324 to be done. | |||
|  | #set names latin1; | |||
|  | #create database `<60>`; | |||
|  | #create table `<60>`.`<60>` (a int) engine=heap; | |||
|  | #--replace_column 7 # 8 # 9 # 12 # | |||
|  | #show table status from `<60>` LIKE '<27>'; | |||
|  | #drop database `<60>`; | |||
|  | 
 | |||
|  | # Test that USING <keytype> is always shown in SHOW CREATE TABLE when it was | |||
|  | # specified during table creation, but not otherwise. (Bug#7235) | |||
|  | CREATE TABLE t1 (i int, KEY (i)) ENGINE=MEMORY; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | CREATE TABLE t1 (i int, KEY USING HASH (i)) ENGINE=MEMORY; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MEMORY; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MyISAM; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | # Test that when an index is created with the default key algorithm and | |||
|  | # altered to another storage engine, it gets the default key algorithm | |||
|  | # for that storage engine, but when it is specified, the specified type is | |||
|  | # preserved. | |||
|  | CREATE TABLE t1 (i int, KEY (i)) ENGINE=MyISAM; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | ALTER TABLE t1 ENGINE=MEMORY; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | CREATE TABLE t1 (i int, KEY USING BTREE (i)) ENGINE=MyISAM; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | ALTER TABLE t1 ENGINE=MEMORY; | |||
|  | SHOW CREATE TABLE t1; | |||
|  | DROP TABLE t1; | |||
|  | 
 | |||
|  | # Test for Bug#9439 Reporting wrong datatype for sub_part on show index | |||
|  | CREATE TABLE t1( | |||
|  |   field1 text NOT NULL, | |||
|  |   PRIMARY KEY(field1(1000)) | |||
|  | ); | |||
|  | --enable_metadata | |||
|  | 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; | |||
|  | 
 | |||
|  | # Test for Bug#93 4.1 protocl crash on corupted frm and SHOW TABLE STATUS | |||
|  | 
 | |||
|  | flush tables; | |||
|  | 
 | |||
|  | # Create a junk frm file on disk | |||
|  | let $MYSQLD_DATADIR= `select @@datadir`; | |||
|  | system echo "this is a junk file for test" >> $MYSQLD_DATADIR/test/t1.frm ; | |||
|  | --replace_column 6 # 7 # 8 # 9 # 12 # | |||
|  | SHOW TABLE STATUS like 't1'; | |||
|  | --error ER_NOT_FORM_FILE | |||
|  | show create table t1; | |||
|  | drop table if exists t1; | |||
|  | --error 1,0 | |||
|  | --remove_file $MYSQLD_DATADIR/test/t1.frm | |||
|  | 
 | |||
|  | # | |||
|  | # 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 | |||
|  | 
 | |||
|  | 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 | |||
|  | 
 | |||
|  | # | |||
|  | # Bug#17203 "sql_no_cache sql_cache" in views created from prepared | |||
|  | # statement | |||
|  | # | |||
|  | # The problem was that initial user setting was forgotten, and current | |||
|  | # runtime-determined values of the flags were shown instead. | |||
|  | # | |||
|  | --disable_warnings | |||
|  | DROP VIEW IF EXISTS v1; | |||
|  | DROP PROCEDURE IF EXISTS p1; | |||
|  | --enable_warnings | |||
|  | 
 | |||
|  | # Check that SHOW CREATE VIEW shows SQL_CACHE flag exaclty as | |||
|  | # specified by the user. | |||
|  | CREATE VIEW v1 AS SELECT 1; | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_CACHE 1; | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_NO_CACHE 1; | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | # Usage of NOW() disables caching, but we still have show what the | |||
|  | # user have specified. | |||
|  | CREATE VIEW v1 AS SELECT NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_CACHE NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_NO_CACHE NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | # Check that SQL_NO_CACHE always wins. | |||
|  | CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_NO_CACHE SQL_CACHE NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | CREATE VIEW v1 AS SELECT SQL_CACHE SQL_NO_CACHE SQL_CACHE NOW(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | # Check CREATE VIEW in a prepared statement in a procedure. | |||
|  | delimiter |; | |||
|  | CREATE PROCEDURE p1() | |||
|  | BEGIN | |||
|  |   SET @s= 'CREATE VIEW v1 AS SELECT SQL_CACHE 1'; | |||
|  |   PREPARE stmt FROM @s; | |||
|  |   EXECUTE stmt; | |||
|  |   DROP PREPARE stmt; | |||
|  | END | | |||
|  | delimiter ;| | |||
|  | CALL p1(); | |||
|  | SHOW CREATE VIEW v1; | |||
|  | 
 | |||
|  | DROP PROCEDURE p1; | |||
|  | DROP VIEW v1; | |||
|  | 
 | |||
|  | 
 | |||
|  | # | |||
|  | # 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 | |||
|  | # | |||
|  | 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 information_schema.tables limit 1; | |||
|  | show status like 'slow_queries'; | |||
|  | 
 | |||
|  | 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; | |||
|  | show open tables; | |||
|  | show plugins; | |||
|  | show columns in t1; | |||
|  | show slave hosts; | |||
|  | show keys in t1; | |||
|  | show column types; | |||
|  | show table types; | |||
|  | show storage engines; | |||
|  | show authors; | |||
|  | show contributors; | |||
|  | 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; | |||
|  | 
 | |||
|  | # | |||
|  | # 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 ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | SHOW DATABASES LIKE 'mysqltest1'; | |||
|  | 
 | |||
|  | --echo ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | SHOW CREATE TABLE t1; | |||
|  | 
 | |||
|  | --echo ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | SHOW INDEX FROM t1; | |||
|  | 
 | |||
|  | --echo ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | 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 ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | 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 ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | SHOW TABLES LIKE 't1'; | |||
|  | 
 | |||
|  | --echo ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | SHOW COLUMNS FROM t1; | |||
|  | 
 | |||
|  | --echo ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | 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 ---------------------------------------------------------------- | |||
|  | 
 | |||
|  | 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 | |||
|  | 
 | |||
|  | --echo | |||
|  | --echo ---> Dumping mysqltest1 to outfile1 | |||
|  | 
 | |||
|  | --exec $MYSQL_DUMP --default-character-set=latin1 --character-sets-dir=$CHARSETSDIR --databases mysqltest1 > $outfile1 | |||
|  | 
 | |||
|  | #   - Clean mysqltest1; | |||
|  | 
 | |||
|  | --echo | |||
|  | --echo | |||
|  | 
 | |||
|  | DROP DATABASE mysqltest1; | |||
|  | 
 | |||
|  | #   - Restore mysqltest1; | |||
|  | 
 | |||
|  | --echo | |||
|  | --echo | |||
|  | 
 | |||
|  | --echo ---> Restoring mysqltest1... | |||
|  | --exec $MYSQL test < $outfile1 | |||
|  | --remove_file $outfile1 | |||
|  | 
 | |||
|  | #   - Check definition of the table. | |||
|  | 
 | |||
|  | SHOW CREATE TABLE mysqltest1.t1; | |||
|  | 
 | |||
|  | # Cleanup. | |||
|  | 
 | |||
|  | DROP DATABASE mysqltest1; | |||
|  | use test; | |||
|  | 
 | |||
|  | # | |||
|  | # Bug#28808 log_queries_not_using_indexes variable dynamic change is ignored | |||
|  | # | |||
|  | flush status; | |||
|  | show variables like "log_queries_not_using_indexes"; | |||
|  | select 1 from information_schema.tables limit 1; | |||
|  | show status like 'slow_queries'; | |||
|  | set global log_queries_not_using_indexes=OFF; | |||
|  | show variables like "log_queries_not_using_indexes"; | |||
|  | select 1 from information_schema.tables limit 1; | |||
|  | show status like 'slow_queries'; | |||
|  | set global log_queries_not_using_indexes=ON; | |||
|  | show variables like "log_queries_not_using_indexes"; | |||
|  | select 1 from information_schema.tables limit 1; | |||
|  | show status like 'slow_queries'; | |||
|  | 
 | |||
|  | # | |||
|  | # Bug#30088 Can't disable myisam-recover by a value of "" | |||
|  | # | |||
|  | show variables like 'myisam_recover_options'; | |||
|  | 
 | |||
|  | # | |||
|  | # Bug#37301 Length and Max_length differ with no obvious reason | |||
|  | # | |||
|  | CREATE TABLE t1 ( | |||
|  |  Codigo int(10) unsigned NOT NULL auto_increment, | |||
|  |  Nombre varchar(255) default NULL, | |||
|  |  Telefono varchar(255) default NULL, | |||
|  |  Observaciones longtext, | |||
|  |  Direccion varchar(255) default NULL, | |||
|  |  Dni varchar(255) default NULL, | |||
|  |  CP int(11) default NULL, | |||
|  |  Provincia varchar(255) default NULL, | |||
|  |  Poblacion varchar(255) default NULL, | |||
|  |  PRIMARY KEY  (Codigo) | |||
|  | ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; | |||
|  | --enable_metadata | |||
|  | show create table t1; | |||
|  | --disable_metadata | |||
|  | drop table t1; | |||
|  | 
 | |||
|  | --echo End of 5.0 tests | |||
|  | 
 | |||
|  | --disable_result_log | |||
|  | SHOW AUTHORS; | |||
|  | --enable_result_log | |||
|  | 
 | |||
|  | # | |||
|  | # 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); | |||
|  | grant select on `mysqltest`.`t1` to mysqltest_4@localhost; | |||
|  | connect (con4,localhost,mysqltest_4,,mysqltest); | |||
|  | connection con4; | |||
|  | show create database mysqltest; | |||
|  | 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; | |||
|  | connection default; | |||
|  | disconnect con4; | |||
|  | 
 | |||
|  | # | |||
|  | # Ensure that show plugin code is tested | |||
|  | # | |||
|  | 
 | |||
|  | --disable_result_log | |||
|  | show full plugin; | |||
|  | --enable_result_log | |||
|  | show warnings; | |||
|  | --disable_result_log | |||
|  | show plugin; | |||
|  | 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; | |||
|  | 
 | |||
|  | # | |||
|  | # 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. | |||
|  | 
 | |||
|  | SHOW CREATE TRIGGER t1_bi; | |||
|  | 
 | |||
|  | CREATE PROCEDURE p1() SHOW CREATE TRIGGER t1_bi; | |||
|  | 
 | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | CALL p1(); | |||
|  | 
 | |||
|  | PREPARE stmt1 FROM 'SHOW CREATE TRIGGER t1_bi'; | |||
|  | 
 | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | EXECUTE stmt1; | |||
|  | 
 | |||
|  | # 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; | |||
|  | 
 | |||
|  | 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 TABLE TYPES; | |||
|  | --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; | |||
|  | 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; | |||
|  | --error ER_QUERY_INTERRUPTED | |||
|  | SHOW CREATE TABLE non_existent; | |||
|  | 
 | |||
|  | CONNECTION default; | |||
|  | DISCONNECT con1; | |||
|  | 
 | |||
|  | 
 | |||
|  | --echo End of 5.1 tests | |||
|  | 
 | |||
|  | # Wait till all disconnects are completed | |||
|  | --source include/wait_until_count_sessions.inc | |||
|  | 
 |