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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]