From: Zardosht Kasheff Date: January 12 2010 7:14pm Subject: consequences of HTON_FLUSH_AFTER_RENAME List-Archive: http://lists.mysql.com/internals/37636 Message-Id: <2f9663ba1001121114r4fb1c4dbub191de239d11b04e@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Hello, I was wondering what the purpose of HTON_FLUSH_AFTER_RENAME is for handertons. It seems exposing this flag causes a call to "flush logs" after any "alter table". Is there any other purpose? The relevant code seems to be the following in sql_table.cc: if (ha_check_storage_engine_flag(old_db_type, HTON_FLUSH_AFTER_RENAME)) { /* 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. But we do not need to attach MERGE children. */ char path[FN_REFLEN]; TABLE *t_table; build_table_filename(path, sizeof(path), new_db, table_name, "", 0); t_table= open_temporary_table(thd, path, new_db, tmp_name, 0); if (t_table) { intern_close_table(t_table); my_free(t_table, MYF(0)); } else sql_print_warning("Could not open table %s.%s after rename\n", new_db,table_name); ha_flush_logs(old_db_type); } I see the last line calls "flush logs". I do not understand what the code before that does. -Zardosht