diff --git a/src/sql/das/ob_das_group_scan_op.cpp b/src/sql/das/ob_das_group_scan_op.cpp index 570c042826..6a194f7265 100644 --- a/src/sql/das/ob_das_group_scan_op.cpp +++ b/src/sql/das/ob_das_group_scan_op.cpp @@ -56,6 +56,12 @@ int ObDASGroupScanOp::release_op() { int ret = OB_SUCCESS; OZ(ObDASScanOp::release_op()); + if (nullptr != group_lookup_op_) { + ObITabletScan &tsc_service = get_tsc_service(); + if (OB_FAIL(tsc_service.revert_scan_iter(group_lookup_op_->get_lookup_storage_iter()))) { + LOG_WARN("revert scan iterator failed", K(ret)); + } + } group_lookup_op_ = NULL; iter_.reset(); result_iter_ = &iter_; @@ -97,7 +103,6 @@ int ObDASGroupScanOp::do_local_index_lookup() op->set_rowkey_iter(&this->iter_); group_lookup_op_ = op; result_iter_ = group_lookup_op_; - result_ = group_lookup_op_; //release scan iterator by result_, so need to hold lookup op by result_ OZ(op->init(get_lookup_ctdef(), get_lookup_rtdef(), scan_ctdef_,