This is an automated email from the ASF dual-hosted git repository.

yiguolei 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 8251e7cbfc [refactor](column) remove confused field (#12187)
8251e7cbfc is described below

commit 8251e7cbfcabc0c0146bc7d79d2f84f110dffa03
Author: Mingyu Chen <[email protected]>
AuthorDate: Wed Aug 31 09:13:31 2022 +0800

    [refactor](column) remove confused field (#12187)
---
 fe/fe-core/src/main/cup/sql_parser.cup                         |  5 -----
 .../src/main/java/org/apache/doris/analysis/CastExpr.java      |  3 +--
 .../src/main/java/org/apache/doris/analysis/ColumnDef.java     |  3 +--
 .../src/main/java/org/apache/doris/analysis/TypeDef.java       |  3 +--
 .../src/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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to