summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/manual.texi2
-rw-r--r--mysql-test/mysql-test-run.sh4
-rw-r--r--mysql-test/r/innodb.result4
-rw-r--r--mysql-test/t/innodb.test3
-rw-r--r--sql/sql_table.cc6
5 files changed, 16 insertions, 3 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 46a62f66eef..0f234fcfd21 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -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.
@item
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
@node News-3.23.44, News-3.23.43, News-3.23.45, News-3.23.x
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 9c2cda6108e..de76c6354f5 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -622,7 +622,7 @@ stop_slave ()
{
if [ x$SLAVE_RUNNING = x1 ]
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 ]
then # try harder!
$ECHO "slave not cooperating with mysqladmin, will try manual kill"
@@ -644,7 +644,7 @@ stop_master ()
{
if [ x$MASTER_RUNNING = x1 ]
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 ]
then # try harder!
$ECHO "master not cooperating with mysqladmin, will try manual kill"
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 9553f78f73c..fddfbfccd33 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -475,6 +475,10 @@ a
1
2
4
+a b
+1 NULL
+2 NULL
+4 NULL
id name value uid
1 one one value 101
3 three three value 103
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index 5530e2b1f54..1f646828324 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -489,6 +489,8 @@ insert into t1 values (NULL),(NULL),(NULL);
delete from t1 where a=3;
insert into t1 values (NULL);
select * from t1;
+alter table t1 add b int;
+select * from t1;
drop table t1;
#Slashdot bug
@@ -511,4 +513,3 @@ set insert_id=6;
replace into t1 (value,name,uid) values ('other value','two',102);
select * from t1;
drop table t1;
-
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index cf788cee05f..725aed390be 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1509,6 +1509,12 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
my_free((gptr) new_table,MYF(0));
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 */
close_temporary_table(thd,table->table_cache_key,table_name);
if (rename_temporary_table(thd, new_table, new_db, new_name))