diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java index 08a410b859..eda3645fd0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java @@ -42,18 +42,25 @@ public class ColumnStatisticsCacheLoader extends StatisticsCacheLoader doLoad(StatisticsCacheKey key) { - // Load from statistics table. - Optional columnStatistic = loadFromStatsTable(key); - if (columnStatistic.isPresent()) { - return columnStatistic; - } - // Load from data source metadata + Optional columnStatistic = Optional.empty(); try { - TableIf table = StatisticsUtil.findTable(key.catalogId, key.dbId, key.tableId); - columnStatistic = table.getColumnStatistic(key.colName); - } catch (Exception e) { - LOG.debug(String.format("Exception to get column statistics by metadata. [Catalog:%d, DB:%d, Table:%d]", - key.catalogId, key.dbId, key.tableId), e); + // Load from statistics table. + columnStatistic = loadFromStatsTable(key); + if (columnStatistic.isPresent()) { + return columnStatistic; + } + // Load from data source metadata + try { + TableIf table = StatisticsUtil.findTable(key.catalogId, key.dbId, key.tableId); + columnStatistic = table.getColumnStatistic(key.colName); + } catch (Exception e) { + LOG.debug(String.format("Exception to get column statistics by metadata. [Catalog:{}, DB:{}, Table:{}]", + key.catalogId, key.dbId, key.tableId), e); + } + } catch (Throwable t) { + LOG.warn("Failed to load stats for column [Catalog:{}, DB:{}, Table:{}, Column:{}], Reason: {}", + key.catalogId, key.dbId, key.tableId, key.colName, t.getMessage()); + LOG.debug(t); } return columnStatistic; }