This is an automated email from the ASF dual-hosted git repository.

lijibing pushed a commit to branch high-priority-column
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/high-priority-column by this 
push:
     new 2f8eb492d76 Support auto analyze mv (#32433)
2f8eb492d76 is described below

commit 2f8eb492d7657e9116ec99819c4fbc2864388b65
Author: Jibing-Li <64681310+jibing...@users.noreply.github.com>
AuthorDate: Tue Mar 19 10:19:23 2024 +0800

    Support auto analyze mv (#32433)
---
 .../src/main/java/org/apache/doris/catalog/OlapTable.java     | 11 +++++++++++
 .../org/apache/doris/statistics/StatisticsAutoCollector.java  | 11 +++++++++++
 2 files changed, 22 insertions(+)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index 4ac54827cee..4a7f4a837c2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -762,6 +762,17 @@ public class OlapTable extends Table implements 
MTMVRelatedTableIf {
         return columns;
     }
 
+    public List<Column> getMvColumns(boolean full) {
+        List<Column> columns = Lists.newArrayList();
+        for (Long indexId : indexIdToMeta.keySet()) {
+            if (indexId == baseIndexId) {
+                continue;
+            }
+            columns.addAll(getSchemaByIndexId(indexId, full));
+        }
+        return columns;
+    }
+
     public List<Column> getBaseSchemaKeyColumns() {
         return getKeyColumnsByIndexId(baseIndexId);
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsAutoCollector.java
 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsAutoCollector.java
index 43ee1af2032..41765b14c30 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsAutoCollector.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsAutoCollector.java
@@ -18,6 +18,7 @@
 package org.apache.doris.statistics;
 
 import org.apache.doris.analysis.TableName;
+import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.TableIf;
@@ -123,6 +124,7 @@ public class StatisticsAutoCollector extends MasterDaemon {
     }
 
     protected void processOneJob(TableIf table, Set<String> columns, 
JobPriority priority) throws DdlException {
+        appendMvColumn(table, columns);
         columns = columns.stream().filter(c -> 
StatisticsUtil.needAnalyzeColumn(table, c)).collect(Collectors.toSet());
         appendPartitionColumns(table, columns);
         if (columns.isEmpty()) {
@@ -145,6 +147,15 @@ public class StatisticsAutoCollector extends MasterDaemon {
         }
     }
 
+    protected void appendMvColumn(TableIf table, Set<String> columns) {
+        if (!(table instanceof OlapTable)) {
+            return;
+        }
+        OlapTable olapTable = (OlapTable) table;
+        Set<String> mvColumns = 
olapTable.getMvColumns(false).stream().map(Column::getName).collect(Collectors.toSet());
+        columns.addAll(mvColumns);
+    }
+
     protected boolean supportAutoAnalyze(TableIf tableIf) {
         if (tableIf == null) {
             return false;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to