From f076fe862483231627b63bf294627e64a41e60af Mon Sep 17 00:00:00 2001 From: morrySnow <101034200+morrySnow@users.noreply.github.com> Date: Wed, 29 May 2024 11:36:57 +0800 Subject: [PATCH] [fix](Nereids) aggregate combinator should be case-insensitive (#35540) --- .../functions/AggCombinerFunctionBuilder.java | 14 +++++++------- .../suites/function_p0/test_agg_foreach.groovy | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/AggCombinerFunctionBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/AggCombinerFunctionBuilder.java index daee9a1c7e..28b3262874 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/AggCombinerFunctionBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/AggCombinerFunctionBuilder.java @@ -63,8 +63,8 @@ public class AggCombinerFunctionBuilder extends FunctionBuilder { } @Override - public boolean canApply(List arguments) { - if (combinatorSuffix.equals(STATE) || combinatorSuffix.equals(FOREACH)) { + public boolean canApply(List arguments) { + if (combinatorSuffix.equalsIgnoreCase(STATE) || combinatorSuffix.equalsIgnoreCase(FOREACH)) { return nestedBuilder.canApply(arguments); } else { if (arguments.size() != 1) { @@ -123,18 +123,18 @@ public class AggCombinerFunctionBuilder extends FunctionBuilder { } @Override - public Pair build(String name, List arguments) { + public Pair build(String name, List arguments) { String nestedName = getNestedName(name); - if (combinatorSuffix.equals(STATE)) { + if (combinatorSuffix.equalsIgnoreCase(STATE)) { AggregateFunction nestedFunction = buildState(nestedName, arguments); return Pair.of(new StateCombinator((List) arguments, nestedFunction), nestedFunction); - } else if (combinatorSuffix.equals(MERGE)) { + } else if (combinatorSuffix.equalsIgnoreCase(MERGE)) { AggregateFunction nestedFunction = buildMergeOrUnion(nestedName, arguments); return Pair.of(new MergeCombinator((List) arguments, nestedFunction), nestedFunction); - } else if (combinatorSuffix.equals(UNION)) { + } else if (combinatorSuffix.equalsIgnoreCase(UNION)) { AggregateFunction nestedFunction = buildMergeOrUnion(nestedName, arguments); return Pair.of(new UnionCombinator((List) arguments, nestedFunction), nestedFunction); - } else if (combinatorSuffix.equals(FOREACH)) { + } else if (combinatorSuffix.equalsIgnoreCase(FOREACH)) { AggregateFunction nestedFunction = buildForEach(nestedName, arguments); return Pair.of(new ForEachCombinator((List) arguments, nestedFunction), nestedFunction); } diff --git a/regression-test/suites/function_p0/test_agg_foreach.groovy b/regression-test/suites/function_p0/test_agg_foreach.groovy index 2c52efec6b..281fdea6a3 100644 --- a/regression-test/suites/function_p0/test_agg_foreach.groovy +++ b/regression-test/suites/function_p0/test_agg_foreach.groovy @@ -62,9 +62,9 @@ suite("test_agg_foreach") { (5,[null,2],[[2],null],[null,'c']); """ - + // this case also test combinator should be case-insensitive qt_sql """ - select min_foreach(a), min_by_foreach(a,a),max_foreach(a),max_by_foreach(a,a) , avg_foreach(a),avg_weighted_foreach(a,a) from foreach_table ; + select min_ForEach(a), min_by_foreach(a,a),max_foreach(a),max_by_foreach(a,a) , avg_foreach(a),avg_weighted_foreach(a,a) from foreach_table ; """ qt_sql """