[CP] Fix compacted row in memtable iterator
This commit is contained in:
@ -1293,12 +1293,8 @@ int ObMemtableMultiVersionScanIterator::iterate_compacted_row_value_(ObDatumRow
|
|||||||
if (OB_FAIL(row_reader_.read_memtable_row(mtd->buf_, mtd->buf_len_, *read_info_, row, bitmap_, read_finished))) {
|
if (OB_FAIL(row_reader_.read_memtable_row(mtd->buf_, mtd->buf_len_, *read_info_, row, bitmap_, read_finished))) {
|
||||||
TRANS_LOG(WARN, "Failed to read row without", K(ret));
|
TRANS_LOG(WARN, "Failed to read row without", K(ret));
|
||||||
} else if (ObDmlFlag::DF_INSERT == mtd->dml_flag_ || ObDmlFlag::DF_DELETE == mtd->dml_flag_ || read_finished) {
|
} else if (ObDmlFlag::DF_INSERT == mtd->dml_flag_ || ObDmlFlag::DF_DELETE == mtd->dml_flag_ || read_finished) {
|
||||||
row.set_compacted_multi_version_row();
|
if (bitmap_.is_empty() || ObDmlFlag::DF_DELETE == mtd->dml_flag_) {
|
||||||
// TODO: @dengzhi.ldz remove this
|
row.set_compacted_multi_version_row();
|
||||||
if (ObDmlFlag::DF_INSERT == mtd->dml_flag_ && !read_finished) {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
|
||||||
LOG_WARN("Unexpected not compact insert row", K(ret), K(row), K(bitmap_.get_nop_cnt()),
|
|
||||||
KPC(reinterpret_cast<const ObRowHeader*>(mtd->buf_)), KPC_(read_info));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1361,14 +1357,8 @@ int ObMemtableMultiVersionScanIterator::iterate_multi_version_row_value_(ObDatum
|
|||||||
if (row.row_flag_.is_lock()) {
|
if (row.row_flag_.is_lock()) {
|
||||||
row.row_flag_ = mtd->dml_flag_;
|
row.row_flag_ = mtd->dml_flag_;
|
||||||
}
|
}
|
||||||
if (row.row_flag_.is_insert() || row.row_flag_.is_delete() || read_finished) {
|
if (bitmap_.is_empty() || row.row_flag_.is_delete()) {
|
||||||
row.set_compacted_multi_version_row();
|
row.set_compacted_multi_version_row();
|
||||||
// TODO: @dengzhi.ldz remove this
|
|
||||||
if (row.row_flag_.is_insert() && !read_finished) {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
|
||||||
LOG_WARN("Unexpected not compact insert row", K(ret), K(row), K(bitmap_.get_nop_cnt()),
|
|
||||||
KPC(reinterpret_cast<const ObRowHeader*>(mtd->buf_)), KPC_(read_info));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (trans_version > version_range.multi_version_start_
|
if (trans_version > version_range.multi_version_start_
|
||||||
&& value_iter_->is_cur_multi_version_row_end()) {
|
&& value_iter_->is_cur_multi_version_row_end()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user