fix fuse row cache problem with uncommited row across micro block

This commit is contained in:
chaser-ch
2021-11-10 13:51:40 +08:00
committed by LINxiansheng
parent b5266f04ea
commit ab2bb5a20c
2 changed files with 98 additions and 0 deletions

View File

@ -809,6 +809,7 @@ void ObMultiVersionMicroBlockRowScanner::reuse_prev_micro_row()
}
prev_micro_row_.flag_ = ObActionFlag::OP_ROW_DOES_NOT_EXIST;
prev_micro_row_.from_base_ = false;
prev_micro_row_.snapshot_version_ = 0;
cell_allocator_.reuse();
reserved_pos_ = ObIMicroBlockReader::INVALID_ROW_INDEX;
@ -1089,6 +1090,7 @@ int ObMultiVersionMicroBlockRowScanner::cache_cur_micro_row(const bool found_fir
prev_micro_row_.flag_ = cur_micro_row_.flag_;
prev_micro_row_.from_base_ = cur_micro_row_.from_base_;
prev_micro_row_.row_val_.count_ = cur_micro_row_.row_val_.count_;
prev_micro_row_.snapshot_version_ = cur_micro_row_.snapshot_version_;
}
// The positive scan scans from new to old (trans_version is negative), so cur_row is older than prev_row
// So just add the nop column (column for which the value has not been decided)