From dc8a992bba635963a272970a2702140b348d1a2d Mon Sep 17 00:00:00 2001 From: minghong Date: Fri, 19 May 2023 08:53:34 +0800 Subject: [PATCH] [improve](nereids) check be status when column stats is unknown #19742 when forbid_unknown_col_stats is open and some column stats is unknown, we will check the be status by StatisticsUtil.statsTblAvailable(), and report error according to be status. --- .../apache/doris/nereids/stats/StatsCalculator.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 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 95cedf3be9..3d4bad9393 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 @@ -98,6 +98,7 @@ import org.apache.doris.statistics.Histogram; import org.apache.doris.statistics.StatisticRange; import org.apache.doris.statistics.Statistics; import org.apache.doris.statistics.StatisticsBuilder; +import org.apache.doris.statistics.util.StatisticsUtil; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; @@ -493,8 +494,13 @@ public class StatsCalculator extends DefaultPlanVisitor { ColumnStatistic cache = Config.enable_stats ? getColumnStatistic(table, colName) : ColumnStatistic.UNKNOWN; if (cache == ColumnStatistic.UNKNOWN) { if (forbidUnknownColStats) { - throw new AnalysisException("column stats for " + colName - + " is unknown, `set forbid_unknown_col_stats = false` to execute sql with unknown stats"); + if (StatisticsUtil.statsTblAvailable()) { + throw new AnalysisException("column stats for " + colName + + " is unknown," + + " `set forbid_unknown_col_stats = false` to execute sql with unknown stats"); + } else { + throw new AnalysisException("BE is not available!"); + } } columnStatisticMap.put(slotReference, cache); continue;