Skip to content

Commit d2dc34e

Browse files
authored
[Fix](statistics) Fix partition name NPE and sample for all table during auto analyze (#28916) (#29199)
1 parent fed9185 commit d2dc34e

File tree

6 files changed

+6
-6
lines changed

6 files changed

+6
-6
lines changed

fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,7 @@ public void setMaxJoinNumberOfReorder(int maxJoinNumberOfReorder) {
12591259
+ "When enable_auto_sample is enabled, tables"
12601260
+ "larger than this value will automatically collect "
12611261
+ "statistics through sampling"})
1262-
public long hugeTableLowerBoundSizeInBytes = 5L * 1024 * 1024 * 1024;
1262+
public long hugeTableLowerBoundSizeInBytes = 0;
12631263

12641264
@VariableMgr.VarAttr(name = HUGE_TABLE_AUTO_ANALYZE_INTERVAL_IN_MILLIS, flag = VariableMgr.GLOBAL,
12651265
description = {"控制对大表的自动ANALYZE的最小时间间隔,"

fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticConstants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class StatisticConstants {
8686
public static final int INSERT_MERGE_ITEM_COUNT = 200;
8787

8888
public static final long HUGE_TABLE_DEFAULT_SAMPLE_ROWS = 4194304;
89-
public static final long HUGE_TABLE_LOWER_BOUND_SIZE_IN_BYTES = 5L * 1024 * 1024 * 1024;
89+
public static final long HUGE_TABLE_LOWER_BOUND_SIZE_IN_BYTES = 0;
9090

9191
public static final long HUGE_TABLE_AUTO_ANALYZE_INTERVAL_IN_MILLIS = TimeUnit.HOURS.toMillis(0);
9292

fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsAutoCollector.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ protected boolean skip(TableIf table) {
148148

149149
protected void createAnalyzeJobForTbl(DatabaseIf<? extends TableIf> db,
150150
List<AnalysisInfo> analysisInfos, TableIf table) {
151-
AnalysisMethod analysisMethod = table.getDataSize(true) > StatisticsUtil.getHugeTableLowerBoundSizeInBytes()
151+
AnalysisMethod analysisMethod = table.getDataSize(true) >= StatisticsUtil.getHugeTableLowerBoundSizeInBytes()
152152
? AnalysisMethod.SAMPLE : AnalysisMethod.FULL;
153153
AnalysisInfo jobInfo = new AnalysisInfoBuilder()
154154
.setJobId(Env.getCurrentEnv().getNextId())

fe/fe-core/src/test/java/org/apache/doris/statistics/HMSAnalysisTaskTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void testAutoSampleSmallTable(@Mocked HMSExternalTable tableIf)
8686
new MockUp<HMSExternalTable>() {
8787
@Mock
8888
public long getDataSize(boolean singleReplica) {
89-
return 1000;
89+
return StatisticsUtil.getHugeTableLowerBoundSizeInBytes() - 1;
9090
}
9191
};
9292
HMSAnalysisTask task = new HMSAnalysisTask();

fe/fe-core/src/test/java/org/apache/doris/statistics/OlapAnalysisTaskTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public void testSample3(@Mocked OlapTable tbl) {
101101

102102
@Mock
103103
public long getDataSize(boolean singleReplica) {
104-
return 1000;
104+
return StatisticsUtil.getHugeTableLowerBoundSizeInBytes() - 1;
105105
}
106106
};
107107

fe/fe-core/src/test/java/org/apache/doris/statistics/StatisticsAutoCollectorTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public List<Column> getBaseSchema() {
349349

350350
@Mock
351351
public long getDataSize(boolean singleReplica) {
352-
return 1000;
352+
return StatisticsUtil.getHugeTableLowerBoundSizeInBytes() - 1;
353353
}
354354

355355
@Mock

0 commit comments

Comments
 (0)