[bugfix]: for already commited tablet, shouldn't append related lob tablet.
This commit is contained in:
@ -1433,7 +1433,7 @@ int ObComplementWriteTask::append_row(ObScan *scan)
|
|||||||
LOG_WARN("tmp_row is nullptr", K(ret));
|
LOG_WARN("tmp_row is nullptr", K(ret));
|
||||||
} else if (OB_FAIL(add_extra_rowkey(rowkey_column_cnt, extra_rowkey_cnt, *tmp_row))) {
|
} else if (OB_FAIL(add_extra_rowkey(rowkey_column_cnt, extra_rowkey_cnt, *tmp_row))) {
|
||||||
LOG_WARN("fail to add extra rowkey", K(ret));
|
LOG_WARN("fail to add extra rowkey", K(ret));
|
||||||
} else if (OB_FAIL(append_lob(rowkey_column_cnt, extra_rowkey_cnt, row_iter, lob_allocator))) {
|
} else if (!ddl_committed && OB_FAIL(append_lob(rowkey_column_cnt, extra_rowkey_cnt, row_iter, lob_allocator))) {
|
||||||
LOG_WARN("append lob into macro block failed", K(ret));
|
LOG_WARN("append lob into macro block failed", K(ret));
|
||||||
} else if (OB_FAIL(new_row_builder.build(write_row_, tmp_store_row))) {
|
} else if (OB_FAIL(new_row_builder.build(write_row_, tmp_store_row))) {
|
||||||
} else if (OB_FAIL(ObRowReshapeUtil::reshape_table_rows(
|
} else if (OB_FAIL(ObRowReshapeUtil::reshape_table_rows(
|
||||||
|
|||||||
@ -827,10 +827,11 @@ int ObTenantDirectLoadMgr::check_and_process_finished_tablet(
|
|||||||
}
|
}
|
||||||
if (OB_SUCC(ret) && nullptr != row_iter) {
|
if (OB_SUCC(ret) && nullptr != row_iter) {
|
||||||
const ObDatumRow *row = nullptr;
|
const ObDatumRow *row = nullptr;
|
||||||
|
const bool skip_lob = true;
|
||||||
while (OB_SUCC(ret)) {
|
while (OB_SUCC(ret)) {
|
||||||
if (OB_FAIL(THIS_WORKER.check_status())) {
|
if (OB_FAIL(THIS_WORKER.check_status())) {
|
||||||
LOG_WARN("check status failed", K(ret));
|
LOG_WARN("check status failed", K(ret));
|
||||||
} else if (OB_FAIL(row_iter->get_next_row(row))) {
|
} else if (OB_FAIL(static_cast<ObDDLInsertRowIterator*>(row_iter)->get_next_row(skip_lob, row))) {
|
||||||
if (OB_ITER_END == ret) {
|
if (OB_ITER_END == ret) {
|
||||||
ret = OB_SUCCESS;
|
ret = OB_SUCCESS;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -85,6 +85,7 @@ int ObDDLInsertRowIterator::close_lob_sstable_slice()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int ObDDLInsertRowIterator::get_next_row(
|
int ObDDLInsertRowIterator::get_next_row(
|
||||||
|
const bool skip_lob,
|
||||||
const blocksstable::ObDatumRow *&row)
|
const blocksstable::ObDatumRow *&row)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
@ -162,7 +163,7 @@ int ObDDLInsertRowIterator::get_next_row(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OB_SUCC(ret) && lob_column_idxs.count() > 0) {
|
if (OB_SUCC(ret) && !skip_lob && lob_column_idxs.count() > 0) {
|
||||||
//handle lob
|
//handle lob
|
||||||
if (lob_id_cache_.remain_count() < lob_column_idxs.count()) {
|
if (lob_id_cache_.remain_count() < lob_column_idxs.count()) {
|
||||||
if (OB_FAIL(switch_to_new_lob_slice())) {
|
if (OB_FAIL(switch_to_new_lob_slice())) {
|
||||||
|
|||||||
@ -273,7 +273,12 @@ public:
|
|||||||
const int64_t context_id,
|
const int64_t context_id,
|
||||||
const int64_t parallel_idx);
|
const int64_t parallel_idx);
|
||||||
virtual ~ObDDLInsertRowIterator();
|
virtual ~ObDDLInsertRowIterator();
|
||||||
virtual int get_next_row(const blocksstable::ObDatumRow *&row) override;
|
virtual int get_next_row(const blocksstable::ObDatumRow *&row) override
|
||||||
|
{
|
||||||
|
const bool skip_lob = false;
|
||||||
|
return get_next_row(skip_lob, row);
|
||||||
|
}
|
||||||
|
int get_next_row(const bool skip_lob, const blocksstable::ObDatumRow *&row);
|
||||||
TO_STRING_KV(K_(ls_id), K_(current_tablet_id), K_(current_row), K_(is_slice_empty), K_(is_next_row_cached), K_(rowkey_count), K_(snapshot_version),
|
TO_STRING_KV(K_(ls_id), K_(current_tablet_id), K_(current_row), K_(is_slice_empty), K_(is_next_row_cached), K_(rowkey_count), K_(snapshot_version),
|
||||||
K_(lob_slice_id), K_(lob_id_cache), K_(context_id));
|
K_(lob_slice_id), K_(lob_id_cache), K_(context_id));
|
||||||
public:
|
public:
|
||||||
|
|||||||
Reference in New Issue
Block a user