diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java index 6d3b5a3a40e828..2f73ae8738274c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java @@ -271,6 +271,8 @@ protected void getSampleParams(Map params, long tableRowCount) { params.put("scaleFactor", "1"); params.put("sampleHints", ""); params.put("ndvFunction", "ROUND(NDV(`${colName}`) * ${scaleFactor})"); + // For full table scan, use COUNT(1) for table row count. + params.put("rowCount", "COUNT(1)"); params.put("rowCount2", "(SELECT COUNT(1) FROM cte1 WHERE `${colName}` IS NOT NULL)"); scanFullTable = true; return; diff --git a/fe/fe-core/src/test/java/org/apache/doris/statistics/OlapAnalysisTaskTest.java b/fe/fe-core/src/test/java/org/apache/doris/statistics/OlapAnalysisTaskTest.java index c8f9b397479232..fa1879db5f3bfc 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/statistics/OlapAnalysisTaskTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/statistics/OlapAnalysisTaskTest.java @@ -375,6 +375,11 @@ public KeysType getKeysType() { Assertions.assertEquals("", params.get("sampleHints")); Assertions.assertEquals("ROUND(NDV(`${colName}`) * ${scaleFactor})", params.get("ndvFunction")); Assertions.assertNull(params.get("preAggHint")); + Assertions.assertEquals("COUNT(1)", params.get("rowCount")); + params.clear(); + + task.getSampleParams(params, 10000); + Assertions.assertEquals("10000", params.get("rowCount")); params.clear(); new MockUp() {