205 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			205 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Initialise | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | drop database if exists mysqltest; | ||
|  | # If earlier test failed | ||
|  | drop database if exists client_test_db; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | --error 1051 | ||
|  | drop table t1; | ||
|  | create table t1(n int); | ||
|  | insert into t1 values(1); | ||
|  | create temporary table t1( n int); | ||
|  | insert into t1 values(2); | ||
|  | --error 1050 | ||
|  | create table t1(n int); | ||
|  | drop table t1; | ||
|  | select * from t1; | ||
|  | 
 | ||
|  | # now test for a bug in drop database - it is important that the name | ||
|  | # of the table is the same as the name of the database - in the original | ||
|  | # code this triggered a bug | ||
|  | create database mysqltest; | ||
|  | drop database if exists mysqltest; | ||
|  | create database mysqltest; | ||
|  | create table mysqltest.mysqltest (n int); | ||
|  | insert into mysqltest.mysqltest values (4); | ||
|  | select * from mysqltest.mysqltest; | ||
|  | --enable_info | ||
|  | drop database if exists mysqltest; | ||
|  | --disable_info | ||
|  | create database mysqltest; | ||
|  | 
 | ||
|  | # | ||
|  | # drop many tables - bug#3891 | ||
|  | # we'll do it in mysqltest db, to be able to use longer table names | ||
|  | # (tableN instead on tN) | ||
|  | # | ||
|  | use mysqltest; | ||
|  | --error 1051 | ||
|  | drop table table1, table2, table3, table4, table5, table6, | ||
|  | table7, table8, table9, table10, table11, table12, table13, | ||
|  | table14, table15, table16, table17, table18, table19, table20, | ||
|  | table21, table22, table23, table24, table25, table26, table27, | ||
|  | table28; | ||
|  | 
 | ||
|  | --error 1051 | ||
|  | drop table table1, table2, table3, table4, table5, table6, | ||
|  | table7, table8, table9, table10, table11, table12, table13, | ||
|  | table14, table15, table16, table17, table18, table19, table20, | ||
|  | table21, table22, table23, table24, table25, table26, table27, | ||
|  | table28, table29, table30; | ||
|  | 
 | ||
|  | use test; | ||
|  | drop database mysqltest; | ||
|  | 
 | ||
|  | # test drop/create database and FLUSH TABLES WITH READ LOCK | ||
|  | flush tables with read lock; | ||
|  | --error 1209,1223 | ||
|  | create database mysqltest; | ||
|  | unlock tables; | ||
|  | create database mysqltest; | ||
|  | show databases; | ||
|  | flush tables with read lock; | ||
|  | --error 1208,1223 | ||
|  | drop database mysqltest; | ||
|  | unlock tables; | ||
|  | drop database mysqltest; | ||
|  | show databases; | ||
|  | --error 1008 | ||
|  | drop database mysqltest; | ||
|  | 
 | ||
|  | # test create table and FLUSH TABLES WITH READ LOCK | ||
|  | drop table t1; | ||
|  | flush tables with read lock; | ||
|  | --error 1223 | ||
|  | create table t1(n int); | ||
|  | unlock tables; | ||
|  | create table t1(n int); | ||
|  | show tables; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # End of 4.1 tests | ||
|  | 
 | ||
|  | 
 | ||
|  | # | ||
|  | # Test for bug#21216 "Simultaneous DROP TABLE and SHOW OPEN TABLES causes | ||
|  | # server to crash". Crash (caused by failed assertion in 5.0 or by null | ||
|  | # pointer dereference in 5.1) happened when one ran SHOW OPEN TABLES | ||
|  | # while concurrently doing DROP TABLE (or RENAME TABLE, CREATE TABLE LIKE | ||
|  | # or any other command that takes name-lock) in other connection. | ||
|  | #  | ||
|  | # Also includes test for similar bug#12212 "Crash that happens during | ||
|  | # removing of database name from cache" reappeared in 5.1 as bug#19403 | ||
|  | # In its case crash happened when one concurrently executed DROP DATABASE | ||
|  | # and one of name-locking command. | ||
|  | #  | ||
|  | --disable_warnings | ||
|  | drop database if exists mysqltest; | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | create table t1 (i int); | ||
|  | lock tables t1 read; | ||
|  | create database mysqltest; | ||
|  | connect (addconroot1, localhost, root,,); | ||
|  | --send drop table t1 | ||
|  | connect (addconroot2, localhost, root,,); | ||
|  | # Server should not crash in any of the following statements | ||
|  | --disable_result_log | ||
|  | show open tables; | ||
|  | --enable_result_log | ||
|  | --send drop database mysqltest | ||
|  | connection default; | ||
|  | select 1; | ||
|  | unlock tables; | ||
|  | connection addconroot1; | ||
|  | --reap | ||
|  | connection addconroot2; | ||
|  | --reap | ||
|  | disconnect addconroot2; | ||
|  | --source include/wait_until_disconnected.inc | ||
|  | connection addconroot1; | ||
|  | disconnect addconroot1; | ||
|  | --source include/wait_until_disconnected.inc | ||
|  | connection default; | ||
|  | 
 | ||
