[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:
LiBinfeng
2023-06-05 13:05:15 +08:00
committed by GitHub
parent 0dc6d3a568
commit fe942eaf44
2 changed files with 16 additions and 5 deletions

View File

@ -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());
}
}
}
}

View File

@ -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);
}