diff options
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r-- | sql/sp_head.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc index cd7486dec72..83c928eb88f 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -3966,7 +3966,8 @@ sp_head::add_used_tables_to_table_list(THD *thd, table->belong_to_view= belong_to_view; table->trg_event_map= stab->trg_event_map; table->mdl_request.init(MDL_key::TABLE, table->db, table->table_name, - MDL_SHARED); + table->lock_type >= TL_WRITE_ALLOW_WRITE ? + MDL_SHARED_WRITE : MDL_SHARED_READ); /* Everyting else should be zeroed */ @@ -4009,7 +4010,8 @@ sp_add_to_query_tables(THD *thd, LEX *lex, table->select_lex= lex->current_select; table->cacheable_table= 1; table->mdl_request.init(MDL_key::TABLE, table->db, table->table_name, - MDL_SHARED); + table->lock_type >= TL_WRITE_ALLOW_WRITE ? + MDL_SHARED_WRITE : MDL_SHARED_READ); lex->add_to_query_tables(table); return table; |