diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColStatsData.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColStatsData.java index bb8263994583fd5..cc79f779f6e872d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColStatsData.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColStatsData.java @@ -131,11 +131,6 @@ public String toSQL(boolean roundByParentheses) { } public ColumnStatistic toColumnStatistic() { - // For non-empty table, return UNKNOWN if we can't collect ndv value. - // Because inaccurate ndv is very misleading. - if (count > 0 && ndv == 0 && count != nullCount) { - return ColumnStatistic.UNKNOWN; - } try { ColumnStatisticBuilder columnStatisticBuilder = new ColumnStatisticBuilder(); columnStatisticBuilder.setCount(count); 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 42d5d5423598806..1876cacc003f309 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 @@ -51,14 +51,6 @@ protected Optional doLoad(StatisticsCacheKey key) { // it will trigger load function again without cache an empty value. return null; } - if (columnStatistic.isPresent()) { - // For non-empty table, return UNKNOWN if we can't collect ndv value. - // Because inaccurate ndv is very misleading. - ColumnStatistic stats = columnStatistic.get(); - if (stats.count > 0 && stats.ndv == 0 && stats.count != stats.numNulls) { - columnStatistic = Optional.of(ColumnStatistic.UNKNOWN); - } - } return columnStatistic; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java index af5958d740205ef..886ab7435aac9d2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java @@ -171,12 +171,7 @@ private void doPreHeat() { long tblId = statsId.tblId; long idxId = statsId.idxId; String colId = statsId.colId; - final StatisticsCacheKey k = - new StatisticsCacheKey(tblId, idxId, colId); - ColumnStatistic c = ColumnStatistic.fromResultRow(r); - if (c.count > 0 && c.ndv == 0 && c.count != c.numNulls) { - c = ColumnStatistic.UNKNOWN; - } + final StatisticsCacheKey k = new StatisticsCacheKey(tblId, idxId, colId); putCache(k, c); } catch (Throwable t) { LOG.warn("Error when preheating stats cache. reason: [{}]. Row:[{}]", t.getMessage(), r); diff --git a/regression-test/suites/statistics/analyze_stats.groovy b/regression-test/suites/statistics/analyze_stats.groovy index 993e6f531da8eb9..c828274a40357fd 100644 --- a/regression-test/suites/statistics/analyze_stats.groovy +++ b/regression-test/suites/statistics/analyze_stats.groovy @@ -2706,9 +2706,7 @@ PARTITION `p599` VALUES IN (599) alter_result = sql """show column stats alter_test(id)""" assertEquals(1, alter_result.size()) alter_result = sql """show column cached stats alter_test(id)""" - assertEquals(0, alter_result.size()) - alter_result = sql """show column cached stats alter_test(id)""" - assertEquals(0, alter_result.size()) + assertEquals(1, alter_result.size()) sql """alter table alter_test modify column id set stats ('row_count'='100', 'ndv'='0', 'num_nulls'='100', 'data_size'='2.69975443E8', 'min_value'='1', 'max_value'='2');""" alter_result = sql """show column stats alter_test(id)""" assertEquals(1, alter_result.size())