diff options
author | Daniel Black <daniel@mariadb.org> | 2020-10-10 08:28:53 +1100 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2020-10-14 15:14:46 +0300 |
commit | a6f956488c712bef3b13660584d1b905e0c676cc (patch) | |
tree | 5767c68f5672d809c0268b588f11a011e7a8687a /storage/innobase/row/row0sel.cc | |
parent | c03885cd9ceb1ede7f49a9e218022b401b3a1e28 (diff) | |
download | mariadb-git-a6f956488c712bef3b13660584d1b905e0c676cc.tar.gz |
MDEV-22761: innodb row_search_idx_cond_check handle CHECK_ABORTED_BY_USERbb-10.4-danielblack-MDEV-22761
Part #3:
Two more cases within row_search_mvcc need to handle the CHECK_ABORTED_BY_USER
and process this as a DB_INTERRUPTED.
Diffstat (limited to 'storage/innobase/row/row0sel.cc')
-rw-r--r-- | storage/innobase/row/row0sel.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc index 941a4904047..fad388f3dbd 100644 --- a/storage/innobase/row/row0sel.cc +++ b/storage/innobase/row/row0sel.cc @@ -4453,9 +4453,12 @@ row_search_mvcc( switch (row_search_idx_cond_check( buf, prebuilt, rec, offsets)) { + case CHECK_ABORTED_BY_USER: + err = DB_INTERRUPTED; + mtr.commit(); + goto func_exit; case CHECK_NEG: case CHECK_OUT_OF_RANGE: - case CHECK_ABORTED_BY_USER: case CHECK_ERROR: goto shortcut_mismatch; case CHECK_POS: @@ -5239,9 +5242,11 @@ no_gap_lock: buf, prebuilt, rec, offsets)) { case CHECK_NEG: goto next_rec; - case CHECK_OUT_OF_RANGE: case CHECK_ABORTED_BY_USER: - case CHECK_ERROR: + err = DB_INTERRUPTED; + goto idx_cond_failed; + case CHECK_OUT_OF_RANGE: + case CHECK_ERROR: err = DB_RECORD_NOT_FOUND; goto idx_cond_failed; case CHECK_POS: |