LP #1188172: Incorrectly ported fake changes support in row_ins_clust_index_entry_low()

Description

**Reported in Launchpad by Laurynas Biveinis last update 17-10-2013 09:38:35

row_ins_clust_index_entry_low() reads

if (mode == BTR_MODIFY_LEAF && dict_index_is_online_ddl(index)) {
if (UNIV_UNLIKELY(thr_get_trx(thr)->fake_changes)) {
mode = BTR_SEARCH_LEAF | BTR_ALREADY_S_LATCHED;
} else {
mode = BTR_MODIFY_LEAF | BTR_ALREADY_S_LATCHED;
}
mtr_s_lock(dict_index_get_lock(index), &mtr);
} else if (UNIV_UNLIKELY(thr_get_trx(thr)->fake_changes)) {
mode = (mode & BTR_MODIFY_TREE)
? BTR_SEARCH_TREE : BTR_SEARCH_LEAF;
}

...

if (UNIV_UNLIKELY(thr_get_trx(thr)->fake_changes)) {
mode = (mode & BTR_MODIFY_TREE)
? BTR_SEARCH_TREE : BTR_SEARCH_LEAF;
}

The second if is redundant and will clear BTR_ALREADY_S_LATCHED from the first if, which, in turn, might be unnecessary in the first place.

Environment

None

Smart Checklist

Activity

Show:
Done

Details

Assignee

Reporter

Priority

Smart Checklist

Created January 21, 2018 at 2:28 PM
Updated January 21, 2018 at 2:29 PM
Resolved January 21, 2018 at 2:29 PM