2 messages in com.mysql.lists.bugsRe: Strange behaviour of mysqld after...| From | Sent On | Attachments |
|---|---|---|
| Cams Ismael | 22 Aug 2002 04:49 | |
| Sinisa Milivojevic | 28 Aug 2002 06:48 |
| Subject: | Re: Strange behaviour of mysqld after dropping a column![]() |
|---|---|
| From: | Sinisa Milivojevic (sin...@mysql.com) |
| Date: | 08/28/2002 06:48:08 AM |
| List: | com.mysql.lists.bugs |
Cams Ismael writes:
Description: A time ago I reported next bug:
"The ALTER TABLE command behaves very strange when stopping and restarting the MySQL server afterwards. I noticed this after having rebooted my PC (which means that the MySql server is stopped and restarted). Before the reboot I dropped a column in one of my tables. After I had done this all the data was available in my table. However after have been rebooting my PC all the data was gone !!! It even becomes crazier. After the second reboot the data was visisble again. The tests I have executed showed that this problem shows up for both adding and deleting a column of a table. Also I noticed that when you add data after have been stopping the MySQL server the first time this data is dissapeared after a second stop of the MySQL server."
This problem should be solved in mysql-3.23.52. I have checked this and came to the conclusion the problem is indeed solved when adding a column, but after dropping a column the problem still exists !!!
Kind regards, Ismaël
Thank you for your test case. It helped us fix a bug in ALTER TABLE with BDB handler.
Fix will come up in 3.23.53 and 4.0.4. This is a patch that fixes it:
===== sql/sql_table.cc 1.103 vs edited ===== *** /tmp/sql_table.cc-1.103-25819 Mon Aug 5 18:50:34 2002 --- edited/sql/sql_table.cc Wed Aug 28 15:10:52 2002 *************** *** 1665,1675 **** VOID(pthread_cond_broadcast(&COND_refresh)); goto err; } - #ifdef HAVE_BERKELEY_DB - extern bool berkeley_flush_logs(void); - if (old_db_type == DB_TYPE_BERKELEY_DB && berkeley_flush_logs()) - goto err; - #endif thd->proc_info="end"; mysql_update_log.write(thd, thd->query,thd->query_length); if (mysql_bin_log.is_open()) --- 1665,1670 ---- *************** *** 1679,1684 **** --- 1674,1687 ---- } VOID(pthread_cond_broadcast(&COND_refresh)); VOID(pthread_mutex_unlock(&LOCK_open)); + #ifdef HAVE_BERKELEY_DB + extern bool berkeley_flush_logs(void); + if (old_db_type == DB_TYPE_BERKELEY_DB) + { + (void)berkeley_flush_logs(); + table=open_ltable(thd,table_list,TL_READ); + } + #endif
end_temporary: sprintf(tmp_name,ER(ER_INSERT_INFO),(ulong) (copied+deleted),
-- Regards, __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Mr. Sinisa Milivojevic <sin...@mysql.com> / /|_/ / // /\ \/ /_/ / /__ MySQL AB, Fulltime Developer /_/ /_/\_, /___/\___\_\___/ Larnaca, Cyprus <___/ www.mysql.com




