diff options
author | unknown <ram@gw.mysql.r18.ru> | 2005-01-25 13:39:19 +0400 |
---|---|---|
committer | unknown <ram@gw.mysql.r18.ru> | 2005-01-25 13:39:19 +0400 |
commit | d0ad76e3538f3f789d5fc9094847e7b5f9b8d542 (patch) | |
tree | 8fb5323ee13ee235a77b99100b1fc5e5bde1322d | |
parent | 9bb0ff55fed617428c5fe046abc45068a959710e (diff) | |
parent | 0f4efbe92561a5e8cf9b05e37281b21b90203a16 (diff) | |
download | mariadb-git-d0ad76e3538f3f789d5fc9094847e7b5f9b8d542.tar.gz |
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into gw.mysql.r18.ru:/usr/home/ram/work/4.1.b7261
-rw-r--r-- | mysql-test/r/lowercase_table2.result | 12 | ||||
-rw-r--r-- | mysql-test/t/lowercase_table2.test | 13 | ||||
-rw-r--r-- | sql/sql_table.cc | 3 |
3 files changed, 25 insertions, 3 deletions
diff --git a/mysql-test/r/lowercase_table2.result b/mysql-test/r/lowercase_table2.result index 3be73f6cc6a..cfd8f78a77c 100644 --- a/mysql-test/r/lowercase_table2.result +++ b/mysql-test/r/lowercase_table2.result @@ -1,4 +1,4 @@ -DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3; +DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3,tT; DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `test_$1`; CREATE TABLE T1 (a int); @@ -131,3 +131,13 @@ show tables like 't1%'; Tables_in_test (t1%) t1 drop table t1; +create temporary table tT(a int(11), b varchar(8)); +insert into tT values (1, 'abc'); +select * from tT; +a b +1 abc +alter table tT add index (a); +select * from tT; +a b +1 abc +drop table tT; diff --git a/mysql-test/t/lowercase_table2.test b/mysql-test/t/lowercase_table2.test index a4eaeac4ef4..237dcd29950 100644 --- a/mysql-test/t/lowercase_table2.test +++ b/mysql-test/t/lowercase_table2.test @@ -10,7 +10,7 @@ show variables like "lower_case_table_names"; enable_query_log; --disable_warnings -DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3; +DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3,tT; DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `test_$1`; --enable_warnings @@ -100,3 +100,14 @@ show tables like 'T1%'; alter table t1 add index (A); show tables like 't1%'; drop table t1; + +# +# Bug #7261: Alter table loses temp table +# + +create temporary table tT(a int(11), b varchar(8)); +insert into tT values (1, 'abc'); +select * from tT; +alter table tT add index (a); +select * from tT; +drop table tT; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 5d756653cdd..423a309767b 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3231,7 +3231,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, } /* Remove link to old table and rename the new one */ close_temporary_table(thd,table->table_cache_key,table_name); - if (rename_temporary_table(thd, new_table, new_db, new_alias)) + /* Should pass the 'new_name' as we store table name in the cache */ + if (rename_temporary_table(thd, new_table, new_db, new_name)) { // Fatal error close_temporary_table(thd,new_db,tmp_name); my_free((gptr) new_table,MYF(0)); |