From 6e9e639aac17b8c4af3303c0e78c510fbfe0ae5f Mon Sep 17 00:00:00 2001 From: yishenglanlingzui <395329313@qq.com> Date: Wed, 28 Jul 2021 01:06:13 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=EF=BC=9Adata=20inconsistency=20will?= =?UTF-8?q?=20occur=20after=20multiple=20rows=20are=20replaced=20into?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sql/engine/dml/ob_table_conflict_row_fetcher_op.cpp | 1 + src/storage/ob_partition_storage.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/sql/engine/dml/ob_table_conflict_row_fetcher_op.cpp b/src/sql/engine/dml/ob_table_conflict_row_fetcher_op.cpp index 44efbfcc4..31e7ff531 100644 --- a/src/sql/engine/dml/ob_table_conflict_row_fetcher_op.cpp +++ b/src/sql/engine/dml/ob_table_conflict_row_fetcher_op.cpp @@ -202,6 +202,7 @@ int ObTableConflictRowFetcherOp::inner_get_next_row() LOG_DEBUG("fetch conflict row iterator end"); } else { ObNewRowIterator* dup_row_iter = dup_row_iter_arr_.at(cur_row_idx_); + clear_evaluated_flag(); if (OB_ISNULL(dup_row_iter)) { find_next_iter = true; } else if (OB_FAIL(dup_row_iter->get_next_row(dup_row))) { diff --git a/src/storage/ob_partition_storage.cpp b/src/storage/ob_partition_storage.cpp index c17890c65..496fbd3e6 100644 --- a/src/storage/ob_partition_storage.cpp +++ b/src/storage/ob_partition_storage.cpp @@ -1806,6 +1806,8 @@ int ObPartitionStorage::multi_get_rows(const ObStoreCtx& store_ctx, const ObTabl if (OB_ISNULL(access_param.op_)) { ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid argument", K(ret), KP(access_param.op_)); + } else { + access_param.op_->clear_evaluated_flag(); } for (int64_t i = 0; OB_SUCC(ret) && i < access_param.output_exprs_->count(); i++) { ObDatum* datum = NULL;