diff options
-rw-r--r-- | Docs/manual.texi | 2 | ||||
-rw-r--r-- | mysql-test/mysql-test-run.sh | 4 | ||||
-rw-r--r-- | mysql-test/r/innodb.result | 4 | ||||
-rw-r--r-- | mysql-test/t/innodb.test | 3 | ||||
-rw-r--r-- | sql/sql_table.cc | 6 |
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)) |