Commit e85894c1 authored by unknown's avatar unknown

Fix bug in ALTER TABLE on a TEMPORARY InnoDB table.


Docs/manual.texi:
  Changelog
mysql-test/mysql-test-run.sh:
  Change shutdown to 20 seconds for slow systems
mysql-test/r/innodb.result:
  Testcase for found bug
mysql-test/t/innodb.test:
  Testcase for found bug
parent 3c0487c4
...@@ -46852,6 +46852,8 @@ Fixed bug with BDB tables and keys on @code{BLOB}'s. ...@@ -46852,6 +46852,8 @@ Fixed bug with BDB tables and keys on @code{BLOB}'s.
Fixed bug in @code{MERGE} tables on OS with 32 bit file pointers. Fixed bug in @code{MERGE} tables on OS with 32 bit file pointers.
@item @item
Fixed bug in @code{TIME_TO_SEC()} when using negative values. Fixed bug in @code{TIME_TO_SEC()} when using negative values.
@item
Fixed core dump bug in @code{ALTER TABLE} on a @code{TEMPORARY} InnoDB table.
@end itemize @end itemize
@node News-3.23.44, News-3.23.43, News-3.23.45, News-3.23.x @node News-3.23.44, News-3.23.43, News-3.23.45, News-3.23.x
...@@ -622,7 +622,7 @@ stop_slave () ...@@ -622,7 +622,7 @@ stop_slave ()
{ {
if [ x$SLAVE_RUNNING = x1 ] if [ x$SLAVE_RUNNING = x1 ]
then then
$MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O shutdown_timeout=10 shutdown $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O shutdown_timeout=20 shutdown
if [ $? != 0 ] && [ -f $SLAVE_MYPID ] if [ $? != 0 ] && [ -f $SLAVE_MYPID ]
then # try harder! then # try harder!
$ECHO "slave not cooperating with mysqladmin, will try manual kill" $ECHO "slave not cooperating with mysqladmin, will try manual kill"
...@@ -644,7 +644,7 @@ stop_master () ...@@ -644,7 +644,7 @@ stop_master ()
{ {
if [ x$MASTER_RUNNING = x1 ] if [ x$MASTER_RUNNING = x1 ]
then then
$MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root -O shutdown_timeout=10 shutdown $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root -O shutdown_timeout=20 shutdown
if [ $? != 0 ] && [ -f $MASTER_MYPID ] if [ $? != 0 ] && [ -f $MASTER_MYPID ]
then # try harder! then # try harder!
$ECHO "master not cooperating with mysqladmin, will try manual kill" $ECHO "master not cooperating with mysqladmin, will try manual kill"
......
...@@ -475,6 +475,10 @@ a ...@@ -475,6 +475,10 @@ a
1 1
2 2
4 4
a b
1 NULL
2 NULL
4 NULL
id name value uid id name value uid
1 one one value 101 1 one one value 101
3 three three value 103 3 three three value 103
......
...@@ -489,6 +489,8 @@ insert into t1 values (NULL),(NULL),(NULL); ...@@ -489,6 +489,8 @@ insert into t1 values (NULL),(NULL),(NULL);
delete from t1 where a=3; delete from t1 where a=3;
insert into t1 values (NULL); insert into t1 values (NULL);
select * from t1; select * from t1;
alter table t1 add b int;
select * from t1;
drop table t1; drop table t1;
#Slashdot bug #Slashdot bug
...@@ -511,4 +513,3 @@ set insert_id=6; ...@@ -511,4 +513,3 @@ set insert_id=6;
replace into t1 (value,name,uid) values ('other value','two',102); replace into t1 (value,name,uid) values ('other value','two',102);
select * from t1; select * from t1;
drop table t1; drop table t1;
...@@ -1509,6 +1509,12 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -1509,6 +1509,12 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
my_free((gptr) new_table,MYF(0)); my_free((gptr) new_table,MYF(0));
goto err; goto err;
} }
/* Close lock if this is a transactional table */
if (thd->lock)
{
mysql_unlock_tables(thd, thd->lock);
thd->lock=0;
}
/* Remove link to old table and rename the new one */ /* Remove link to old table and rename the new one */
close_temporary_table(thd,table->table_cache_key,table_name); close_temporary_table(thd,table->table_cache_key,table_name);
if (rename_temporary_table(thd, new_table, new_db, new_name)) if (rename_temporary_table(thd, new_table, new_db, new_name))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment