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