From 8251e7cbfcabc0c0146bc7d79d2f84f110dffa03 Mon Sep 17 00:00:00 2001 From: Mingyu Chen Date: Wed, 31 Aug 2022 09:13:31 +0800 Subject: [PATCH] [refactor](column) remove confused field (#12187) --- fe/fe-core/src/main/cup/sql_parser.cup | 5 ----- .../main/java/org/apache/doris/analysis/CastExpr.java | 3 +-- .../main/java/org/apache/doris/analysis/ColumnDef.java | 3 +-- .../main/java/org/apache/doris/analysis/TypeDef.java | 3 +-- .../main/java/org/apache/doris/catalog/ScalarType.java | 10 ++-------- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/fe/fe-core/src/main/cup/sql_parser.cup b/fe/fe-core/src/main/cup/sql_parser.cup index 6a7dd90242..6ebe1e6645 100644 --- a/fe/fe-core/src/main/cup/sql_parser.cup +++ b/fe/fe-core/src/main/cup/sql_parser.cup @@ -4837,12 +4837,10 @@ type ::= {: RESULT = ScalarType.createStringType(); :} | KW_VARCHAR LPAREN INTEGER_LITERAL:len RPAREN {: ScalarType type = ScalarType.createVarcharType(len.intValue()); - type.setAssignedStrLenInColDefinition(); RESULT = type; :} | KW_VARCHAR LPAREN ident_or_text:lenStr RPAREN {: ScalarType type = ScalarType.createVarcharType(lenStr); - type.setAssignedStrLenInColDefinition(); RESULT = type; :} | KW_VARCHAR @@ -4857,12 +4855,10 @@ type ::= {: RESULT = new StructType(fields); :} | KW_CHAR LPAREN INTEGER_LITERAL:len RPAREN {: ScalarType type = ScalarType.createCharType(len.intValue()); - type.setAssignedStrLenInColDefinition(); RESULT = type; :} | KW_CHAR LPAREN ident_or_text:lenStr RPAREN {: ScalarType type = ScalarType.createCharType(lenStr); - type.setAssignedStrLenInColDefinition(); RESULT = type; :} | KW_CHAR @@ -4889,7 +4885,6 @@ type ::= {: RESULT = ScalarType.createDecimalV3Type(precision, scale); :} | KW_HLL {: ScalarType type = ScalarType.createHllType(); - type.setAssignedStrLenInColDefinition(); RESULT = type; :} | KW_ALL diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java index cca5e50d52..0c0a7e6346 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java @@ -342,8 +342,7 @@ public class CastExpr extends Expr { // of cast is decided by child. if (targetTypeDef.getType().isScalarType()) { final ScalarType targetType = (ScalarType) targetTypeDef.getType(); - if (!(targetType.getPrimitiveType().isStringType() - && !targetType.isAssignedStrLenInColDefinition())) { + if (!(targetType.getPrimitiveType().isStringType() && !targetType.isLengthSet())) { targetTypeDef.analyze(analyzer); } } else { 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 b74f34d00d..788b5e59f1 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 @@ -205,8 +205,7 @@ public class ColumnDef { // When string type length is not assigned, it need to be assigned to 1. if (typeDef.getType().isScalarType()) { final ScalarType targetType = (ScalarType) typeDef.getType(); - if (targetType.getPrimitiveType().isStringType() - && !targetType.isAssignedStrLenInColDefinition()) { + if (targetType.getPrimitiveType().isStringType() && !targetType.isLengthSet()) { targetType.setLength(1); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java index 7af29a8fc2..bf641f4db1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java @@ -129,8 +129,7 @@ public class TypeDef implements ParseNode { throw new AnalysisException("Array unsupported sub-type: " + type.toSql()); } - if (type.getPrimitiveType().isStringType() - && !type.isAssignedStrLenInColDefinition()) { + if (type.getPrimitiveType().isStringType() && !type.isLengthSet()) { type.setLength(1); } analyze(type); diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java index 271e47d87b..116ee5506a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarType.java @@ -87,8 +87,6 @@ public class ScalarType extends Type { // Only used for type CHAR. @SerializedName(value = "len") private int len = -1; - @SerializedName(value = "isAssignedStrLenInColDefinition") - private boolean isAssignedStrLenInColDefinition = false; // Only used if type is DECIMAL. -1 (for both) is used to represent a // decimal with any precision and scale. @@ -660,12 +658,8 @@ public class ScalarType extends Type { this.len = len; } - public boolean isAssignedStrLenInColDefinition() { - return isAssignedStrLenInColDefinition; - } - - public void setAssignedStrLenInColDefinition() { - this.isAssignedStrLenInColDefinition = true; + public boolean isLengthSet() { + return getPrimitiveType() == PrimitiveType.HLL || len > 0 || !Strings.isNullOrEmpty(lenStr); } // add scalar infix to override with getPrecision