From 2b64e56aff6a45f5a0faf34c97633244aa02b60b Mon Sep 17 00:00:00 2001 From: lx0 Date: Fri, 10 Dec 2021 13:43:04 +0800 Subject: [PATCH] [C] fix deal_with_tables [3.1_opensource_release < 3_1_x_release] --- src/storage/ob_multiple_merge.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/storage/ob_multiple_merge.cpp b/src/storage/ob_multiple_merge.cpp index 8a01f9de2..718b9b7f5 100644 --- a/src/storage/ob_multiple_merge.cpp +++ b/src/storage/ob_multiple_merge.cpp @@ -270,9 +270,16 @@ int ObMultipleMerge::deal_with_tables(ObTableAccessContext& context, ObTablesHan read_memtable_only_ = true; } if (result_tables.count() != tables_handle_.get_count()) { - tables_handle_.reset_tables(); - if (OB_FAIL(tables_handle_.add_tables(result_tables))) { + ObTablesHandle tmp_table_handles; + if (OB_FAIL(tmp_table_handles.add_tables(result_tables))) { STORAGE_LOG(WARN, "failed to push result tables into tables handle", K(ret), K(result_tables)); + } else { + tables_handle_.reset_tables(); + if (OB_FAIL(tables_handle_.assign(tmp_table_handles))) { + STORAGE_LOG(WARN, "failed assgin tables handle", K(ret)); + } else if (memtable_cnt > 0) { + tables_handle_.set_retire_check(); + } } } }