diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJob.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJob.java index 639e072da7..6ff01f278d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJob.java @@ -28,6 +28,7 @@ import org.apache.doris.nereids.metrics.consumer.LogConsumer; import org.apache.doris.nereids.metrics.event.StatsStateEvent; import org.apache.doris.nereids.stats.StatsCalculator; import org.apache.doris.nereids.trees.expressions.CTEId; +import org.apache.doris.qe.ConnectContext; import org.apache.doris.statistics.Statistics; import java.util.HashMap; @@ -107,10 +108,13 @@ public class DeriveStatsJob extends Job { cteIdToStats); STATS_STATE_TRACER.log(StatsStateEvent.of(groupExpression, groupExpression.getOwnerGroup().getStatistics())); - context.getCascadesContext().getConnectContext().getTotalColumnStatisticMap() + if (ConnectContext.get().getSessionVariable().isEnableMinidump() + && !ConnectContext.get().getSessionVariable().isPlayNereidsDump()) { + context.getCascadesContext().getConnectContext().getTotalColumnStatisticMap() .putAll(statsCalculator.getTotalColumnStatisticMap()); - context.getCascadesContext().getConnectContext().getTotalHistogramMap() + context.getCascadesContext().getConnectContext().getTotalHistogramMap() .putAll(statsCalculator.getTotalHistogramMap()); + } } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java index 3932a2993f..b976a4196d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java @@ -104,6 +104,7 @@ import org.apache.doris.nereids.trees.plans.physical.PhysicalUnion; import org.apache.doris.nereids.trees.plans.physical.PhysicalWindow; import org.apache.doris.nereids.trees.plans.visitor.DefaultPlanVisitor; import org.apache.doris.nereids.types.DataType; +import org.apache.doris.qe.ConnectContext; import org.apache.doris.statistics.ColumnStatistic; import org.apache.doris.statistics.ColumnStatisticBuilder; import org.apache.doris.statistics.Histogram; @@ -576,11 +577,17 @@ public class StatsCalculator extends DefaultPlanVisitor { new ColumnStatisticBuilder(cache).setHistogram(histogram); columnStatisticMap.put(slotReference, columnStatisticBuilder.build()); cache = columnStatisticBuilder.build(); - totalHistogramMap.put(table.getName() + ":" + colName, histogram); + if (ConnectContext.get().getSessionVariable().isEnableMinidump() + && !ConnectContext.get().getSessionVariable().isPlayNereidsDump()) { + totalHistogramMap.put(table.getName() + ":" + colName, histogram); + } } columnStatisticMap.put(slotReference, cache); - totalColumnStatisticMap.put(table.getName() + ":" + colName, cache); - totalHistogramMap.put(table.getName() + colName, histogram); + if (ConnectContext.get().getSessionVariable().isEnableMinidump() + && !ConnectContext.get().getSessionVariable().isPlayNereidsDump()) { + totalColumnStatisticMap.put(table.getName() + ":" + colName, cache); + totalHistogramMap.put(table.getName() + colName, histogram); + } } return new Statistics(rowCount, columnStatisticMap); }