From 9b047d2c9426542c52bd76e083cb6e1716a2d5ad Mon Sep 17 00:00:00 2001 From: LiBinfeng <46676950+Bingandbing@users.noreply.github.com> Date: Wed, 15 Mar 2023 08:24:32 +0800 Subject: [PATCH] Feat: Add byte size to TTypedesc in TExpr. Which will be used to carry scalarType information. (#17757) Co-authored-by: libinfeng --- .../java/org/apache/doris/catalog/ScalarType.java | 15 +++++++++++++++ .../glue/translator/ExpressionTranslator.java | 4 ++++ .../org/apache/doris/nereids/types/CharType.java | 5 +++++ .../apache/doris/nereids/types/StringType.java | 5 +++++ .../apache/doris/nereids/types/VarcharType.java | 5 +++++ .../doris/nereids/types/coercion/NumericType.java | 5 +++++ .../nereids/types/coercion/PrimitiveType.java | 4 ---- gensrc/thrift/Types.thrift | 1 + 8 files changed, 40 insertions(+), 4 deletions(-) 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 {