[FEAT MERGE] ap perf optimization

Co-authored-by: wangt1xiuyi <13547954130@163.com>
Co-authored-by: XIAO-HOU <372060054@qq.com>
Co-authored-by: z404289981 <z404289981@163.com>
This commit is contained in:
DengzhiLiu
2024-03-26 07:51:42 +00:00
committed by ob-robot
parent cd6b56ce4a
commit 5aa0503125
85 changed files with 3566 additions and 832 deletions

View File

@ -1431,7 +1431,8 @@ int ObRawExprDeduceType::visit(ObAggFunRawExpr &expr)
case T_FUN_REGR_COUNT:
case T_FUN_COUNT_SUM:
case T_FUN_APPROX_COUNT_DISTINCT:
case T_FUN_KEEP_COUNT: {
case T_FUN_KEEP_COUNT:
case T_FUN_SUM_OPNSIZE: {
if (lib::is_oracle_mode()) {
result_type.set_number();
result_type.set_scale(0);
@ -2089,6 +2090,7 @@ int ObRawExprDeduceType::check_group_aggr_param(ObAggFunRawExpr &expr)
&& T_FUN_APPROX_COUNT_DISTINCT_SYNOPSIS != expr.get_expr_type()
&& T_FUN_TOP_FRE_HIST != expr.get_expr_type()
&& T_FUN_HYBRID_HIST != expr.get_expr_type()
&& T_FUN_SUM_OPNSIZE != expr.get_expr_type()
&& 1 != get_expr_output_column(*param_expr)) {
ret = OB_ERR_INVALID_COLUMN_NUM;
LOG_USER_ERROR(OB_ERR_INVALID_COLUMN_NUM, (int64_t)1);
@ -2115,6 +2117,7 @@ int ObRawExprDeduceType::check_group_aggr_param(ObAggFunRawExpr &expr)
&& T_FUN_MEDIAN != expr.get_expr_type()
&& T_FUN_GROUP_PERCENTILE_CONT != expr.get_expr_type()
&& T_FUN_GROUP_PERCENTILE_DISC != expr.get_expr_type()
&& T_FUN_SUM_OPNSIZE != expr.get_expr_type()
&& !expr.is_need_deserialize_row()
&& !(T_FUN_PL_AGG_UDF == expr.get_expr_type() && !expr.is_param_distinct())
&& !(T_FUN_WM_CONCAT == expr.get_expr_type() && !expr.is_param_distinct()))) {
@ -2134,7 +2137,7 @@ int ObRawExprDeduceType::check_group_aggr_param(ObAggFunRawExpr &expr)
K(ret), K(param_expr->get_subschema_id()));
} else {
ret = OB_ERR_INVALID_TYPE_FOR_OP;
LOG_WARN("lob or json type parameter not expected", K(ret));
LOG_WARN("lob or json type parameter not expected", K(ret), K(expr));
}
}
}

View File

@ -762,7 +762,8 @@ int ObRawExprResolverImpl::do_recursive_resolve(const ParseNode *node, ObRawExpr
case T_FUN_JSON_OBJECTAGG:
case T_FUN_ORA_JSON_ARRAYAGG:
case T_FUN_ORA_JSON_OBJECTAGG:
case T_FUN_ORA_XMLAGG: {
case T_FUN_ORA_XMLAGG:
case T_FUN_SUM_OPNSIZE:{
if (OB_FAIL(process_agg_node(node, expr))) {
LOG_WARN("fail to process agg node", K(ret), K(node));