diff options
Diffstat (limited to 'sql/sql_base.h')
-rw-r--r-- | sql/sql_base.h | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sql/sql_base.h b/sql/sql_base.h index 3a31518840d..5d30c3611dc 100644 --- a/sql/sql_base.h +++ b/sql/sql_base.h @@ -57,6 +57,13 @@ enum enum_resolution_type { RESOLVED_AGAINST_ALIAS }; +/* Argument to flush_tables() of what to flush */ +enum flush_tables_type { + FLUSH_ALL, + FLUSH_NON_TRANS_TABLES, + FLUSH_SYS_TABLES +}; + enum find_item_error_report_type {REPORT_ALL_ERRORS, REPORT_EXCEPT_NOT_FOUND, IGNORE_ERRORS, REPORT_EXCEPT_NON_UNIQUE, IGNORE_EXCEPT_NON_UNIQUE}; @@ -289,12 +296,10 @@ TABLE *open_system_table_for_update(THD *thd, TABLE_LIST *one_table); TABLE *open_log_table(THD *thd, TABLE_LIST *one_table, Open_tables_backup *backup); void close_log_table(THD *thd, Open_tables_backup *backup); -TABLE *open_performance_schema_table(THD *thd, TABLE_LIST *one_table, - Open_tables_state *backup); -void close_performance_schema_table(THD *thd, Open_tables_state *backup); - bool close_cached_tables(THD *thd, TABLE_LIST *tables, bool wait_for_refresh, ulong timeout); +void purge_tables(bool purge_flag); +bool flush_tables(THD *thd, flush_tables_type flag); bool close_cached_connection_tables(THD *thd, LEX_CSTRING *connect_string); void close_all_tables_for_name(THD *thd, TABLE_SHARE *share, ha_extra_function extra, @@ -348,13 +353,6 @@ inline void setup_table_map(TABLE *table, TABLE_LIST *table_list, uint tablenr) table->force_index= table_list->force_index; table->force_index_order= table->force_index_group= 0; table->covering_keys= table->s->keys_for_keyread; - TABLE_LIST *orig= table_list->select_lex ? - table_list->select_lex->master_unit()->derived : 0; - if (!orig || !orig->is_merged_derived()) - { - /* Tables merged from derived were set up already.*/ - table->covering_keys= table->s->keys_for_keyread; - } } inline TABLE_LIST *find_table_in_global_list(TABLE_LIST *table, @@ -372,10 +370,12 @@ inline bool setup_fields_with_no_wrap(THD *thd, Ref_ptr_array ref_pointer_array, bool allow_sum_func) { bool res; - thd->lex->select_lex.no_wrap_view_item= TRUE; + SELECT_LEX *first= thd->lex->first_select_lex(); + DBUG_ASSERT(thd->lex->current_select == first); + first->no_wrap_view_item= TRUE; res= setup_fields(thd, ref_pointer_array, item, column_usage, sum_func_list, NULL, allow_sum_func); - thd->lex->select_lex.no_wrap_view_item= FALSE; + first->no_wrap_view_item= FALSE; return res; } @@ -561,14 +561,14 @@ public: Set flag indicating that we have already acquired metadata lock protecting this statement against GRL while opening tables. */ - void set_has_protection_against_grl() + void set_has_protection_against_grl(enum_mdl_type mdl_type) { - m_has_protection_against_grl= TRUE; + m_has_protection_against_grl|= MDL_BIT(mdl_type); } - bool has_protection_against_grl() const + bool has_protection_against_grl(enum_mdl_type mdl_type) const { - return m_has_protection_against_grl; + return (bool) (m_has_protection_against_grl & MDL_BIT(mdl_type)); } private: @@ -600,7 +600,7 @@ private: Indicates that in the process of opening tables we have acquired protection against global read lock. */ - bool m_has_protection_against_grl; + mdl_bitmap_t m_has_protection_against_grl; }; |