mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
More fixes for LOCK TABLE and REPAIR/FLUSH
Changed HA_EXTRA_NORMAL to HA_EXTRA_NOT_USED (more clean) mysql-test/suite/maria/lock.result: More extensive tests of LOCK TABLE with FLUSH and REPAIR mysql-test/suite/maria/lock.test: More extensive tests of LOCK TABLE with FLUSH and REPAIR sql/sql_admin.cc: Fix that REPAIR TABLE ... USE_FRM works with LOCK TABLES sql/sql_base.cc: Ensure that transactions are closed in ARIA when doing flush HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED Don't call extra many times for a table in close_all_tables_for_name() Added test if table_list->table as this can happen in error situations sql/sql_partition.cc: HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED sql/sql_reload.cc: Fixed comment sql/sql_table.cc: HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED sql/sql_trigger.cc: HA_EXTRA_NORMAL -> HA_EXTRA_NOT_USED sql/sql_truncate.cc: HA_EXTRA_FORCE_REOPEN -> HA_EXTRA_PREPARE_FOR_DROP for truncate, as this speeds up truncate by not having to flush the cache to disk.
This commit is contained in:
@ -358,12 +358,12 @@ bool Truncate_statement::lock_table(THD *thd, TABLE_LIST *table_ref,
|
||||
{
|
||||
DEBUG_SYNC(thd, "upgrade_lock_for_truncate");
|
||||
/* To remove the table from the cache we need an exclusive lock. */
|
||||
if (wait_while_table_is_used(thd, table, HA_EXTRA_FORCE_REOPEN))
|
||||
if (wait_while_table_is_used(thd, table, HA_EXTRA_PREPARE_FOR_DROP))
|
||||
DBUG_RETURN(TRUE);
|
||||
m_ticket_downgrade= table->mdl_ticket;
|
||||
/* Close if table is going to be recreated. */
|
||||
if (*hton_can_recreate)
|
||||
close_all_tables_for_name(thd, table->s, HA_EXTRA_PREPARE_FOR_DROP);
|
||||
close_all_tables_for_name(thd, table->s, HA_EXTRA_NOT_USED);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user