mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Split tdc_remove_table()
TDC_RT_REMOVE_ALL -> tdc_remove_table(). Some occurrences replaced with TDC_element::flush() (whenver TABLE_SHARE is available). TDC_RT_REMOVE_NOT_OWN[_KEEP_SHARE] -> TDC_element::flush(). These modes assume that current thread owns TABLE_SHARE reference, which means we can avoid hash lookup and flush unused TABLE instances directly. TDC_RT_REMOVE_UNUSED -> TDC_element::flush_unused(). Only [ab]used by mysql_admin_table() currently. Should be removed eventually. Part of MDEV-17882 - Cleanup refresh version
This commit is contained in:
@ -2485,8 +2485,7 @@ int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables, bool if_exists,
|
||||
table->table= 0;
|
||||
}
|
||||
else
|
||||
tdc_remove_table(thd, TDC_RT_REMOVE_ALL, table->db.str,
|
||||
table->table_name.str);
|
||||
tdc_remove_table(thd, table->db.str, table->table_name.str);
|
||||
|
||||
/* Check that we have an exclusive lock on the table to be dropped. */
|
||||
DBUG_ASSERT(thd->mdl_context.is_lock_owner(MDL_key::TABLE, table->db.str,
|
||||
@ -7753,8 +7752,7 @@ static bool mysql_inplace_alter_table(THD *thd,
|
||||
thd->variables.lock_wait_timeout))
|
||||
goto cleanup;
|
||||
|
||||
tdc_remove_table(thd, TDC_RT_REMOVE_NOT_OWN_KEEP_SHARE,
|
||||
table->s->db.str, table->s->table_name.str);
|
||||
table->s->tdc->flush(thd, false);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user