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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]