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