From 4ae54478d2e28c9cd11947b3a9bd42a6ac5fd1bc Mon Sep 17 00:00:00 2001 From: yaojing624 Date: Thu, 30 May 2024 09:10:12 +0000 Subject: [PATCH] Fix:StmtSavedValue forgot to reset, unified repair --- src/share/stat/ob_stats_estimator.cpp | 3 +++ src/sql/monitor/ob_sql_plan.cpp | 3 +++ src/sql/optimizer/ob_dynamic_sampling.cpp | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/share/stat/ob_stats_estimator.cpp b/src/share/stat/ob_stats_estimator.cpp index f1ee879a7..9409158d5 100644 --- a/src/share/stat/ob_stats_estimator.cpp +++ b/src/share/stat/ob_stats_estimator.cpp @@ -462,6 +462,9 @@ int ObStatsEstimator::do_estimate(uint64_t tenant_id, LOG_WARN("failed to restore session", K(tmp_ret)); ret = COVER_SUCC(tmp_ret); } + if (OB_NOT_NULL(session_value)) { + session_value->reset(); + } } return ret; } diff --git a/src/sql/monitor/ob_sql_plan.cpp b/src/sql/monitor/ob_sql_plan.cpp index 3f12709da..3aa7ff885 100644 --- a/src/sql/monitor/ob_sql_plan.cpp +++ b/src/sql/monitor/ob_sql_plan.cpp @@ -478,6 +478,9 @@ int ObSqlPlan::inner_store_sql_plan_for_explain(ObExecContext *ctx, ret = end_ret; } } + if (OB_NOT_NULL(saved_session)) { + saved_session->reset(); + } } return ret; } diff --git a/src/sql/optimizer/ob_dynamic_sampling.cpp b/src/sql/optimizer/ob_dynamic_sampling.cpp index 6a4b3600b..793d48e6d 100644 --- a/src/sql/optimizer/ob_dynamic_sampling.cpp +++ b/src/sql/optimizer/ob_dynamic_sampling.cpp @@ -532,6 +532,9 @@ int ObDynamicSampling::estimte_rowcount(int64_t max_ds_timeout, ret = COVER_SUCC(tmp_ret); LOG_WARN("failed to restore session", K(tmp_ret)); } + if (OB_NOT_NULL(session_value)) { + session_value->reset(); + } } LOG_TRACE("go to dynamic sample one time", K(sample_block_ratio_), K(ret), K(raw_sql_str), K(max_ds_timeout), K(start_time), K(ObTimeUtility::current_time() - start_time));