This is an automated email from the ASF dual-hosted git repository. englefly pushed a commit to branch 2.0.13-tebu in repository https://gitbox.apache.org/repos/asf/doris.git
commit 30c44fc8df2b3d53f43cb1b6892fb7d5f495bbd0 Author: minghong <engle...@gmail.com> AuthorDate: Mon Aug 26 17:23:37 2024 +0800 session var:enableStringMinMaxStats --- .../main/java/org/apache/doris/nereids/stats/StatsCalculator.java | 8 ++++++++ fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java | 3 +++ 2 files changed, 11 insertions(+) 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 2c954f9ee43..1b67b80a62d 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 @@ -113,6 +113,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.nereids.types.coercion.CharacterType; import org.apache.doris.qe.ConnectContext; import org.apache.doris.statistics.AnalysisManager; import org.apache.doris.statistics.ColumnStatistic; @@ -670,6 +671,13 @@ public class StatsCalculator extends DefaultPlanVisitor<Statistics, Void> { if (cache.avgSizeByte <= 0) { colStatsBuilder.setAvgSizeByte(slotReference.getColumn().get().getType().getSlotSize()); } + if (ConnectContext.get() != null && !ConnectContext.get().getSessionVariable().enableStringMinMaxStats + && slotReference.getDataType() instanceof CharacterType) { + colStatsBuilder.setMinValue(Double.NEGATIVE_INFINITY); + colStatsBuilder.setMaxValue(Double.POSITIVE_INFINITY); + colStatsBuilder.setMinExpr(null); + colStatsBuilder.setMaxExpr(null); + } if (!cache.isUnKnown) { rowCount = Math.max(rowCount, cache.count + deltaRowCount); } else { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 0de84bfa16f..5854a150bad 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -1327,6 +1327,9 @@ public class SessionVariable implements Serializable, Writable { flag = VariableMgr.GLOBAL) public boolean enableAutoAnalyze = true; + @VariableMgr.VarAttr(name = "enable_string_min_max_stats", needForward = true) + public boolean enableStringMinMaxStats = true; + @VariableMgr.VarAttr(name = AUTO_ANALYZE_TABLE_WIDTH_THRESHOLD, description = {"参与自动收集的最大表宽度,列数多于这个参数的表不参与自动收集", "Maximum table width to enable auto analyze, " --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org