| 529 | */ |
| 530 | |
| 531 | static TABLE *open_proc_table_for_update(THD *thd) |
| 532 | { |
| 533 | TABLE_LIST table_list; |
| 534 | TABLE *table; |
| 535 | MDL_savepoint mdl_savepoint= thd->mdl_context.mdl_savepoint(); |
| 536 | DBUG_ENTER("open_proc_table_for_update"); |
| 537 | |
| 538 | DBUG_ASSERT(!thd->internal_transaction()); |
| 539 | |
| 540 | table_list.init_one_table(&MYSQL_SCHEMA_NAME, &MYSQL_PROC_NAME, NULL, |
| 541 | TL_WRITE); |
| 542 | |
| 543 | if (!(table= open_system_table_for_update(thd, &table_list))) |
| 544 | DBUG_RETURN(NULL); |
| 545 | |
| 546 | if (!proc_table_intact.check(table, &proc_table_def)) |
| 547 | DBUG_RETURN(table); |
| 548 | |
| 549 | thd->commit_whole_transaction_and_close_tables(); |
| 550 | thd->mdl_context.rollback_to_savepoint(mdl_savepoint); |
| 551 | |
| 552 | DBUG_RETURN(NULL); |
| 553 | } |
| 554 | |
| 555 | |
| 556 | /** |
no test coverage detected