[CP] [to #44352686] fix is_prepare_protocol in resolve_external_symbol

This commit is contained in:
obdev 2022-12-26 03:46:08 +00:00 committed by ob-robot
parent 4e3904ab4d
commit 5c2ed71dd6
4 changed files with 18 additions and 13 deletions

View File

@ -7625,6 +7625,7 @@ int ObDMLResolver::resolve_external_name(ObQualifiedName &q_name,
columns,
real_exprs,
expr,
params_.is_prepare_protocol_,
false, /*is_check_mode*/
true /*is_sql_scope*/))) {
LOG_WARN_IGNORE_COL_NOTFOUND(ret, "failed to resolve var", K(q_name), K(ret));

View File

@ -1521,6 +1521,7 @@ int ObRawExprResolverImpl::check_pl_variable(ObQualifiedName &q_name, bool &is_p
fake_columns,
fake_exprs,
var,
false,/*is_prepare_protocol*/
true,/*is_check_mode*/
ctx_.current_scope_ != T_PL_SCOPE /*is_sql_scope*/))) {
LOG_INFO("failed to resolve external symbol", K(q_name), K(ret));

View File

@ -2665,6 +2665,7 @@ int ObResolverUtils::resolve_columns_for_const_expr(ObRawExpr *&expr, ObArray<Ob
columns,
real_exprs,
real_ref_expr,
resolve_params.is_prepare_protocol_,
false, /*is_check_mode*/
true /*is_sql_scope*/))) {
LOG_WARN_IGNORE_COL_NOTFOUND(ret, "failed to resolve var", K(q_name), K(ret));
@ -6234,6 +6235,7 @@ int ObResolverUtils::resolve_external_symbol(common::ObIAllocator &allocator,
ObIArray<ObQualifiedName> &columns,
ObIArray<ObRawExpr*> &real_exprs,
ObRawExpr *&expr,
bool is_prepare_protocol,
bool is_check_mode,
bool is_sql_scope)
{
@ -6246,7 +6248,7 @@ int ObResolverUtils::resolve_external_symbol(common::ObIAllocator &allocator,
NULL == sql_proxy ? (NULL == ns ? *GCTX.sql_proxy_ : ns->get_external_ns()->get_resolve_ctx().sql_proxy_) : *sql_proxy,
expr_factory,
NULL == ns ? NULL : ns->get_external_ns()->get_parent_ns(),
false/*not prepare*/,
is_prepare_protocol,
is_check_mode,
is_sql_scope,
NULL/*param store*/,

View File

@ -275,18 +275,19 @@ public:
ObQualifiedName &q_name,
const ObSQLSessionInfo &session_info);
static int resolve_external_symbol(common::ObIAllocator &allocator,
sql::ObRawExprFactory &expr_factory,
sql::ObSQLSessionInfo &session_info,
share::schema::ObSchemaGetterGuard &schema_guard,
common::ObMySQLProxy *sql_proxy,
ExternalParams *extern_param_info,
pl::ObPLBlockNS *ns,
ObQualifiedName &q_name,
ObIArray<ObQualifiedName> &columns,
ObIArray<ObRawExpr*> &real_exprs,
ObRawExpr *&expr,
bool is_check_mode = false,
bool is_sql_scope = false);
sql::ObRawExprFactory &expr_factory,
sql::ObSQLSessionInfo &session_info,
share::schema::ObSchemaGetterGuard &schema_guard,
common::ObMySQLProxy *sql_proxy,
ExternalParams *extern_param_info,
pl::ObPLBlockNS *ns,
ObQualifiedName &q_name,
ObIArray<ObQualifiedName> &columns,
ObIArray<ObRawExpr*> &real_exprs,
ObRawExpr *&expr,
bool is_prepare_protocol = false,
bool is_check_mode = false,
bool is_sql_scope = false);
static int resolve_external_param_info(ExternalParams &param_info,
ObRawExprFactory &expr_factory,
int64_t &prepare_param_count,