[Fix](Nereids) Fix minidump using put all of hashmap (#20268)
Minidump file wants to get information as much as possible, but when close the switch, these methods should not be called after refactor pr: #20049. Other place of doing more jobs after add Minidump feature also be checked.
This commit is contained in:
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<Statistics, Void> {
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user