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 31fe48111b5 [Improvement](materialized-view) forbidden mv rewriter
when select stmt's from clause not have mv (#27638)
31fe48111b5 is described below
commit 31fe48111b5fb547016e314723f779e1114ca3b0
Author: Pxl <[email protected]>
AuthorDate: Tue Nov 28 14:11:46 2023 +0800
[Improvement](materialized-view) forbidden mv rewriter when select stmt's
from clause not have mv (#27638)
forbidden mv rewriter when select stmt's from clause not have mv
---
.../java/org/apache/doris/analysis/SelectStmt.java | 18 ++++++++++++++++++
.../main/java/org/apache/doris/analysis/TableRef.java | 4 ++++
2 files changed, 22 insertions(+)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index e80f49dcb61..bb10d22080b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -503,6 +503,24 @@ public class SelectStmt extends QueryStmt {
}
fromClause.setNeedToSql(needToSql);
fromClause.analyze(analyzer);
+
+ if (!isForbiddenMVRewrite()) {
+ Boolean haveMv = false;
+ for (TableRef tbl : fromClause) {
+ if (!tbl.haveDesc() || !(tbl.getTable() instanceof OlapTable))
{
+ continue;
+ }
+ OlapTable olapTable = (OlapTable) tbl.getTable();
+ if (olapTable.getIndexIds().size() != 1) {
+ haveMv = true;
+ }
+ }
+
+ if (!haveMv) {
+ forbiddenMVRewrite();
+ }
+ }
+
// Generate !empty() predicates to filter out empty collections.
// Skip this step when analyzing a WITH-clause because
CollectionTableRefs
// do not register collection slots in their parent in that context
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRef.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRef.java
index b6c47e1cbfc..e4b5caa4468 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TableRef.java
@@ -329,6 +329,10 @@ public class TableRef implements ParseNode, Writable {
return tableSnapshot;
}
+ public Boolean haveDesc() {
+ return desc != null;
+ }
+
/**
* This method should only be called after the TableRef has been analyzed.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]