Loading Docs/manual.texi +2 −0 Original line number Diff line number Diff line Loading @@ -46930,6 +46930,8 @@ not yet 100% confident in this code. @appendixsubsec Changes in release 3.23.54 @itemize @item Fixed a problem with BDB and @code{ALTER TABLE}. @item Fixed reference to freed memory when doing complicated @code{GROUP BY ... ORDER BY} queries. Symptom was that @code{mysqld} died in function @code{send_fields}. mysql-test/t/bdb-crash.test +2 −0 Original line number Diff line number Diff line -- source include/have_bdb.inc # test for bug reported by Mark Steele drop table if exists t1; Loading sql/sql_base.cc +1 −0 Original line number Diff line number Diff line Loading @@ -1530,6 +1530,7 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db, ha_open_options, tmp_table)) { my_free((char*) tmp_table,MYF(0)); DBUG_RETURN(0); } Loading sql/sql_table.cc +11 −3 Original line number Diff line number Diff line Loading @@ -1680,16 +1680,24 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, #ifdef HAVE_BERKELEY_DB if (old_db_type == DB_TYPE_BERKELEY_DB) { (void) berkeley_flush_logs(); /* For the alter table to be properly flushed to the logs, we have to open the new table. If not, we get a problem on server shutdown. */ if (!open_tables(thd, table_list)) // Should always succeed char path[FN_REFLEN]; (void) sprintf(path,"%s/%s/%s",mysql_data_home,new_db,table_name); fn_format(path,path,"","",4); table=open_temporary_table(thd, path, new_db, tmp_name,0); if (table) { close_thread_table(thd, &table_list->table); intern_close_table(table); my_free((char*) table, MYF(0)); } else sql_print_error("Warning: Could not open BDB table %s.%s after rename\n", new_db,table_name); (void) berkeley_flush_logs(); } #endif Loading Loading
Docs/manual.texi +2 −0 Original line number Diff line number Diff line Loading @@ -46930,6 +46930,8 @@ not yet 100% confident in this code. @appendixsubsec Changes in release 3.23.54 @itemize @item Fixed a problem with BDB and @code{ALTER TABLE}. @item Fixed reference to freed memory when doing complicated @code{GROUP BY ... ORDER BY} queries. Symptom was that @code{mysqld} died in function @code{send_fields}.
mysql-test/t/bdb-crash.test +2 −0 Original line number Diff line number Diff line -- source include/have_bdb.inc # test for bug reported by Mark Steele drop table if exists t1; Loading
sql/sql_base.cc +1 −0 Original line number Diff line number Diff line Loading @@ -1530,6 +1530,7 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db, ha_open_options, tmp_table)) { my_free((char*) tmp_table,MYF(0)); DBUG_RETURN(0); } Loading
sql/sql_table.cc +11 −3 Original line number Diff line number Diff line Loading @@ -1680,16 +1680,24 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, #ifdef HAVE_BERKELEY_DB if (old_db_type == DB_TYPE_BERKELEY_DB) { (void) berkeley_flush_logs(); /* For the alter table to be properly flushed to the logs, we have to open the new table. If not, we get a problem on server shutdown. */ if (!open_tables(thd, table_list)) // Should always succeed char path[FN_REFLEN]; (void) sprintf(path,"%s/%s/%s",mysql_data_home,new_db,table_name); fn_format(path,path,"","",4); table=open_temporary_table(thd, path, new_db, tmp_name,0); if (table) { close_thread_table(thd, &table_list->table); intern_close_table(table); my_free((char*) table, MYF(0)); } else sql_print_error("Warning: Could not open BDB table %s.%s after rename\n", new_db,table_name); (void) berkeley_flush_logs(); } #endif Loading