diff options
-rw-r--r-- | Docs/manual.texi | 2 | ||||
-rw-r--r-- | mysql-test/mysql-test-run.sh | 6 | ||||
-rw-r--r-- | mysql-test/t/innodb.test | 4 | ||||
-rw-r--r-- | sql/ha_innobase.cc | 14 | ||||
-rw-r--r-- | sql/sql_table.cc | 6 |
5 files changed, 26 insertions, 6 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 2d64a527b89..d49884d77c7 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -49089,6 +49089,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 b52fd3f5b94..a297488cb93 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -601,7 +601,7 @@ manager_term() shift if [ $USE_MANAGER = 0 ] ; then $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock -O \ - connect_timeout=5 shutdown >/dev/null 2>&1 + connect_timeout=5 -O shutdown_timeout=20 shutdown >/dev/null 2>&1 return fi $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ @@ -1049,8 +1049,8 @@ run_testcase () # Ensure that no old mysqld test servers are running if [ -z "$USE_RUNNING_SERVER" ] then - $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root -O connect_timeout=5 shutdown > /dev/null 2>&1 - $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --socket=$MASTER_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 + $MYSQLADMIN --no-defaults --socket=$SLAVE_MYSOCK -u root -O connect_timeout=5 -O shutdown_timeout=20 shutdown > /dev/null 2>&1 $ECHO "Installing Test Databases" mysql_install_db start_manager diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 0d2eb09eabd..4e107b29cf4 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 @@ -544,5 +546,3 @@ delete from t1; select * from t1; commit; drop table t1; - - diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc index 3ff3e15e88e..f5f93be98a6 100644 --- a/sql/ha_innobase.cc +++ b/sql/ha_innobase.cc @@ -827,7 +827,8 @@ ha_innobase::bas_ext() const /********************************************************************* Normalizes a table name string. A normalized name consists of the database name catenated to '/' and table name. An example: -test/mytable. */ +test/mytable. On Windows normalization puts both the database name and the +table name always to lower case. */ static void normalize_table_name( @@ -863,6 +864,17 @@ normalize_table_name( memcpy(norm_name, db_ptr, strlen(name) + 1 - (db_ptr - name)); norm_name[name_ptr - db_ptr - 1] = '/'; + +#ifdef __WIN__ + /* Put to lower case */ + + ptr = norm_name; + + while (*ptr != '\0') { + *ptr = tolower(*ptr); + ptr++; + } +#endif } /********************************************************************* diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 7af2afe4c41..b0e319288d9 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1564,6 +1564,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)) |