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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 0942ea831c5 [fix](char) fix create complex type like array/map/struct 
with char which without length (#25706)
0942ea831c5 is described below

commit 0942ea831c58a89483d024d40f4e86d2c754dd54
Author: amory <wangqian...@selectdb.com>
AuthorDate: Sat Oct 21 00:24:51 2023 +0800

    [fix](char) fix create complex type like array/map/struct with char which 
without length (#25706)
---
 .../main/java/org/apache/doris/analysis/ColumnDef.java   | 16 ----------------
 .../src/main/java/org/apache/doris/analysis/TypeDef.java | 12 ++++++++++++
 2 files changed, 12 insertions(+), 16 deletions(-)

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 349be4e45ef..238f1471a9e 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
@@ -312,22 +312,6 @@ public class ColumnDef {
         }
         FeNameFormat.checkColumnName(name);
 
-        // When string type length is not assigned, it needs to be assigned to 
1.
-        if (typeDef.getType().isScalarType()) {
-            final ScalarType targetType = (ScalarType) typeDef.getType();
-            if (targetType.getPrimitiveType().isStringType() && 
!targetType.isLengthSet()) {
-                if (targetType.getPrimitiveType() == PrimitiveType.VARCHAR) {
-                    // always set varchar length MAX_VARCHAR_LENGTH
-                    targetType.setLength(ScalarType.MAX_VARCHAR_LENGTH);
-                } else if (targetType.getPrimitiveType() == 
PrimitiveType.STRING) {
-                    // always set text length MAX_STRING_LENGTH
-                    targetType.setLength(ScalarType.MAX_STRING_LENGTH);
-                } else {
-                    targetType.setLength(1);
-                }
-            }
-        }
-
         typeDef.analyze(null);
 
         Type type = typeDef.getType();
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 199bb8a7917..e00af4c676c 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
@@ -183,6 +183,18 @@ public class TypeDef implements ParseNode {
     private void analyzeScalarType(ScalarType scalarType)
             throws AnalysisException {
         PrimitiveType type = scalarType.getPrimitiveType();
+        // When string type length is not assigned, it needs to be assigned to 
1.
+        if (scalarType.getPrimitiveType().isStringType() && 
!scalarType.isLengthSet()) {
+            if (scalarType.getPrimitiveType() == PrimitiveType.VARCHAR) {
+                // always set varchar length MAX_VARCHAR_LENGTH
+                scalarType.setLength(ScalarType.MAX_VARCHAR_LENGTH);
+            } else if (scalarType.getPrimitiveType() == PrimitiveType.STRING) {
+                // always set text length MAX_STRING_LENGTH
+                scalarType.setLength(ScalarType.MAX_STRING_LENGTH);
+            } else {
+                scalarType.setLength(1);
+            }
+        }
         switch (type) {
             case CHAR:
             case VARCHAR: {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to