fix sql executor use memory of 500 tenant
This commit is contained in:
@ -392,6 +392,9 @@ int ObMPStmtFetch::response_result(pl::ObPLCursorInfo &cursor,
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tmp_exec_ctx.set_my_session(&session);
|
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;
|
exec_ctx = &tmp_exec_ctx;
|
||||||
if (OB_ISNULL(cursor.get_spi_cursor())) {
|
if (OB_ISNULL(cursor.get_spi_cursor())) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
|||||||
@ -267,6 +267,9 @@ int ObExprMinus::calc(ObDatum &res, const ObDatum &left, const ObDatum &right,
|
|||||||
OZ (plan_ctx.init_datum_param_store());
|
OZ (plan_ctx.init_datum_param_store());
|
||||||
OX (exec_ctx.set_physical_plan_ctx(&plan_ctx));
|
OX (exec_ctx.set_physical_plan_ctx(&plan_ctx));
|
||||||
OX (exec_ctx.set_my_session(&default_session));
|
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));
|
OX (arith = OB_NEWx(ObRTDatumArith, allocator, exec_ctx, default_session));
|
||||||
if (OB_FAIL(ret)) {
|
if (OB_FAIL(ret)) {
|
||||||
if (NULL != arith) {
|
if (NULL != arith) {
|
||||||
|
|||||||
@ -40,9 +40,11 @@ int calc_digest_text(ObIAllocator &allocator,
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
ObArenaAllocator temp_allocator(ObModIds::OB_SQL_EXPR_CALC);
|
ObArenaAllocator temp_allocator(ObModIds::OB_SQL_EXPR_CALC);
|
||||||
HEAP_VAR(ObExecContext, exec_ctx, temp_allocator) {
|
HEAP_VAR(ObExecContext, exec_ctx, temp_allocator) {
|
||||||
|
uint64_t tenant_id = session->get_effective_tenant_id();
|
||||||
ObPhysicalPlanCtx phy_plan_ctx(allocator);
|
ObPhysicalPlanCtx phy_plan_ctx(allocator);
|
||||||
exec_ctx.set_physical_plan_ctx(&phy_plan_ctx);
|
exec_ctx.set_physical_plan_ctx(&phy_plan_ctx);
|
||||||
exec_ctx.set_my_session(session);
|
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;
|
ObSqlCtx sql_ctx;
|
||||||
sql_ctx.session_info_ = session;
|
sql_ctx.session_info_ = session;
|
||||||
sql_ctx.schema_guard_ = schema_guard;
|
sql_ctx.schema_guard_ = schema_guard;
|
||||||
|
|||||||
@ -168,6 +168,8 @@ int ObRemoteBaseExecuteP<T>::base_before_process(int64_t tenant_schema_version,
|
|||||||
exec_ctx_.set_my_session(session_info);
|
exec_ctx_.set_my_session(session_info);
|
||||||
exec_ctx_.show_session();
|
exec_ctx_.show_session();
|
||||||
exec_ctx_.get_sql_ctx()->session_info_ = session_info;
|
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.session_ = session_info;
|
||||||
vt_ctx.vt_iter_factory_ = &vt_iter_factory_;
|
vt_ctx.vt_iter_factory_ = &vt_iter_factory_;
|
||||||
vt_ctx.schema_guard_ = &schema_guard_;
|
vt_ctx.schema_guard_ = &schema_guard_;
|
||||||
|
|||||||
@ -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()))) {
|
(NULL != out_ctx ? out_ctx->get_min_cluster_version() : GET_MIN_CLUSTER_VERSION()))) {
|
||||||
LinkExecCtxGuard link_guard(*session, exec_ctx);
|
LinkExecCtxGuard link_guard(*session, exec_ctx);
|
||||||
exec_ctx.set_my_session(session);
|
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);
|
exec_ctx.set_physical_plan_ctx(&phy_plan_ctx);
|
||||||
if (NULL != out_ctx) {
|
if (NULL != out_ctx) {
|
||||||
exec_ctx.set_sql_ctx(out_ctx->get_sql_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 {
|
} else {
|
||||||
exec_ctx = new(exec_ctx)ObExecContext(allocator);
|
exec_ctx = new(exec_ctx)ObExecContext(allocator);
|
||||||
exec_ctx->set_my_session(default_session);
|
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_ = exec_ctx;
|
||||||
expr_ctx.exec_ctx_->set_my_session(default_session);
|
expr_ctx.exec_ctx_->set_my_session(default_session);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user