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 bb8263994583fd..cc79f779f6e872 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 cca5e347177d6f..c937b077fc5d6c 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 @@ -49,14 +49,6 @@ protected Optional doLoad(StatisticsCacheKey key) { } 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 d86e073d9e4001..86851ee8007aea 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 @@ -192,10 +192,7 @@ private void doPreHeat() { final StatisticsCacheKey k = new StatisticsCacheKey(statsId.catalogId, statsId.dbId, statsId.tblId, statsId.idxId, statsId.colId); - ColumnStatistic c = ColumnStatistic.fromResultRow(r); - if (c.count > 0 && c.ndv == 0 && c.count != c.numNulls) { - c = ColumnStatistic.UNKNOWN; - } + final ColumnStatistic c = ColumnStatistic.fromResultRow(r); 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 13a34d1dae972d..b4edc5e9d7bdc9 100644 --- a/regression-test/suites/statistics/analyze_stats.groovy +++ b/regression-test/suites/statistics/analyze_stats.groovy @@ -2759,9 +2759,7 @@ PARTITION `p599` VALUES IN (599) logger.info("show column alter_test(id) stats: " + alter_result) 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)""" logger.info("show column alter_test(id) stats: " + alter_result)