summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/manual.texi2
-rw-r--r--mysql-test/mysql-test-run.sh6
-rw-r--r--mysql-test/t/innodb.test4
-rw-r--r--sql/ha_innobase.cc14
-rw-r--r--sql/sql_table.cc6
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))