[xml] update xmltype using clob in pl bugfix
This commit is contained in:
@ -56,7 +56,7 @@ int ObExprExtractValue::calc_result_typeN(ObExprResType &type,
|
|||||||
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
||||||
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
||||||
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(in_type)));
|
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(in_type)));
|
||||||
} else {
|
}
|
||||||
for (int8_t i = 1; i < param_num && OB_SUCC(ret); i++) {
|
for (int8_t i = 1; i < param_num && OB_SUCC(ret); i++) {
|
||||||
ObObjType param_type = types[i].get_type();
|
ObObjType param_type = types[i].get_type();
|
||||||
if (param_type == ObNullType) {
|
if (param_type == ObNullType) {
|
||||||
@ -68,7 +68,6 @@ int ObExprExtractValue::calc_result_typeN(ObExprResType &type,
|
|||||||
ret = OB_ERR_INVALID_XPATH_EXPRESSION;
|
ret = OB_ERR_INVALID_XPATH_EXPRESSION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
type.set_type(ObVarcharType);
|
type.set_type(ObVarcharType);
|
||||||
|
|||||||
@ -55,7 +55,7 @@ int ObExprExtractXml::calc_result_typeN(ObExprResType &type,
|
|||||||
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
||||||
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
||||||
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(in_type)));
|
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(in_type)));
|
||||||
} else {
|
}
|
||||||
for (int8_t i = 1; i < param_num && OB_SUCC(ret); i++) {
|
for (int8_t i = 1; i < param_num && OB_SUCC(ret); i++) {
|
||||||
ObObjType param_type = types[i].get_type();
|
ObObjType param_type = types[i].get_type();
|
||||||
if (param_type == ObNullType) {
|
if (param_type == ObNullType) {
|
||||||
@ -67,7 +67,6 @@ int ObExprExtractXml::calc_result_typeN(ObExprResType &type,
|
|||||||
ret = OB_ERR_INVALID_XPATH_EXPRESSION;
|
ret = OB_ERR_INVALID_XPATH_EXPRESSION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
type.set_sql_udt(ObXMLSqlType);
|
type.set_sql_udt(ObXMLSqlType);
|
||||||
|
|||||||
@ -53,6 +53,8 @@ int ObExprUpdateXml::calc_result_typeN(ObExprResType &type,
|
|||||||
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
ret = OB_ERR_INVALID_TYPE_FOR_OP;
|
||||||
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
LOG_USER_ERROR(OB_ERR_INVALID_TYPE_FOR_OP, "-", "-");
|
||||||
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(types[0].get_type())));
|
LOG_WARN("inconsistent datatypes", K(ret), K(ob_obj_type_str(types[0].get_type())));
|
||||||
|
}
|
||||||
|
if (OB_FAIL(ret)) {
|
||||||
} else {
|
} else {
|
||||||
bool has_ns_str = (param_num - 1) % 2 == 1;
|
bool has_ns_str = (param_num - 1) % 2 == 1;
|
||||||
int64_t xpath_value_end = has_ns_str ? param_num - 1 : param_num;
|
int64_t xpath_value_end = has_ns_str ? param_num - 1 : param_num;
|
||||||
|
|||||||
Reference in New Issue
Block a user