open skip_ghost_row
This commit is contained in:
@ -1604,12 +1604,10 @@ int ObPartitionMinorRowMergeIter::next()
|
|||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("Unexpceted null current row", K(ret), K(*this));
|
LOG_WARN("Unexpceted null current row", K(ret), K(*this));
|
||||||
}
|
}
|
||||||
/* TODO is_rowkey_first_row_already_output_ is not right, can't skip ghost row now
|
|
||||||
} else if (OB_FAIL(skip_ghost_row())) {
|
} else if (OB_FAIL(skip_ghost_row())) {
|
||||||
if (OB_UNLIKELY(ret != OB_ITER_END)) {
|
if (OB_UNLIKELY(ret != OB_ITER_END)) {
|
||||||
LOG_WARN("Failed to skip_ghost_row", K(ret));
|
LOG_WARN("Failed to skip_ghost_row", K(ret));
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
} else if (need_recycle_mv_row()) {
|
} else if (need_recycle_mv_row()) {
|
||||||
if (OB_FAIL(compact_old_row())) {
|
if (OB_FAIL(compact_old_row())) {
|
||||||
LOG_WARN("Failed to compact_old_row", K(ret));
|
LOG_WARN("Failed to compact_old_row", K(ret));
|
||||||
@ -1888,7 +1886,6 @@ int ObPartitionMinorMacroMergeIter::next_range()
|
|||||||
}
|
}
|
||||||
macro_block_opened_ = false;
|
macro_block_opened_ = false;
|
||||||
have_macro_output_row_ = false;
|
have_macro_output_row_ = false;
|
||||||
is_rowkey_first_row_already_output_ = false;
|
|
||||||
is_rowkey_shadow_row_reused_ = false;
|
is_rowkey_shadow_row_reused_ = false;
|
||||||
if (OB_FAIL(check_macro_block_recycle(curr_block_desc_, can_recycle))) {
|
if (OB_FAIL(check_macro_block_recycle(curr_block_desc_, can_recycle))) {
|
||||||
LOG_WARN("failed to check macro block recycle", K(ret));
|
LOG_WARN("failed to check macro block recycle", K(ret));
|
||||||
@ -1918,6 +1915,8 @@ int ObPartitionMinorMacroMergeIter::open_curr_macro_block()
|
|||||||
ret = OB_INNER_STAT_ERROR;
|
ret = OB_INNER_STAT_ERROR;
|
||||||
LOG_WARN("Unepxcted opened macro block to open", K(ret));
|
LOG_WARN("Unepxcted opened macro block to open", K(ret));
|
||||||
} else {
|
} else {
|
||||||
|
bool is_first_row = false;
|
||||||
|
bool is_shadow_row = false;
|
||||||
ObSSTableRowWholeScanner *iter = reinterpret_cast<ObSSTableRowWholeScanner *>(row_iter_);
|
ObSSTableRowWholeScanner *iter = reinterpret_cast<ObSSTableRowWholeScanner *>(row_iter_);
|
||||||
iter->reuse();
|
iter->reuse();
|
||||||
if (OB_FAIL(iter->open(
|
if (OB_FAIL(iter->open(
|
||||||
@ -1928,21 +1927,19 @@ int ObPartitionMinorMacroMergeIter::open_curr_macro_block()
|
|||||||
*reinterpret_cast<ObSSTable *>(table_),
|
*reinterpret_cast<ObSSTable *>(table_),
|
||||||
last_mvcc_row_already_output_))) {
|
last_mvcc_row_already_output_))) {
|
||||||
LOG_WARN("fail to set context", K(ret));
|
LOG_WARN("fail to set context", K(ret));
|
||||||
|
} else if (OB_FAIL(iter->get_first_row_mvcc_info(is_first_row, is_shadow_row))) {
|
||||||
|
LOG_WARN("Fail to check rowkey first row info", K(ret), KPC(iter));
|
||||||
} else {
|
} else {
|
||||||
macro_block_opened_ = true;
|
macro_block_opened_ = true;
|
||||||
|
if (row_queue_.is_empty()) {
|
||||||
|
is_rowkey_first_row_already_output_ = !is_first_row;
|
||||||
|
}
|
||||||
if (last_macro_block_reused() && last_macro_block_recycled_) {
|
if (last_macro_block_reused() && last_macro_block_recycled_) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("Unexpected merge status", K(ret), K(curr_block_desc_.macro_block_id_), KPC(this));
|
LOG_WARN("Unexpected merge status", K(ret), K(curr_block_desc_.macro_block_id_), KPC(this));
|
||||||
} else if (last_macro_block_reused()) {
|
} else if (last_macro_block_reused()) {
|
||||||
bool is_first_row = false;
|
check_committing_trans_compacted_ = is_first_row;
|
||||||
bool is_shadow_row = false;
|
is_rowkey_shadow_row_reused_ = !is_first_row && !is_shadow_row;
|
||||||
if (OB_FAIL(iter->get_first_row_mvcc_info(is_first_row, is_shadow_row))) {
|
|
||||||
LOG_WARN("Fail to check rowkey first row info", K(ret), KPC(iter));
|
|
||||||
} else {
|
|
||||||
check_committing_trans_compacted_ = is_first_row;
|
|
||||||
is_rowkey_first_row_already_output_ = !is_first_row;
|
|
||||||
is_rowkey_shadow_row_reused_ = !is_first_row && !is_shadow_row;
|
|
||||||
}
|
|
||||||
} else if (last_macro_block_recycled_) {
|
} else if (last_macro_block_recycled_) {
|
||||||
last_macro_block_recycled_ = false;
|
last_macro_block_recycled_ = false;
|
||||||
check_committing_trans_compacted_ = true;
|
check_committing_trans_compacted_ = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user