This is an automated email from the ASF dual-hosted git repository. panxiaolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new a1b7c42e57f [Exec](alias) support stddev alias to std (#52819) a1b7c42e57f is described below commit a1b7c42e57fea21544a95a988cabb932ccbfd04c Author: HappenLee <happen...@selectdb.com> AuthorDate: Sun Jul 6 12:20:47 2025 +0800 [Exec](alias) support stddev alias to std (#52819) Support `stddev` alias to `std` for BI support like mysql way --- .../aggregate_functions/aggregate_function_stddev.cpp | 1 + .../org/apache/doris/analysis/FunctionCallExpr.java | 3 ++- .../doris/catalog/BuiltinAggregateFunctions.java | 2 +- .../java/org/apache/doris/catalog/FunctionSet.java | 8 ++++++++ .../nereids/rules/analysis/GenerateFunction.java | 1 + .../test_aggregate_all_functions.out | Bin 2765 -> 2803 bytes .../test_aggregate_all_functions.groovy | 1 + 7 files changed, 14 insertions(+), 2 deletions(-) diff --git a/be/src/vec/aggregate_functions/aggregate_function_stddev.cpp b/be/src/vec/aggregate_functions/aggregate_function_stddev.cpp index b611edfeff4..4dfb7b09ee5 100644 --- a/be/src/vec/aggregate_functions/aggregate_function_stddev.cpp +++ b/be/src/vec/aggregate_functions/aggregate_function_stddev.cpp @@ -105,6 +105,7 @@ void register_aggregate_function_stddev_variance_pop(AggregateFunctionSimpleFact factory.register_alias("variance", "variance_pop"); factory.register_function_both("stddev", create_aggregate_function_stddev_pop); factory.register_alias("stddev", "stddev_pop"); + factory.register_alias("stddev", "std"); } void register_aggregate_function_stddev_variance_samp_old(AggregateFunctionSimpleFactory& factory) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java index e344e94559f..b6f6fa0284b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java @@ -79,7 +79,8 @@ public class FunctionCallExpr extends Expr { public static final ImmutableSet<String> STDDEV_FUNCTION_SET = new ImmutableSortedSet.Builder( String.CASE_INSENSITIVE_ORDER) .add("stddev").add("stddev_val").add("stddev_samp").add("stddev_pop").add("variance").add("variance_pop") - .add("variance_pop").add("var_samp").add("var_pop").add("variance_samp").add("avg_weighted").build(); + .add("variance_pop").add("var_samp").add("var_pop").add("variance_samp").add("avg_weighted") + .add("std").build(); public static final Map<String, java.util.function.BiFunction<ArrayList<Expr>, Type, Type>> PRECISION_INFER_RULE; public static final java.util.function.BiFunction<ArrayList<Expr>, Type, Type> DEFAULT_PRECISION_INFER_RULE; public static final ImmutableSet<String> ROUND_FUNCTION_SET = new ImmutableSortedSet.Builder( diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinAggregateFunctions.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinAggregateFunctions.java index a8b289bca88..39557586d2e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinAggregateFunctions.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinAggregateFunctions.java @@ -160,7 +160,7 @@ public class BuiltinAggregateFunctions implements FunctionHelper { agg(SequenceCount.class, "sequence_count"), agg(SequenceMatch.class, "sequence_match"), agg(Skew.class, "skew", "skew_pop", "skewness"), - agg(Stddev.class, "stddev_pop", "stddev"), + agg(Stddev.class, "stddev_pop", "stddev", "std"), agg(StddevSamp.class, "stddev_samp"), agg(Sum.class, "sum"), agg(Sum0.class, "sum0"), diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java index 84d0dbc7971..45658a6df0b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java @@ -1220,6 +1220,14 @@ public class FunctionSet<T> { null, null, null, "", false, true, false, true)); + addBuiltin(AggregateFunction.createBuiltin("stddev", + Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t, + "", + "", + "", + null, null, null, + "", + false, true, false, true)); addBuiltin(AggregateFunction.createBuiltin("stddev_samp", Lists.newArrayList(t), STDDEV_RETTYPE_SYMBOL.get(t), t, "", diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java index c6ab40552e4..478370d3a15 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java @@ -183,6 +183,7 @@ public class GenerateFunction { .put("any", "any_value") .put("char_length", "character_length") .put("stddev_pop", "stddev") + .put("std", "stddev") .put("percentile_cont", "percentile") .put("var_pop", "variance") .put("variance_pop", "variance") diff --git a/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.out b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.out index 90953b0a11c..55298776e38 100644 Binary files a/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.out and b/regression-test/data/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.out differ diff --git a/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.groovy b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.groovy index e9683ffb92b..06b8ba8e1ef 100644 --- a/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.groovy +++ b/regression-test/suites/query_p0/sql_functions/aggregate_functions/test_aggregate_all_functions.groovy @@ -381,6 +381,7 @@ suite("test_aggregate_all_functions", "arrow_flight_sql") { sql "INSERT INTO ${tableName_15} values(1,10), (2,8), (2,441) ,(1,10) ,(3,29) ,(3,101)" qt_select29 "select id,stddev(level) from ${tableName_15} group by id order by id" + qt_select29 "select id,std(level) from ${tableName_15} group by id order by id" qt_select30 "select id,stddev_pop(level) from ${tableName_15} group by id order by id" sql "DROP TABLE IF EXISTS ${tableName_15}" --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org