diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java index b2186a87fc..f44aff6909 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java @@ -80,6 +80,20 @@ public class ScalarType extends Type { public static final int DEFAULT_MIN_AVG_DECIMAL128_SCALE = 4; public static final int MAX_DATETIMEV2_SCALE = 6; + private long byteSize = -1; + + + /** + * Set byte size of expression + */ + public void setByteSize(long byteSize) { + this.byteSize = byteSize; + } + + public long getByteSize() { + return byteSize; + } + private static final Logger LOG = LogManager.getLogger(ScalarType.class); @SerializedName(value = "type") private final PrimitiveType type; @@ -638,6 +652,7 @@ public class ScalarType extends Type { node.setType(TTypeNodeType.SCALAR); TScalarType scalarType = new TScalarType(); scalarType.setType(type.toThrift()); + container.setByteSize(byteSize); switch (type) { case VARCHAR: diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java index 99f5c38581..ac0177486a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java @@ -109,6 +109,10 @@ public class ExpressionTranslator extends DefaultExpressionVisitor types 2: optional bool is_nullable + 3: optional i64 byte_size } enum TAggregationType {