From 5e483a9a0c89ed5967411f2e4757df3ddeb46a28 Mon Sep 17 00:00:00 2001 From: PatZhuang Date: Thu, 19 Dec 2024 07:45:04 +0000 Subject: [PATCH] fix: simplify count with multi params wrong --- src/sql/rewrite/ob_transform_simplify_groupby.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sql/rewrite/ob_transform_simplify_groupby.cpp b/src/sql/rewrite/ob_transform_simplify_groupby.cpp index 978b487c2..5162428c8 100644 --- a/src/sql/rewrite/ob_transform_simplify_groupby.cpp +++ b/src/sql/rewrite/ob_transform_simplify_groupby.cpp @@ -1275,7 +1275,15 @@ int ObTransformSimplifyGroupby::check_aggr_win_can_be_removed(const ObDMLStmt *s if (OB_SUCC(ret)) { switch (func_type) { // aggr func - case T_FUN_COUNT: //case when 1 or 0 + case T_FUN_COUNT: { //case when 1 or 0 + if (OB_ISNULL(aggr)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("get unexpected null aggr", K(ret)); + } else { + can_remove = aggr->get_real_param_count() <= 1; // do not rewrite count with multi params + } + break; + } case T_FUN_MAX: //return expr case T_FUN_MIN: //case T_FUN_APPROX_COUNT_DISTINCT_SYNOPSIS_MERGE: //不进行改写