fix sql executor use memory of 500 tenant

This commit is contained in:
obdev
2023-04-19 08:15:11 +00:00
committed by ob-robot
parent ff0be6d455
commit 6e8c6def52
5 changed files with 16 additions and 0 deletions

View File

@ -392,6 +392,9 @@ int ObMPStmtFetch::response_result(pl::ObPLCursorInfo &cursor,
}
} else {
tmp_exec_ctx.set_my_session(&session);
tmp_exec_ctx.set_mem_attr(ObMemAttr(session.get_effective_tenant_id(),
ObModIds::OB_SQL_EXEC_CONTEXT,
ObCtxIds::EXECUTE_CTX_ID));
exec_ctx = &tmp_exec_ctx;
if (OB_ISNULL(cursor.get_spi_cursor())) {
ret = OB_ERR_UNEXPECTED;

View File

@ -267,6 +267,9 @@ int ObExprMinus::calc(ObDatum &res, const ObDatum &left, const ObDatum &right,
OZ (plan_ctx.init_datum_param_store());
OX (exec_ctx.set_physical_plan_ctx(&plan_ctx));
OX (exec_ctx.set_my_session(&default_session));
OX (exec_ctx.set_mem_attr(ObMemAttr(tenant_id,
ObModIds::OB_SQL_EXEC_CONTEXT,
ObCtxIds::EXECUTE_CTX_ID)));
OX (arith = OB_NEWx(ObRTDatumArith, allocator, exec_ctx, default_session));
if (OB_FAIL(ret)) {
if (NULL != arith) {

View File

@ -40,9 +40,11 @@ int calc_digest_text(ObIAllocator &allocator,
int ret = OB_SUCCESS;
ObArenaAllocator temp_allocator(ObModIds::OB_SQL_EXPR_CALC);
HEAP_VAR(ObExecContext, exec_ctx, temp_allocator) {
uint64_t tenant_id = session->get_effective_tenant_id();
ObPhysicalPlanCtx phy_plan_ctx(allocator);
exec_ctx.set_physical_plan_ctx(&phy_plan_ctx);
exec_ctx.set_my_session(session);
exec_ctx.set_mem_attr(ObMemAttr(tenant_id, ObModIds::OB_SQL_EXEC_CONTEXT, ObCtxIds::EXECUTE_CTX_ID));
ObSqlCtx sql_ctx;
sql_ctx.session_info_ = session;
sql_ctx.schema_guard_ = schema_guard;

View File

@ -168,6 +168,8 @@ int ObRemoteBaseExecuteP<T>::base_before_process(int64_t tenant_schema_version,
exec_ctx_.set_my_session(session_info);
exec_ctx_.show_session();
exec_ctx_.get_sql_ctx()->session_info_ = session_info;
exec_ctx_.set_mem_attr(ObMemAttr(tenant_id, ObModIds::OB_SQL_EXEC_CONTEXT, ObCtxIds::EXECUTE_CTX_ID));
vt_ctx.session_ = session_info;
vt_ctx.vt_iter_factory_ = &vt_iter_factory_;
vt_ctx.schema_guard_ = &schema_guard_;

View File

@ -669,6 +669,9 @@ int ObSQLUtils::se_calc_const_expr(ObSQLSessionInfo *session,
(NULL != out_ctx ? out_ctx->get_min_cluster_version() : GET_MIN_CLUSTER_VERSION()))) {
LinkExecCtxGuard link_guard(*session, exec_ctx);
exec_ctx.set_my_session(session);
exec_ctx.set_mem_attr(ObMemAttr(session->get_effective_tenant_id(),
ObModIds::OB_SQL_EXEC_CONTEXT,
ObCtxIds::EXECUTE_CTX_ID));
exec_ctx.set_physical_plan_ctx(&phy_plan_ctx);
if (NULL != out_ctx) {
exec_ctx.set_sql_ctx(out_ctx->get_sql_ctx());
@ -903,6 +906,9 @@ int ObSQLUtils::make_default_expr_context(uint64_t tenant_id, ObIAllocator &allo
} else {
exec_ctx = new(exec_ctx)ObExecContext(allocator);
exec_ctx->set_my_session(default_session);
exec_ctx->set_mem_attr(ObMemAttr(tenant_id,
ObModIds::OB_SQL_EXEC_CONTEXT,
ObCtxIds::EXECUTE_CTX_ID));
expr_ctx.exec_ctx_ = exec_ctx;
expr_ctx.exec_ctx_->set_my_session(default_session);
}