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 49b1d372ab5 [Chore](materialized-view) forbid create mv have calculations included outside aggregate functions (#31336) 49b1d372ab5 is described below commit 49b1d372ab5e2983b40359982bfc4c037c2fa2c2 Author: Pxl <pxl...@qq.com> AuthorDate: Mon Feb 26 11:23:04 2024 +0800 [Chore](materialized-view) forbid create mv have calculations included outside aggregate functions (#31336) forbid create mv have calculations included outside aggregate functions --- .../apache/doris/analysis/CreateMaterializedViewStmt.java | 5 +++++ regression-test/suites/mv_p0/k1s2m3/k1s2m3.groovy | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java index 9c120d70048..b9840438ec0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateMaterializedViewStmt.java @@ -288,6 +288,11 @@ public class CreateMaterializedViewStmt extends DdlStmt { // build mv column item mvColumnItemList.add(buildMVColumnItem(analyzer, functionCallExpr)); } else { + if (!isReplay && selectListItemExpr.containsAggregate()) { + throw new AnalysisException( + "The materialized view's expr calculations cannot be included outside aggregate functions" + + ", expr: " + selectListItemExpr.toSql()); + } List<SlotRef> slots = new ArrayList<>(); selectListItemExpr.collect(SlotRef.class, slots); if (!isReplay && slots.size() == 0) { diff --git a/regression-test/suites/mv_p0/k1s2m3/k1s2m3.groovy b/regression-test/suites/mv_p0/k1s2m3/k1s2m3.groovy index 8d33b107da2..bc206b61990 100644 --- a/regression-test/suites/mv_p0/k1s2m3/k1s2m3.groovy +++ b/regression-test/suites/mv_p0/k1s2m3/k1s2m3.groovy @@ -115,4 +115,19 @@ suite ("k1s2m3") { qt_select_mv "select count(k2) from d_table where k3 = 1;" qt_select_star "select * from d_table order by k1;" + + test { + sql "create materialized view k1s2m3 as select K1,sum(k2*k3)+1 from d_table group by k1;" + exception "cannot be included outside aggregate" + } + + test { + sql "create materialized view k1s2m3 as select K1,abs(sum(k2*k3)+1) from d_table group by k1;" + exception "cannot be included outside aggregate" + } + + test { + sql "create materialized view k1s2m3 as select K1,sum(abs(sum(k2*k3)+1)) from d_table group by k1;" + exception "aggregate function cannot contain aggregate parameters" + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org