fix exec context do not release temp expr ctx leads memory leak
This commit is contained in:
committed by
ob-robot
parent
04f8e06269
commit
220556e5be
@ -635,6 +635,9 @@ int ObTempExpr::eval(ObExecContext &exec_ctx, const ObNewRow &row, ObObj &result
|
||||
ObTempExprCtxReplaceGuard exec_ctx_backup_guard(exec_ctx, *temp_expr_ctx);
|
||||
OZ(rt_exprs_.at(expr_idx_).eval(*temp_expr_ctx, res_datum));
|
||||
OZ(res_datum->to_obj(result, rt_exprs_.at(expr_idx_).obj_meta_));
|
||||
if (!exec_ctx.use_temp_expr_ctx_cache()) {
|
||||
temp_expr_ctx->~ObTempExprCtx();
|
||||
}
|
||||
LOG_TRACE("temp expr result", K(result), K(row), K(rt_exprs_));
|
||||
}
|
||||
|
||||
|
||||
@ -469,6 +469,7 @@ public:
|
||||
ObExecFeedbackInfo &get_feedback_info() { return fb_info_; };
|
||||
void set_cur_rownum(int64_t cur_rownum) { cur_row_num_ = cur_rownum; }
|
||||
int64_t get_cur_rownum() { return cur_row_num_; }
|
||||
bool use_temp_expr_ctx_cache() const { return use_temp_expr_ctx_cache_; }
|
||||
private:
|
||||
int build_temp_expr_ctx(const ObTempExpr &temp_expr, ObTempExprCtx *&temp_expr_ctx);
|
||||
int set_phy_op_ctx_ptr(uint64_t index, void *phy_op);
|
||||
|
||||
Reference in New Issue
Block a user