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