|  | --echo End of 5.0 tests | ||
|  | 
 | ||
|  | # | ||
|  | # Bug#30152 MySQLD crash duing alter table causes DROP DATABASE to FAIL due to temp file | ||
|  | # | ||
|  | create database mysql_test; | ||
|  | create table mysql_test.t1(f1 int); | ||
|  | create table mysql_test.`#sql-347f_7` (f1 int); | ||
|  | create table mysql_test.`#sql-347f_8` (f1 int); | ||
|  | drop table mysql_test.`#sql-347f_8`; | ||
|  | let $MYSQLD_DATADIR= `select @@datadir`; | ||
|  | copy_file $MYSQLD_DATADIR/mysql_test/t1.frm $MYSQLD_DATADIR/mysql_test/#sql-347f_6.frm; | ||
|  | drop database mysql_test; | ||
|  | 
 | ||
|  | ########################################################################### | ||
|  | 
 | ||
|  | --echo | ||
|  | --echo # -- | ||
|  | --echo # -- Bug#29958: Weird message on DROP DATABASE if mysql.proc does not | ||
|  | --echo # -- exist. | ||
|  | --echo # -- | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | DROP DATABASE IF EXISTS mysql_test; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | CREATE DATABASE mysql_test; | ||
|  | 
 | ||
|  | let $MYSQLD_DATADIR= `select @@datadir`; | ||
|  | 
 | ||
|  | --let $proc_frm = $MYSQLD_DATADIR/mysql/proc.frm | ||
|  | --let $proc_MYD = $MYSQLD_DATADIR/mysql/proc.MYD | ||
|  | --let $proc_MYI = $MYSQLD_DATADIR/mysql/proc.MYI | ||
|  | 
 | ||
|  | --let $copy_of_proc_frm = $MYSQLTEST_VARDIR/tmp/bug29958.copy.frm | ||
|  | --let $copy_of_proc_MYD = $MYSQLTEST_VARDIR/tmp/bug29958.copy.MYD | ||
|  | --let $copy_of_proc_MYI = $MYSQLTEST_VARDIR/tmp/bug29958.copy.MYI | ||
|  | 
 | ||
|  | --copy_file $proc_frm $copy_of_proc_frm | ||
|  | --copy_file $proc_MYD $copy_of_proc_MYD | ||
|  | --copy_file $proc_MYI $copy_of_proc_MYI | ||
|  | 
 | ||
|  | DROP TABLE mysql.proc; | ||
|  | 
 | ||
|  | DROP DATABASE mysql_test; | ||
|  | 
 | ||
|  | --copy_file $copy_of_proc_frm $proc_frm | ||
|  | --copy_file $copy_of_proc_MYD $proc_MYD | ||
|  | --copy_file $copy_of_proc_MYI $proc_MYI | ||
|  | 
 | ||
|  | --remove_file $copy_of_proc_frm | ||
|  | --remove_file $copy_of_proc_MYD | ||
|  | --remove_file $copy_of_proc_MYI | ||
|  | 
 | ||
|  | --echo | ||
|  | --echo # -- | ||
|  | --echo # -- End of Bug#29958. | ||
|  | --echo # -- | ||
|  | 
 | ||
|  | ########################################################################### | ||
|  | 
 | ||
|  | --echo | ||
|  | # | ||
|  | # Bug#26703: DROP DATABASE fails if database contains a #mysql50# table with backticks | ||
|  | # | ||
|  | create database mysqltestbug26703; | ||
|  | use mysqltestbug26703; | ||
|  | create table `#mysql50#abc``def` ( id int ); | ||
|  | --error ER_WRONG_TABLE_NAME | ||
|  | create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int); | ||
|  | create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int); | ||
|  | create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int); | ||
|  | --error ER_WRONG_TABLE_NAME | ||
|  | create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int); | ||
|  | use test; | ||
|  | drop database mysqltestbug26703; | ||
|  | 
 | ||
|  | --echo End of 5.1 tests |