[CP] [to #48974202] fix pl object name same as database name
This commit is contained in:
parent
6d6757335f
commit
5be7bb98ca
@ -11720,8 +11720,6 @@ int ObPLResolver::resolve_udf_info(
|
||||
resolve_ctx_.session_info_.get_effective_tenant_id(), routine_info->get_database_id(), database_schema));
|
||||
CK (OB_NOT_NULL(database_schema));
|
||||
OX (db_name = database_schema->get_database_name_str());
|
||||
} else {
|
||||
OX (db_name = resolve_ctx_.session_info_.get_database_name());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1580,20 +1580,6 @@ int ObPLExternalNS::resolve_external_symbol(const common::ObString &name,
|
||||
}
|
||||
}
|
||||
}
|
||||
//then database name
|
||||
if (OB_SUCC(ret) && OB_INVALID_INDEX == var_idx && OB_INVALID_INDEX == parent_id) {
|
||||
uint64_t tenant_id = session_info.get_effective_tenant_id();
|
||||
uint64_t db_id = OB_INVALID_ID;
|
||||
if (OB_FAIL(schema_guard.get_database_id(tenant_id, name, db_id))) {
|
||||
LOG_WARN("get database id failed", K(ret));
|
||||
} else if (OB_INVALID_ID == db_id) {
|
||||
type = ObPLExternalNS::INVALID_VAR;
|
||||
} else {
|
||||
type = DB_NS;
|
||||
parent_id = OB_INVALID_INDEX;
|
||||
var_idx = db_id;
|
||||
}
|
||||
}
|
||||
//then table name
|
||||
if (OB_SUCC(ret) && OB_INVALID_INDEX == var_idx) {
|
||||
uint64_t tenant_id = session_info.get_effective_tenant_id();
|
||||
@ -1714,6 +1700,20 @@ int ObPLExternalNS::resolve_external_symbol(const common::ObString &name,
|
||||
OZ (resolve_synonym(object_db_id, object_name, type, parent_id, var_idx, name, db_id));
|
||||
}
|
||||
}
|
||||
//then database name
|
||||
if (OB_SUCC(ret) && OB_INVALID_INDEX == var_idx && OB_INVALID_INDEX == parent_id) {
|
||||
uint64_t tenant_id = session_info.get_effective_tenant_id();
|
||||
uint64_t db_id = OB_INVALID_ID;
|
||||
if (OB_FAIL(schema_guard.get_database_id(tenant_id, name, db_id))) {
|
||||
LOG_WARN("get database id failed", K(ret));
|
||||
} else if (OB_INVALID_ID == db_id) {
|
||||
type = ObPLExternalNS::INVALID_VAR;
|
||||
} else {
|
||||
type = DB_NS;
|
||||
parent_id = OB_INVALID_INDEX;
|
||||
var_idx = db_id;
|
||||
}
|
||||
}
|
||||
// 尝试看是不是系统变量的特殊写法,如 set SQL_MODE='ONLY_FULL_GROUP_BY';
|
||||
if (OB_SUCC(ret)
|
||||
&& !resolve_ctx_.is_sql_scope_ // 纯SQL语境过来的表达式解析不需要尝试解析为SESSION VAR
|
||||
|
@ -4766,12 +4766,13 @@ int ObDMLResolver::resolve_function_table_item(const ParseNode &parse_tree,
|
||||
ObSchemaObjVersion table_version;
|
||||
share::schema::ObSchemaGetterGuard *schema_guard = NULL;
|
||||
uint64_t database_id = OB_INVALID_ID;
|
||||
const ObString &database_name = udf->get_database_name().empty() ? session_info_->get_database_name() : udf->get_database_name();
|
||||
CK (OB_NOT_NULL(udf));
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_ISNULL(schema_guard = params_.schema_checker_->get_schema_guard())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("table schema is null", K(ret), K(schema_guard));
|
||||
} else if (OB_FAIL(schema_guard->get_database_id(session_info_->get_effective_tenant_id(), udf->get_database_name(), database_id))) {
|
||||
} else if (OB_FAIL(schema_guard->get_database_id(session_info_->get_effective_tenant_id(), database_name, database_id))) {
|
||||
LOG_WARN("failed to get database id", K(ret));
|
||||
} else if (udf->need_add_dependency()) {
|
||||
uint64_t dep_obj_id = view_ref_id_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user