提交 9aa337ba 编写于 作者: L lf0 提交者: LINGuanRen

Fix FastParserRes memory leak caused by remote plan

上级 a5c703ac
......@@ -1071,6 +1071,9 @@ int ObSql::handle_remote_query(const ObRemoteSqlInfo &remote_sql_info, ObSqlCtx
// is recorded on the control server, and there is no need to record it here
// Otherwise it will cause repeated warning messages
ob_reset_tsi_warning_buffer();
if (NULL != pc_ctx) {
pc_ctx->~ObPlanCacheCtx();
}
return ret;
}
......@@ -1216,12 +1219,8 @@ inline int ObSql::handle_text_query(const ObString &stmt, ObSqlCtx &context, ObR
LOG_WARN("fail to handle after get plan", K(ret));
}
}
// for inner sql, release the optimization memory
if (!THIS_WORKER.has_req_flag()) {
// only for inner sql
if (NULL != pc_ctx) {
pc_ctx->~ObPlanCacheCtx();
}
if (NULL != pc_ctx) {
pc_ctx->~ObPlanCacheCtx();
}
return ret;
......
......@@ -385,14 +385,17 @@ struct ObPCParamEqualInfo {
};
struct ObFastParserResult {
private:
common::ModulePageAllocator inner_alloc_;
public:
ObFastParserResult()
: inner_alloc_("FastParserRes"), raw_params_(&inner_alloc_), ps_params_(&inner_alloc_), cache_params_(NULL)
{}
ObPlanCacheKey pc_key_; // plan cache key, parameterized by fast parser
common::ModulePageAllocator inner_alloc_;
common::ObFixedArray<ObPCParam*, common::ObIAllocator> raw_params_;
common::ObFixedArray<const common::ObObjParam*, common::ObIAllocator> ps_params_;
ParamStore* cache_params_;
common::ObFixedArray<ObPCParam *, common::ObIAllocator> raw_params_;
common::ObFixedArray<const common::ObObjParam *, common::ObIAllocator> ps_params_;
ParamStore *cache_params_;
void reset()
{
pc_key_.reset();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册