[FEAT MERGE] Solidify session vars for functional index
This commit is contained in:
		| @ -2784,6 +2784,7 @@ int ObSql::generate_stmt(ParseResult &parse_result, | ||||
|       context.all_expr_constraints_ = &(resolver_ctx.query_ctx_->all_expr_constraints_); | ||||
|       context.all_priv_constraints_ = &(resolver_ctx.query_ctx_->all_priv_constraints_); | ||||
|       context.need_match_all_params_ = resolver_ctx.query_ctx_->need_match_all_params_; | ||||
|       context.all_local_session_vars_ = &(resolver_ctx.query_ctx_->all_local_session_vars_); | ||||
|       context.cur_stmt_ = stmt; | ||||
|       context.res_map_rule_id_ = resolver_ctx.query_ctx_->res_map_rule_id_; | ||||
|       context.res_map_rule_param_idx_ = resolver_ctx.query_ctx_->res_map_rule_param_idx_; | ||||
| @ -3595,6 +3596,12 @@ int ObSql::code_generate( | ||||
|       last_mem_usage = phy_plan->get_mem_size(); | ||||
|     } | ||||
|   } | ||||
|   //add local_session_var array to phy_plan_ctx | ||||
|   if (OB_SUCC(ret)) { | ||||
|     if (OB_FAIL(phy_plan->set_all_local_session_vars(sql_ctx.all_local_session_vars_))) { | ||||
|       LOG_WARN("set all local sesson vars failed", K(ret)); | ||||
|     } | ||||
|   } | ||||
|   NG_TRACE(cg_end); | ||||
|  | ||||
|   // set phy table location in task_exec_ctx, query_timeout in exec_context | ||||
| @ -4586,6 +4593,11 @@ int ObSql::after_get_plan(ObPlanCacheCtx &pc_ctx, | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     if (OB_SUCC(ret) && NULL != phy_plan && !phy_plan->is_remote_plan()) { | ||||
|       if (OB_FAIL(pctx->set_all_local_session_vars(phy_plan->get_all_local_session_vars()))) { | ||||
|         LOG_WARN("fail to set all local session vars", K(ret)); | ||||
|       } | ||||
|     } | ||||
|   } else { | ||||
|     // not phy_plan, ignore | ||||
|   } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 2149
					2149