[xml bugfix] xmlattributes evalname input fix
This commit is contained in:
@ -58,6 +58,9 @@ int ObExprXmlAttributes::calc_result_typeN(ObExprResType &type,
|
||||
ret = OB_ERR_INVALID_XML_DATATYPE;
|
||||
LOG_USER_ERROR(OB_ERR_INVALID_XML_DATATYPE, "-", ob_obj_type_str(types_stack[i].get_type()));
|
||||
LOG_WARN("invalid type, expect char", K(ret), K(types_stack[i].get_type()));
|
||||
} else if (ob_is_nstring(types_stack[i].get_type())) {
|
||||
types_stack[i].set_calc_type(ObVarcharType);
|
||||
types_stack[i].set_calc_collation_type(CS_TYPE_UTF8MB4_BIN);
|
||||
} else if (types_stack[i].get_charset_type() != CHARSET_UTF8MB4) {
|
||||
types_stack[i].set_calc_collation_type(CS_TYPE_UTF8MB4_BIN);
|
||||
}
|
||||
|
||||
@ -4623,8 +4623,7 @@ int ObRawExprPrinter::print_xml_attributes_expr(ObSysFunRawExpr *expr)
|
||||
PRINT_EXPR(expr->get_param_expr(i));
|
||||
ObObj attr_key_obj = static_cast<ObConstRawExpr*>(expr->get_param_expr(i + 1))->get_value();
|
||||
ObItemType expr_type = expr->get_param_expr(i + 1)->get_expr_type();
|
||||
if (expr_type == T_REF_COLUMN ||
|
||||
expr_type == T_FUN_SYS_CAST ||
|
||||
if ((T_VARCHAR != expr_type && T_CHAR != expr_type) ||
|
||||
attr_key_obj.get_type() == ObObjType::ObUnknownType) {
|
||||
DATA_PRINTF(" as evalname ");
|
||||
PRINT_EXPR(expr->get_param_expr(i + 1));
|
||||
|
||||
Reference in New Issue
Block a user