xml bugfix: join table used xmltype and xmltype col use upper create index

This commit is contained in:
obdev 2023-05-09 07:08:35 +00:00 committed by ob-robot
parent b7792b75fe
commit 7a2df88e93
2 changed files with 12 additions and 0 deletions

View File

@ -634,6 +634,10 @@ int ObExprCast::adjust_udt_cast_type(const ObExprResType &src_type, ObExprResTyp
LOG_WARN("cast unsupported sql udt type to pl udt type", K(ret), K(src_type), K(dst_type));
}
}
} else if (src_type.is_null()) {
if (dst_type.get_type() == ObUserDefinedSQLType) {
dst_type.set_sql_udt(ObXMLSqlType);
}
}
return ret;
}

View File

@ -760,6 +760,14 @@ int ObExprResultTypeUtil::deduce_max_string_length_oracle(const ObDataTypeCastPa
length /= ObCharset::get_charset(target_type.get_collation_type())->mbminlen;
}
}
} else if (orig_type.is_user_defined_sql_type() || orig_type.is_ext()) {
// udt types like xml can cast to string, the accuracy in pl extend is used for udt id
if (LS_CHAR == length_semantics) {
int64_t mbminlen = ObCharset::get_charset(target_type.get_collation_type())->mbminlen;
length = OB_MAX_VARCHAR_LENGTH_KEY / mbminlen;
} else {
length = OB_MAX_VARCHAR_LENGTH_KEY; // issue 49536718: CREATE INDEX index ON table (UPPER(c1));
}
} else {
int64_t ascii_bytes = 0;
if (orig_type.is_null()) {