From 30748ceed72d9679bac1cfd7f7cfc0aa487349e6 Mon Sep 17 00:00:00 2001 From: KyrielightWei Date: Fri, 26 Apr 2024 10:50:53 +0000 Subject: [PATCH] init direct_load_inc hash set in the function of assign --- .../tx/ob_direct_load_tx_ctx_define.cpp | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/storage/tx/ob_direct_load_tx_ctx_define.cpp b/src/storage/tx/ob_direct_load_tx_ctx_define.cpp index cfc514cbc..b8b08b29c 100644 --- a/src/storage/tx/ob_direct_load_tx_ctx_define.cpp +++ b/src/storage/tx/ob_direct_load_tx_ctx_define.cpp @@ -320,14 +320,22 @@ int ObDLIBatchSet::assign(const ObDLIBatchSet &other) { int ret = OB_SUCCESS; - reuse(); - ObDLIBatchSet::const_iterator iter = other.begin(); + ObMemAttr mem_attr(MTL_ID(), "DLI_BATCH_HASH"); + if (!other.created() || other.empty()) { + reuse(); + // do nothing + } else if (!created() && OB_FAIL(create(32, mem_attr, mem_attr))) { + TRANS_LOG(WARN, "create batch hash set failed", K(ret)); + } else { + reuse(); + ObDLIBatchSet::const_iterator iter = other.begin(); - while (iter != other.end() && OB_SUCC(ret)) { - if (OB_FAIL(set_refactored(iter->first, 1))) { - TRANS_LOG(WARN, "overwrite existed batch_info failed", K(ret), K(iter->first)); + while (iter != other.end() && OB_SUCC(ret)) { + if (OB_FAIL(set_refactored(iter->first, 1))) { + TRANS_LOG(WARN, "overwrite existed batch_info failed", K(ret), K(iter->first)); + } + iter++; } - iter++; } return ret;