Loading sql/lock.cc +2 −5 Original line number Diff line number Diff line Loading @@ -584,13 +584,10 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list) DBUG_RETURN(-1); } { if (remove_table_from_cache(thd, db, table_list->real_name, RTFC_NO_FLAG)) if (remove_table_from_cache(thd, db, table_list->real_name, RTFC_NO_FLAG)) { DBUG_RETURN(1); // Table is in use } } DBUG_RETURN(0); } Loading sql/mysql_priv.h +3 −3 Original line number Diff line number Diff line Loading @@ -1029,12 +1029,12 @@ void unlock_table_names(THD *thd, TABLE_LIST *table_list, void unireg_init(ulong options); void unireg_end(void); bool mysql_create_frm(THD *thd, my_string file_name, const char *table, const char* db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_field, uint key_count,KEY *key_info,handler *db_type); int rea_create_table(THD *thd, my_string file_name, const char *table, const char* db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_field, uint key_count,KEY *key_info); Loading Loading @@ -1107,7 +1107,7 @@ ulong make_new_entry(File file,uchar *fileinfo,TYPELIB *formnames, const char *newname); ulong next_io_size(ulong pos); void append_unescaped(String *res, const char *pos, uint length); int create_frm(char *name, const char *table, const char *db, int create_frm(char *name, const char *db, const char *table, uint reclength,uchar *fileinfo, HA_CREATE_INFO *create_info, uint keys); void update_create_info_from_table(HA_CREATE_INFO *info, TABLE *form); Loading sql/sql_table.cc +10 −9 Original line number Diff line number Diff line Loading @@ -220,7 +220,6 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, for (table=tables ; table ; table=table->next) { char *db=table->db; uint flags; mysql_ha_flush(thd, table, MYSQL_HA_CLOSE_FINAL); if (!close_temporary_table(thd, db, table->real_name)) { Loading @@ -232,8 +231,9 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, if (!drop_temporary) { abort_locked_tables(thd,db,table->real_name); flags= RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG; remove_table_from_cache(thd,db,table->real_name,flags); remove_table_from_cache(thd,db,table->real_name, RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG); drop_locked_tables(thd,db,table->real_name); if (thd->killed) DBUG_RETURN(-1); Loading Loading @@ -1418,7 +1418,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, create_info->data_file_name= create_info->index_file_name= 0; create_info->table_options=db_options; if (rea_create_table(thd, path, table_name, db, if (rea_create_table(thd, path, db, table_name, create_info, fields, key_count, key_info_buffer)) goto end; Loading Loading @@ -1979,14 +1979,14 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, /* Close all instances of the table to allow repair to rename files */ if (lock_type == TL_WRITE && table->table->version) { uint flags; pthread_mutex_lock(&LOCK_open); const char *old_message=thd->enter_cond(&COND_refresh, &LOCK_open, "Waiting to get writelock"); mysql_lock_abort(thd,table->table); flags= RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG; remove_table_from_cache(thd, table->table->table_cache_key, table->table->real_name, flags); table->table->real_name, RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG); thd->exit_cond(old_message); if (thd->killed) goto err; Loading Loading @@ -3410,9 +3410,10 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, if (table) { VOID(table->file->extra(HA_EXTRA_FORCE_REOPEN)); // Use new file /* Mark in-use copies old */ remove_table_from_cache(thd,db,table_name,RTFC_NO_FLAG); // Mark in-use copies old mysql_lock_abort(thd,table); // end threads waiting on lock /* end threads waiting on lock */ mysql_lock_abort(thd,table); } VOID(quick_rm_table(old_db_type,db,old_name)); if (close_data_tables(thd,db,table_name) || Loading sql/table.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1238,7 +1238,7 @@ void append_unescaped(String *res, const char *pos, uint length) /* Create a .frm file */ File create_frm(register my_string name, const char *table, const char *db, File create_frm(register my_string name, const char *db, const char *table, uint reclength, uchar *fileinfo, HA_CREATE_INFO *create_info, uint keys) { Loading sql/unireg.cc +6 −6 Original line number Diff line number Diff line Loading @@ -56,8 +56,8 @@ static bool make_empty_rec(int file, enum db_type table_type, mysql_create_frm() thd Thread handler file_name Name of file (including database and .frm) table Name of table db Name of database table Name of table create_info create info parameters create_fields Fields to create keys number of keys to create Loading @@ -70,7 +70,7 @@ static bool make_empty_rec(int file, enum db_type table_type, */ bool mysql_create_frm(THD *thd, my_string file_name, const char *table, const char *db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_fields, uint keys, KEY *key_info, Loading Loading @@ -117,7 +117,7 @@ bool mysql_create_frm(THD *thd, my_string file_name, reclength=uint2korr(forminfo+266); null_fields=uint2korr(forminfo+282); if ((file=create_frm(file_name, table, db, reclength, fileinfo, if ((file=create_frm(file_name, db, table, reclength, fileinfo, create_info, keys)) < 0) { my_free((gptr) screen_buff,MYF(0)); Loading Loading @@ -219,8 +219,8 @@ bool mysql_create_frm(THD *thd, my_string file_name, rea_create_table() thd Thread handler file_name Name of file (including database and .frm) table Name of table db Name of database table Name of table create_info create info parameters create_fields Fields to create keys number of keys to create Loading @@ -233,14 +233,14 @@ bool mysql_create_frm(THD *thd, my_string file_name, */ int rea_create_table(THD *thd, my_string file_name, const char *table, const char *db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_fields, uint keys, KEY *key_info) { DBUG_ENTER("rea_create_table"); if (mysql_create_frm(thd, file_name, table, db, create_info, if (mysql_create_frm(thd, file_name, db, table, create_info, create_fields, keys, key_info, NULL)) DBUG_RETURN(1); if (ha_create_table(file_name,create_info,0)) Loading Loading
sql/lock.cc +2 −5 Original line number Diff line number Diff line Loading @@ -584,13 +584,10 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list) DBUG_RETURN(-1); } { if (remove_table_from_cache(thd, db, table_list->real_name, RTFC_NO_FLAG)) if (remove_table_from_cache(thd, db, table_list->real_name, RTFC_NO_FLAG)) { DBUG_RETURN(1); // Table is in use } } DBUG_RETURN(0); } Loading
sql/mysql_priv.h +3 −3 Original line number Diff line number Diff line Loading @@ -1029,12 +1029,12 @@ void unlock_table_names(THD *thd, TABLE_LIST *table_list, void unireg_init(ulong options); void unireg_end(void); bool mysql_create_frm(THD *thd, my_string file_name, const char *table, const char* db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_field, uint key_count,KEY *key_info,handler *db_type); int rea_create_table(THD *thd, my_string file_name, const char *table, const char* db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_field, uint key_count,KEY *key_info); Loading Loading @@ -1107,7 +1107,7 @@ ulong make_new_entry(File file,uchar *fileinfo,TYPELIB *formnames, const char *newname); ulong next_io_size(ulong pos); void append_unescaped(String *res, const char *pos, uint length); int create_frm(char *name, const char *table, const char *db, int create_frm(char *name, const char *db, const char *table, uint reclength,uchar *fileinfo, HA_CREATE_INFO *create_info, uint keys); void update_create_info_from_table(HA_CREATE_INFO *info, TABLE *form); Loading
sql/sql_table.cc +10 −9 Original line number Diff line number Diff line Loading @@ -220,7 +220,6 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, for (table=tables ; table ; table=table->next) { char *db=table->db; uint flags; mysql_ha_flush(thd, table, MYSQL_HA_CLOSE_FINAL); if (!close_temporary_table(thd, db, table->real_name)) { Loading @@ -232,8 +231,9 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, if (!drop_temporary) { abort_locked_tables(thd,db,table->real_name); flags= RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG; remove_table_from_cache(thd,db,table->real_name,flags); remove_table_from_cache(thd,db,table->real_name, RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG); drop_locked_tables(thd,db,table->real_name); if (thd->killed) DBUG_RETURN(-1); Loading Loading @@ -1418,7 +1418,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, create_info->data_file_name= create_info->index_file_name= 0; create_info->table_options=db_options; if (rea_create_table(thd, path, table_name, db, if (rea_create_table(thd, path, db, table_name, create_info, fields, key_count, key_info_buffer)) goto end; Loading Loading @@ -1979,14 +1979,14 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, /* Close all instances of the table to allow repair to rename files */ if (lock_type == TL_WRITE && table->table->version) { uint flags; pthread_mutex_lock(&LOCK_open); const char *old_message=thd->enter_cond(&COND_refresh, &LOCK_open, "Waiting to get writelock"); mysql_lock_abort(thd,table->table); flags= RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG; remove_table_from_cache(thd, table->table->table_cache_key, table->table->real_name, flags); table->table->real_name, RTFC_WAIT_OTHER_THREAD_FLAG | RTFC_CHECK_KILLED_FLAG); thd->exit_cond(old_message); if (thd->killed) goto err; Loading Loading @@ -3410,9 +3410,10 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, if (table) { VOID(table->file->extra(HA_EXTRA_FORCE_REOPEN)); // Use new file /* Mark in-use copies old */ remove_table_from_cache(thd,db,table_name,RTFC_NO_FLAG); // Mark in-use copies old mysql_lock_abort(thd,table); // end threads waiting on lock /* end threads waiting on lock */ mysql_lock_abort(thd,table); } VOID(quick_rm_table(old_db_type,db,old_name)); if (close_data_tables(thd,db,table_name) || Loading
sql/table.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1238,7 +1238,7 @@ void append_unescaped(String *res, const char *pos, uint length) /* Create a .frm file */ File create_frm(register my_string name, const char *table, const char *db, File create_frm(register my_string name, const char *db, const char *table, uint reclength, uchar *fileinfo, HA_CREATE_INFO *create_info, uint keys) { Loading
sql/unireg.cc +6 −6 Original line number Diff line number Diff line Loading @@ -56,8 +56,8 @@ static bool make_empty_rec(int file, enum db_type table_type, mysql_create_frm() thd Thread handler file_name Name of file (including database and .frm) table Name of table db Name of database table Name of table create_info create info parameters create_fields Fields to create keys number of keys to create Loading @@ -70,7 +70,7 @@ static bool make_empty_rec(int file, enum db_type table_type, */ bool mysql_create_frm(THD *thd, my_string file_name, const char *table, const char *db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_fields, uint keys, KEY *key_info, Loading Loading @@ -117,7 +117,7 @@ bool mysql_create_frm(THD *thd, my_string file_name, reclength=uint2korr(forminfo+266); null_fields=uint2korr(forminfo+282); if ((file=create_frm(file_name, table, db, reclength, fileinfo, if ((file=create_frm(file_name, db, table, reclength, fileinfo, create_info, keys)) < 0) { my_free((gptr) screen_buff,MYF(0)); Loading Loading @@ -219,8 +219,8 @@ bool mysql_create_frm(THD *thd, my_string file_name, rea_create_table() thd Thread handler file_name Name of file (including database and .frm) table Name of table db Name of database table Name of table create_info create info parameters create_fields Fields to create keys number of keys to create Loading @@ -233,14 +233,14 @@ bool mysql_create_frm(THD *thd, my_string file_name, */ int rea_create_table(THD *thd, my_string file_name, const char *table, const char *db, const char *db, const char *table, HA_CREATE_INFO *create_info, List<create_field> &create_fields, uint keys, KEY *key_info) { DBUG_ENTER("rea_create_table"); if (mysql_create_frm(thd, file_name, table, db, create_info, if (mysql_create_frm(thd, file_name, db, table, create_info, create_fields, keys, key_info, NULL)) DBUG_RETURN(1); if (ha_create_table(file_name,create_info,0)) Loading