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

Reply via email to