Set tenant_id and ctx_id for recursive cte allocator.
This commit is contained in:
parent
f401f7f80d
commit
c5744f26a0
@ -26,10 +26,18 @@ int ObRecursiveInnerDataOp::init(const ObExpr *search_expr, const ObExpr *cycle_
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
search_expr_ = search_expr;
|
search_expr_ = search_expr;
|
||||||
cycle_expr_ = cycle_expr;
|
cycle_expr_ = cycle_expr;
|
||||||
if (OB_FAIL(dfs_pump_.init())) {
|
|
||||||
|
if (OB_ISNULL(ctx_.get_my_session())) {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
LOG_WARN("sql session info is null", K(ret));
|
||||||
|
} else if (OB_FAIL(dfs_pump_.init())) {
|
||||||
LOG_WARN("Failed to init depth first search pump", K(ret));
|
LOG_WARN("Failed to init depth first search pump", K(ret));
|
||||||
} else if (OB_FAIL(ctx_.get_my_session()->get_sys_variable(share::SYS_VAR_CTE_MAX_RECURSION_DEPTH, max_recursion_depth_))) {
|
} else if (OB_FAIL(ctx_.get_my_session()->get_sys_variable(share::SYS_VAR_CTE_MAX_RECURSION_DEPTH, max_recursion_depth_))) {
|
||||||
LOG_WARN("Get sys variable error", K(ret));
|
LOG_WARN("Get sys variable error", K(ret));
|
||||||
|
} else {
|
||||||
|
int64_t tenant_id = ctx_.get_my_session()->get_effective_tenant_id();
|
||||||
|
stored_row_buf_.set_tenant_id(tenant_id);
|
||||||
|
stored_row_buf_.set_ctx_id(ObCtxIds::WORK_AREA);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user