Reset row flag in get
This commit is contained in:
@ -774,6 +774,7 @@ int ObEncodeBlockGetReader::locate_row(
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
row.row_flag_.reset();
|
||||
if (found) {
|
||||
row.count_ = request_cnt_;
|
||||
row.row_flag_.set_flag(ObDmlFlag::DF_INSERT);
|
||||
@ -1398,6 +1399,7 @@ OB_INLINE int ObMicroBlockDecoder::get_row_impl(int64_t index, ObDatumRow &row)
|
||||
} else if (OB_FAIL(decode_cells(index, row_len, row_data, 0, request_cnt_, row.storage_datums_))) {
|
||||
LOG_WARN("decode cells failed", K(ret), K(index), K_(request_cnt));
|
||||
} else {
|
||||
row.row_flag_.reset();
|
||||
row.row_flag_.set_flag(ObDmlFlag::DF_INSERT);
|
||||
row.count_ = request_cnt_;
|
||||
row.mvcc_row_flag_.reset();
|
||||
|
||||
@ -166,13 +166,18 @@ int ObRowCacheValue::init(const int64_t start_log_ts,
|
||||
const ObDatumRow &row)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
datums_ = row.storage_datums_;
|
||||
column_cnt_ = row.get_column_count();
|
||||
start_log_ts_ = start_log_ts;
|
||||
flag_ = row.row_flag_;
|
||||
size_ = sizeof(ObStorageDatum) * column_cnt_;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < column_cnt_; i ++) {
|
||||
size_ += datums_[i].get_deep_copy_size();
|
||||
if (OB_UNLIKELY(!row.row_flag_.is_valid())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
STORAGE_LOG(WARN, "Unexpected row", K(ret), K(row));
|
||||
} else {
|
||||
datums_ = row.storage_datums_;
|
||||
column_cnt_ = row.get_column_count();
|
||||
start_log_ts_ = start_log_ts;
|
||||
flag_ = row.row_flag_;
|
||||
size_ = sizeof(ObStorageDatum) * column_cnt_;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < column_cnt_; i ++) {
|
||||
size_ += datums_[i].get_deep_copy_size();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user