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

kxiao pushed a commit to branch branch-2.0-beta
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 2121aa64601804bd272ecf2ba0cbe0bc5a3595ff
Author: AKIRA <33112463+kikyou1...@users.noreply.github.com>
AuthorDate: Fri Jun 9 17:16:11 2023 +0900

    [enhancement](stats) Forbid unknown stats check for internal_column (#20535)
    
    Ignore internal columns when enable new optimizer and forbid unknown stats
---
 .../org/apache/doris/nereids/stats/StatsCalculator.java    | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
index 77499198f2..34ed4c242e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java
@@ -17,6 +17,7 @@
 
 package org.apache.doris.nereids.stats;
 
+import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.SchemaTable;
@@ -562,7 +563,7 @@ public class StatsCalculator extends 
DefaultPlanVisitor<Statistics, Void> {
                         .build();
             }
             if (cache.isUnKnown) {
-                if (forbidUnknownColStats && 
!ignoreUnknownColStatsCheck(table, slotReference)) {
+                if (forbidUnknownColStats && 
!ignoreUnknownColStatsCheck(table, slotReference.getColumn().get())) {
                     if (StatisticsUtil.statsTblAvailable()) {
                         throw new AnalysisException(String.format("Found 
unknown stats for column:%s.%s.\n"
                                 + "It may caused by:\n"
@@ -980,17 +981,16 @@ public class StatsCalculator extends 
DefaultPlanVisitor<Statistics, Void> {
         return groupExpression.childStatistics(1);
     }
 
-    private boolean ignoreUnknownColStatsCheck(TableIf tableIf, SlotReference 
slot) {
+    private boolean ignoreUnknownColStatsCheck(TableIf tableIf, Column c) {
         if (tableIf instanceof SchemaTable) {
             return true;
         }
         if (tableIf instanceof OlapTable) {
             OlapTable olapTable = (OlapTable) tableIf;
-            return 
StatisticConstants.STATISTICS_DB_BLACK_LIST.contains(olapTable.getQualifiedDbName());
-        }
-        if (slot.getColumn().isPresent() && 
slot.getColumn().get().isVisible()) {
-            return true;
+            if 
(StatisticConstants.STATISTICS_DB_BLACK_LIST.contains(olapTable.getQualifiedDbName()))
 {
+                return true;
+            }
         }
-        return false;
+        return !c.isVisible();
     }
 }


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

Reply via email to