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

Reply via email to