1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-22761: innodb row_search_idx_cond_check handle CHECK_ABORTED_BY_USER

Part #2:
- row_search_mvcc() should return DB_INTERRUPTED when it got
- Move the sync point from innodb internals to
  handler_rowid_filter_check() where other storage engines can use
  it too
- Add a similar syncpoint for the ICP check.
- Add a bigger test and test coverage for Rowid Filter with MyISAM
- Add test coverage for killed-during-ICP-check scenario
This commit is contained in:
Sergei Petrunia
2020-10-09 17:48:22 +03:00
parent 171da6b38b
commit c03885cd9c
14 changed files with 359 additions and 8 deletions

View File

@ -6015,6 +6015,7 @@ extern "C" check_result_t handler_index_cond_check(void* h_arg)
THD *thd= h->table->in_use;
check_result_t res;
DEBUG_SYNC(thd, "handler_index_cond_check");
enum thd_kill_levels abort_at= h->has_transactions() ?
THD_ABORT_SOFTLY : THD_ABORT_ASAP;
if (thd_kill_level(thd) > abort_at)
@ -6048,6 +6049,7 @@ check_result_t handler_rowid_filter_check(void *h_arg)
if (!h->pushed_idx_cond)
{
THD *thd= h->table->in_use;
DEBUG_SYNC(thd, "handler_rowid_filter_check");
enum thd_kill_levels abort_at= h->has_transactions() ?
THD_ABORT_SOFTLY : THD_ABORT_ASAP;
if (thd_kill_level(thd) > abort_at)