This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 45c89c1d3c [Fix](stats) Stats persistence failed when a column is all 
null values (#19412)
45c89c1d3c is described below

commit 45c89c1d3c9751a97575159c66dad23d49ecdda7
Author: AKIRA <33112463+kikyou1...@users.noreply.github.com>
AuthorDate: Thu May 11 18:44:44 2023 +0900

    [Fix](stats) Stats persistence failed when a column is all null values 
(#19412)
---
 fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java     | 4 ++++
 .../main/java/org/apache/doris/catalog/InternalSchemaInitializer.java | 4 ++--
 .../src/main/java/org/apache/doris/statistics/ColumnStatistic.java    | 4 ++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
index 2c120243ac..3500f1bb97 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ColumnDef.java
@@ -126,6 +126,10 @@ public class ColumnDef {
         this(name, typeDef, false, null, false, DefaultValue.NOT_SET, "");
     }
 
+    public ColumnDef(String name, TypeDef typeDef, boolean isAllowNull) {
+        this(name, typeDef, false, null, isAllowNull, DefaultValue.NOT_SET, 
"");
+    }
+
     public ColumnDef(String name, TypeDef typeDef, boolean isKey, 
AggregateType aggregateType,
                      boolean isAllowNull, DefaultValue defaultValue, String 
comment) {
         this(name, typeDef, isKey, aggregateType, isAllowNull, defaultValue, 
comment, true);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java
 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java
index 6dfc2e8ba0..3abaa3b8e6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/InternalSchemaInitializer.java
@@ -159,8 +159,8 @@ public class InternalSchemaInitializer extends Thread {
         columnDefs.add(new ColumnDef("count", 
TypeDef.create(PrimitiveType.BIGINT)));
         columnDefs.add(new ColumnDef("ndv", 
TypeDef.create(PrimitiveType.BIGINT)));
         columnDefs.add(new ColumnDef("null_count", 
TypeDef.create(PrimitiveType.BIGINT)));
-        columnDefs.add(new ColumnDef("min", 
TypeDef.createVarchar(ScalarType.MAX_VARCHAR_LENGTH)));
-        columnDefs.add(new ColumnDef("max", 
TypeDef.createVarchar(ScalarType.MAX_VARCHAR_LENGTH)));
+        columnDefs.add(new ColumnDef("min", 
TypeDef.createVarchar(ScalarType.MAX_VARCHAR_LENGTH), true));
+        columnDefs.add(new ColumnDef("max", 
TypeDef.createVarchar(ScalarType.MAX_VARCHAR_LENGTH), true));
         columnDefs.add(new ColumnDef("data_size_in_bytes", 
TypeDef.create(PrimitiveType.BIGINT)));
         columnDefs.add(new ColumnDef("update_time", 
TypeDef.create(PrimitiveType.DATETIME)));
         String engineName = "olap";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java 
b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
index 3dfc66adbd..f753201cf3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java
@@ -147,10 +147,14 @@ public class ColumnStatistic {
             if (!StatisticsUtil.isNullOrEmpty(min)) {
                 
columnStatisticBuilder.setMinValue(StatisticsUtil.convertToDouble(col.getType(),
 min));
                 
columnStatisticBuilder.setMinExpr(StatisticsUtil.readableValue(col.getType(), 
min));
+            } else {
+                columnStatisticBuilder.setMinValue(Double.NaN);
             }
             if (!StatisticsUtil.isNullOrEmpty(max)) {
                 
columnStatisticBuilder.setMaxValue(StatisticsUtil.convertToDouble(col.getType(),
 max));
                 
columnStatisticBuilder.setMaxExpr(StatisticsUtil.readableValue(col.getType(), 
max));
+            } else {
+                columnStatisticBuilder.setMinValue(Double.NaN);
             }
             columnStatisticBuilder.setSelectivity(1.0);
             columnStatisticBuilder.setOriginalNdv(ndv);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to