diff options
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/metadata_lock_info/metadata_lock_info.cc | 29 | ||||
-rw-r--r-- | plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/global_read_lock.result | 3 |
2 files changed, 7 insertions, 25 deletions
diff --git a/plugin/metadata_lock_info/metadata_lock_info.cc b/plugin/metadata_lock_info/metadata_lock_info.cc index e32bbc55f3e..37c0ca3a460 100644 --- a/plugin/metadata_lock_info/metadata_lock_info.cc +++ b/plugin/metadata_lock_info/metadata_lock_info.cc @@ -21,7 +21,7 @@ #include "sql_show.h" static const LEX_STRING metadata_lock_info_lock_name[] = { - { C_STRING_WITH_LEN("Global read lock") }, + { C_STRING_WITH_LEN("Backup lock") }, { C_STRING_WITH_LEN("Schema metadata lock") }, { C_STRING_WITH_LEN("Table metadata lock") }, { C_STRING_WITH_LEN("Stored function metadata lock") }, @@ -29,23 +29,9 @@ static const LEX_STRING metadata_lock_info_lock_name[] = { { C_STRING_WITH_LEN("Stored package body metadata lock") }, { C_STRING_WITH_LEN("Trigger metadata lock") }, { C_STRING_WITH_LEN("Event metadata lock") }, - { C_STRING_WITH_LEN("Commit lock") }, { C_STRING_WITH_LEN("User lock") }, }; -static const LEX_STRING metadata_lock_info_lock_mode[] = { - { C_STRING_WITH_LEN("MDL_INTENTION_EXCLUSIVE") }, - { C_STRING_WITH_LEN("MDL_SHARED") }, - { C_STRING_WITH_LEN("MDL_SHARED_HIGH_PRIO") }, - { C_STRING_WITH_LEN("MDL_SHARED_READ") }, - { C_STRING_WITH_LEN("MDL_SHARED_WRITE") }, - { C_STRING_WITH_LEN("MDL_SHARED_UPGRADABLE") }, - { C_STRING_WITH_LEN("MDL_SHARED_READ_ONLY") }, - { C_STRING_WITH_LEN("MDL_SHARED_NO_WRITE") }, - { C_STRING_WITH_LEN("MDL_SHARED_NO_READ_WRITE") }, - { C_STRING_WITH_LEN("MDL_EXCLUSIVE") }, -}; - static ST_FIELD_INFO i_s_metadata_lock_info_fields_info[] = { {"THREAD_ID", 20, MYSQL_TYPE_LONGLONG, 0, @@ -71,22 +57,21 @@ struct st_i_s_metadata_param int i_s_metadata_lock_info_fill_row( MDL_ticket *mdl_ticket, - void *arg + void *arg, + bool granted ) { st_i_s_metadata_param *param = (st_i_s_metadata_param *) arg; THD *thd = param->thd; TABLE *table = param->table; DBUG_ENTER("i_s_metadata_lock_info_fill_row"); MDL_context *mdl_ctx = mdl_ticket->get_ctx(); - enum_mdl_type mdl_ticket_type = mdl_ticket->get_type(); MDL_key *mdl_key = mdl_ticket->get_key(); MDL_key::enum_mdl_namespace mdl_namespace = mdl_key->mdl_namespace(); + if (!granted) + DBUG_RETURN(0); table->field[0]->store((longlong) mdl_ctx->get_thread_id(), TRUE); table->field[1]->set_notnull(); - table->field[1]->store( - metadata_lock_info_lock_mode[(int) mdl_ticket_type].str, - metadata_lock_info_lock_mode[(int) mdl_ticket_type].length, - system_charset_info); + table->field[1]->store(mdl_ticket->get_type_name(), system_charset_info); table->field[2]->set_null(); table->field[3]->set_notnull(); table->field[3]->store( @@ -122,8 +107,6 @@ static int i_s_metadata_lock_info_init( compile_time_assert(sizeof(metadata_lock_info_lock_name)/sizeof(LEX_STRING) == MDL_key::NAMESPACE_END); - compile_time_assert(sizeof(metadata_lock_info_lock_mode)/sizeof(LEX_STRING) - == MDL_TYPE_END); ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *) p; DBUG_ENTER("i_s_metadata_lock_info_init"); diff --git a/plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/global_read_lock.result b/plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/global_read_lock.result index 5803d7d1290..12afd5010cc 100644 --- a/plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/global_read_lock.result +++ b/plugin/metadata_lock_info/mysql-test/metadata_lock_info/r/global_read_lock.result @@ -3,8 +3,7 @@ lock_mode lock_duration lock_type table_schema table_name FLUSH TABLES WITH READ LOCK; SELECT lock_mode, lock_duration, lock_type, table_schema, table_name FROM information_schema.metadata_lock_info; lock_mode lock_duration lock_type table_schema table_name -MDL_SHARED NULL Commit lock -MDL_SHARED NULL Global read lock +MDL_BACKUP_FTWRL2 NULL Backup lock UNLOCK TABLES; SELECT lock_mode, lock_duration, lock_type, table_schema, table_name FROM information_schema.metadata_lock_info; lock_mode lock_duration lock_type table_schema table_name |