1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-4441 DROP DATABASE with a newly created ARCHIVE table does not work

1. DROP DATABASE should use ha_discover_table_names(), not look at .frm files.
2. filename_to_tablename() also encodes temp file names #sql- -> #mysql50##sql
3. no special treatment for #sql- files, no TABLE_LIST::internal_tmp_table
4. discover also table file names, that start from #
This commit is contained in:
Sergei Golubchik
2013-06-15 19:09:31 +02:00
parent 6a0a4f00a1
commit 68a6705ed1
11 changed files with 80 additions and 116 deletions

View File

@ -123,3 +123,6 @@ select * from `a/../`;
a
flush tables;
drop table `a/../`;
create database test1;
create table test1.t1 (i int) engine=archive;
drop database test1;

View File

@ -102,3 +102,10 @@ select * from `a/../`; flush tables;
remove_file $mysqld_datadir/test/a@002f@002e@002e@002f.frm;
drop table `a/../`;
#
# MDEV-4441 DROP DATABASE with a newly created ARCHIVE table does not work
#
create database test1;
create table test1.t1 (i int) engine=archive;
drop database test1;

View File

@ -8,12 +8,12 @@ select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
create table mysqltest1.t2 (n int);
create table mysqltest1.t3 (n int);
drop database mysqltest1;
ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17 "File exists")
ERROR HY000: Error dropping database (can't rmdir './mysqltest1', errno: 39 "Directory not empty")
use mysqltest1;
show tables;
Tables_in_mysqltest1
drop database mysqltest1;
ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17 "File exists")
ERROR HY000: Error dropping database (can't rmdir './mysqltest1', errno: 39 "Directory not empty")
use mysqltest1;
show tables;
Tables_in_mysqltest1

View File

@ -13,7 +13,7 @@ insert into mysqltest1.t1 values (1);
select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
create table mysqltest1.t2 (n int);
create table mysqltest1.t3 (n int);
--replace_result \\ /
--replace_result \\ / 66 39
--error 1010
drop database mysqltest1;
use mysqltest1;
@ -30,7 +30,7 @@ while ($1)
}
--enable_query_log
--replace_result \\ /
--replace_result \\ / 66 39
--error 1010
drop database mysqltest1;
use mysqltest1;