fix information_schema views can not use index

This commit is contained in:
yinyj17
2024-04-15 04:15:30 +00:00
committed by ob-robot
parent 4bb2e95295
commit 64ff0c1b97
3 changed files with 18 additions and 2 deletions

View File

@ -8203,6 +8203,22 @@ int ObRawExprResolverImpl::process_internal_sys_function_node(const ParseNode *n
}
} //end for
OX (expr = func_expr);
if (OB_SUCC(ret) && T_FUN_SYS_SET_COLLATION == node_type && ctx_.is_in_system_view_) {
if (OB_UNLIKELY(expr->get_param_count() != 2 || num != 2)) {
ret = OB_ERR_PARSER_SYNTAX;
LOG_WARN("invalid parse tree", K(ret));
} else if (OB_ISNULL(expr->get_param_expr(1))) {
ret = OB_ERR_PARSER_SYNTAX;
LOG_WARN("invalid parse tree", K(ret));
} else {
const ParseNode *collation_node = node->children_[1]->children_[1];
ObString collation(collation_node->str_len_, collation_node->str_value_);
if (0 == collation.case_compare("utf8mb4_name_case") &&
CS_TYPE_UTF8MB4_GENERAL_CI == expr->get_param_expr(1)->get_collation_type()) {
expr = expr->get_param_expr(0);
}
}
}
}
}
return ret;

View File

@ -240,7 +240,7 @@ desc information_schema.ROUTINES;
Field Type Null Key Default Extra
SPECIFIC_NAME varchar(64) NO NULL
ROUTINE_CATALOG varchar(512) NO
ROUTINE_SCHEMA varchar(64) NO
ROUTINE_SCHEMA varchar(64) NO NULL
ROUTINE_NAME varchar(64) NO NULL
ROUTINE_TYPE varchar(9) NO NULL
DATA_TYPE varchar(64) NO

View File

@ -241,7 +241,7 @@ desc information_schema.ROUTINES;
Field Type Null Key Default Extra
SPECIFIC_NAME varchar(64) NO NULL
ROUTINE_CATALOG varchar(512) NO
ROUTINE_SCHEMA varchar(64) NO
ROUTINE_SCHEMA varchar(64) NO NULL
ROUTINE_NAME varchar(64) NO NULL
ROUTINE_TYPE varchar(9) NO NULL
DATA_TYPE varchar(64) NO