diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 5baf05c7f38..c39786c7c45 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -9611,7 +9611,7 @@ void tdc_remove_table(THD *thd, enum_tdc_remove_table_type remove_type, */ if (remove_type == TDC_RT_REMOVE_NOT_OWN) share->remove_from_cache_at_close(); - else + else if (remove_type != TDC_RT_REMOVE_NOT_OWN_KEEP_SHARE) { /* Ensure that no can open the table while it's used */ share->protect_against_usage(); diff --git a/sql/sql_base.h b/sql/sql_base.h index a4f35b59ba9..cff7432d00f 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -61,8 +61,8 @@ enum find_item_error_report_type {REPORT_ALL_ERRORS, REPORT_EXCEPT_NOT_FOUND, enum enum_tdc_remove_table_type {TDC_RT_REMOVE_ALL, TDC_RT_REMOVE_NOT_OWN, TDC_RT_REMOVE_UNUSED, - TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE}; -#define TDC_RT_REMOVE_NOT_OWN_KEEP_SHARE TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE + TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE, + TDC_RT_REMOVE_NOT_OWN_KEEP_SHARE}; /* bits for last argument to remove_table_from_cache() */ #define RTFC_NO_FLAG 0x0000