summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--storage/innobase/row/row0sel.cc11
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: