diff --git a/src/sql/resolver/ddl/ob_ddl_resolver.cpp b/src/sql/resolver/ddl/ob_ddl_resolver.cpp index 6b06a3c9ab..31b4073e72 100644 --- a/src/sql/resolver/ddl/ob_ddl_resolver.cpp +++ b/src/sql/resolver/ddl/ob_ddl_resolver.cpp @@ -5379,7 +5379,7 @@ int ObDDLResolver::check_default_value(ObObj &default_value, } if (OB_FAIL(ret)) { - } else if (column.is_xmltype() && ob_is_numeric_type(tmp_default_value.get_type())) { + } else if (column.is_xmltype() && (ob_is_numeric_type(tmp_default_value.get_type()) || is_lob(tmp_default_value.get_type()))) { ret = OB_ERR_INVALID_XML_DATATYPE; LOG_WARN("incorrect cmp type with xml arguments",K(tmp_default_value.get_type()), K(ret)); } else if (lib::is_oracle_mode() && column.get_meta_type().is_blob() && ob_is_numeric_type(tmp_default_value.get_type())) { diff --git a/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp b/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp index ef6fed0cfa..922345a4a7 100644 --- a/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_deduce_type.cpp @@ -1960,7 +1960,12 @@ int ObRawExprDeduceType::check_group_aggr_param(ObAggFunRawExpr &expr) || ob_is_user_defined_sql_type(param_expr->get_data_type())) && (T_FUN_ORA_JSON_OBJECTAGG != expr.get_expr_type() && T_FUN_ORA_JSON_ARRAYAGG != expr.get_expr_type() - && T_FUN_ORA_XMLAGG != expr.get_expr_type())) + && T_FUN_ORA_XMLAGG != expr.get_expr_type() + && T_FUN_GROUP_CUME_DIST != expr.get_expr_type() + && T_FUN_GROUP_DENSE_RANK != expr.get_expr_type() + && T_FUN_GROUP_CONCAT != expr.get_expr_type() + && T_FUN_GROUP_PERCENT_RANK != expr.get_expr_type() + && T_FUN_GROUP_RANK != expr.get_expr_type())) && !(T_FUN_COUNT == expr.get_expr_type() && ob_is_json(param_expr->get_data_type())) && !(T_FUN_COUNT == expr.get_expr_type() && (ob_is_user_defined_sql_type(param_expr->get_data_type()) || ob_is_user_defined_pl_type(param_expr->get_data_type())))