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

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

commit af7b16f213ed5ccc25d753b8cd4317d0a1be2be5
Author: Xujian Duan <50550370+darvend...@users.noreply.github.com>
AuthorDate: Tue May 21 20:28:02 2024 +0800

    [optimize](desc) display the correct data type of aggStateType (#34968)
    
    If a table column is AGG_STATE type, we can't get the clear defined data 
type if we use `desc tbl` statement.
    
    create table a_table(
        k1 int null,
        k2 agg_state<max_by(int not null,int)> generic,
        k3 agg_state<group_concat(string)> generic
    )
    aggregate key (k1)
    distributed BY hash(k1) buckets 3
    properties("replication_num" = "1");
    
    before optimize:
    
    mysql> desc a_table;
    
+-------+------------------------------------------------+------+-------+---------+---------+
    | Field | Type                                           | Null | Key   | 
Default | Extra   |
    
+-------+------------------------------------------------+------+-------+---------+---------+
    | k1    | INT                                            | Yes  | true  | 
NULL    |         |
    | k2    | org.apache.doris.catalog.AggStateType@239f771c | No   | false | 
NULL    | GENERIC |
    | k3    | org.apache.doris.catalog.AggStateType@2e535f50 | No   | false | 
NULL    | GENERIC |
    
+-------+------------------------------------------------+------+-------+---------+---------+
    3 rows in set (0.00 sec)
    
    
    after optimize:
    
    mysql> desc a_table;
    
+-------+------------------------------------+------+-------+---------+---------+
    | Field | Type                               | Null | Key   | Default | 
Extra   |
    
+-------+------------------------------------+------+-------+---------+---------+
    | k1    | INT                                | Yes  | true  | NULL    |     
    |
    | k2    | AGG_STATE<max_by(INT, INT NULL)>   | No   | false | NULL    | 
GENERIC |
    | k3    | AGG_STATE<group_concat(TEXT NULL)> | No   | false | NULL    | 
GENERIC |
    
+-------+------------------------------------+------+-------+---------+---------+
    
    
    Co-authored-by: duanxujian <duanxuj...@jd.com>
---
 .../src/main/java/org/apache/doris/catalog/AggStateType.java         | 5 +++++
 fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java | 3 +--
 .../main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java  | 4 +---
 .../data/datatype_p0/agg_state/nereids/test_agg_state_nereids.out    | 4 ++++
 regression-test/data/datatype_p0/agg_state/test_agg_state.out        | 4 ++++
 .../datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy      | 2 ++
 regression-test/suites/datatype_p0/agg_state/test_agg_state.groovy   | 2 ++
 7 files changed, 19 insertions(+), 5 deletions(-)

diff --git 
a/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java 
b/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java
index e28364103f4..d2c5b625ca6 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/AggStateType.java
@@ -90,6 +90,11 @@ public class AggStateType extends Type {
         return stringBuilder.toString();
     }
 
+    @Override
+    public String toString() {
+        return toSql();
+    }
+
     @Override
     protected String prettyPrint(int lpad) {
         return Strings.repeat(" ", lpad) + toSql();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
index b0c4ecb2527..45883fd6f46 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DescribeStmt.java
@@ -129,14 +129,13 @@ public class DescribeStmt extends ShowStmt {
             for (Column column : columns) {
                 List<String> row = Arrays.asList(
                         column.getName(),
-                        column.getOriginType().toString(),
+                        
column.getOriginType().hideVersionForVersionColumn(true),
                         column.isAllowNull() ? "Yes" : "No",
                         ((Boolean) column.isKey()).toString(),
                         column.getDefaultValue() == null
                                 ? FeConstants.null_string : 
column.getDefaultValue(),
                         "NONE"
                 );
-                row.set(1, 
column.getOriginType().hideVersionForVersionColumn(false));
                 totalRows.add(row);
             }
             return;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
index 60d1980d28b..0f2fb911d46 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
@@ -68,14 +68,12 @@ public class IndexSchemaProcNode implements 
ProcNodeInterface {
             String extraStr = StringUtils.join(extras, ",");
 
             List<String> rowList = Arrays.asList(column.getDisplayName(),
-                                                 
column.getOriginType().toString(),
+                                                 
column.getOriginType().hideVersionForVersionColumn(true),
                                                  column.isAllowNull() ? "Yes" 
: "No",
                                                  ((Boolean) 
column.isKey()).toString(),
                                                  column.getDefaultValue() == 
null
                                                          ? 
FeConstants.null_string : column.getDefaultValue(),
                                                  extraStr);
-
-            rowList.set(1, 
column.getOriginType().hideVersionForVersionColumn(false));
             result.addRow(rowList);
         }
         return result;
diff --git 
a/regression-test/data/datatype_p0/agg_state/nereids/test_agg_state_nereids.out 
b/regression-test/data/datatype_p0/agg_state/nereids/test_agg_state_nereids.out
index 03b46f74a49..8cdb1b8a59d 100644
--- 
a/regression-test/data/datatype_p0/agg_state/nereids/test_agg_state_nereids.out
+++ 
b/regression-test/data/datatype_p0/agg_state/nereids/test_agg_state_nereids.out
@@ -14,6 +14,10 @@
 -- !sum_null --
 \N
 
+-- !desc --
+k1     INT     Yes     true    \N      
+k2     AGG_STATE<max_by(INT, INT NULL)>        No      false   \N      GENERIC
+
 -- !length1 --
 1      11
 
diff --git a/regression-test/data/datatype_p0/agg_state/test_agg_state.out 
b/regression-test/data/datatype_p0/agg_state/test_agg_state.out
index 120a9844f64..0e1e5b6ed91 100644
--- a/regression-test/data/datatype_p0/agg_state/test_agg_state.out
+++ b/regression-test/data/datatype_p0/agg_state/test_agg_state.out
@@ -14,6 +14,10 @@
 -- !sum_null --
 \N
 
+-- !desc --
+k1     INT     Yes     true    \N      
+k2     AGG_STATE<max_by(INT, INT NULL)>        No      false   \N      GENERIC
+
 -- !length1 --
 1      11
 
diff --git 
a/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy
 
b/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy
index a302c274058..cc5f9d45ca0 100644
--- 
a/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy
+++ 
b/regression-test/suites/datatype_p0/agg_state/nereids/test_agg_state_nereids.groovy
@@ -55,6 +55,8 @@ suite("test_agg_state_nereids") {
             properties("replication_num" = "1");
         """
 
+    qt_desc "desc a_table;"
+
     sql "explain insert into a_table select 1,max_by_state(1,3);"
 
     sql "insert into a_table select 1,max_by_state(1,3);"
diff --git a/regression-test/suites/datatype_p0/agg_state/test_agg_state.groovy 
b/regression-test/suites/datatype_p0/agg_state/test_agg_state.groovy
index 78edeaaa340..515b74fdc1f 100644
--- a/regression-test/suites/datatype_p0/agg_state/test_agg_state.groovy
+++ b/regression-test/suites/datatype_p0/agg_state/test_agg_state.groovy
@@ -52,6 +52,8 @@ suite("test_agg_state") {
             properties("replication_num" = "1");
         """
 
+    qt_desc "desc a_table;"
+
     sql "insert into a_table select 1,max_by_state(1,3);"
     sql "insert into a_table select 1,max_by_state(2,2);"
     sql "insert into a_table values(1,max_by_state(3,1));"


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

Reply via email to