[Fix](stats) Stats persistence failed when a column is all null values (#19412)
This commit is contained in:
@ -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);
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user