From 9c9050abba91345ebc281c321b4e219a4418c1ba Mon Sep 17 00:00:00 2001 From: morrySnow Date: Tue, 28 May 2024 17:51:52 +0800 Subject: [PATCH] [fix](Nereids) aggregate combinator should be case-insensitive --- .../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 daee9a1c7edf35..28b326287419cb 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 functionClass() { } @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 @@ private AggregateFunction buildMergeOrUnion(String nestedName, List 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 2c52efec6b11d1..281fdea6a3bea7 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 """