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
commit 8f076d5b04c52e08a0414cb54246449a48f5ca95 Author: Pxl <pxl...@qq.com> AuthorDate: Thu Sep 7 20:25:38 2023 +0800 [Bug](type) fix wildcard char's tostring get wrong result (#24041) fix wildcard char's tostring get wrong result --- fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java | 6 ++++-- .../src/test/java/org/apache/doris/catalog/CreateFunctionTest.java | 4 ++-- regression-test/data/datatype_p0/string/test_string_basic.out | 3 +++ regression-test/suites/datatype_p0/string/test_string_basic.groovy | 3 +++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java index 7500e231ef..e3f1b518d0 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java @@ -532,7 +532,7 @@ public class ScalarType extends Type { public String toString() { if (type == PrimitiveType.CHAR) { if (isWildcardChar()) { - return "CHAR(*)"; + return "CHARACTER"; } return "CHAR(" + len + ")"; } else if (type == PrimitiveType.DECIMALV2) { @@ -567,7 +567,9 @@ public class ScalarType extends Type { StringBuilder stringBuilder = new StringBuilder(); switch (type) { case CHAR: - if (Strings.isNullOrEmpty(lenStr)) { + if (isWildcardVarchar()) { + stringBuilder.append("character"); + } else if (Strings.isNullOrEmpty(lenStr)) { stringBuilder.append("char").append("(").append(len).append(")"); } else { stringBuilder.append("char").append("(`").append(lenStr).append("`)"); diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java index 1d5a1ef1e7..41d991b41e 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CreateFunctionTest.java @@ -199,7 +199,7 @@ public class CreateFunctionTest { Assert.assertTrue(constExprLists.get(0).get(0) instanceof StringLiteral); queryStr = "select db1.to_char(k1, 4) from db1.tbl1;"; - Assert.assertTrue(dorisAssert.query(queryStr).explainQuery().contains("CAST(`k1` AS CHAR(*))")); + Assert.assertTrue(dorisAssert.query(queryStr).explainQuery().contains("CAST(`k1` AS CHARACTER")); } @Test @@ -285,7 +285,7 @@ public class CreateFunctionTest { testFunctionQuery(ctx, queryStr, true); queryStr = "select to_char(k1, 4) from db2.tbl1;"; - Assert.assertTrue(dorisAssert.query(queryStr).explainQuery().contains("CAST(`k1` AS CHAR(*))")); + Assert.assertTrue(dorisAssert.query(queryStr).explainQuery().contains("CAST(`k1` AS CHARACTER)")); } private void testFunctionQuery(ConnectContext ctx, String queryStr, Boolean isStringLiteral) throws Exception { diff --git a/regression-test/data/datatype_p0/string/test_string_basic.out b/regression-test/data/datatype_p0/string/test_string_basic.out index fc1268643c..6270f4f5d8 100644 --- a/regression-test/data/datatype_p0/string/test_string_basic.out +++ b/regression-test/data/datatype_p0/string/test_string_basic.out @@ -95,3 +95,6 @@ 8008 8 0 8008 8008 0 +-- !test -- +a + diff --git a/regression-test/suites/datatype_p0/string/test_string_basic.groovy b/regression-test/suites/datatype_p0/string/test_string_basic.groovy index 618353ccce..c6527a4851 100644 --- a/regression-test/suites/datatype_p0/string/test_string_basic.groovy +++ b/regression-test/suites/datatype_p0/string/test_string_basic.groovy @@ -346,5 +346,8 @@ suite("test_string_basic") { test_string_cmp order by s1, s2, counts; """ + sql "drop view if exists char_view;" + sql "create view char_view as select cast('a' as CHARACTER);" + qt_test "select * from char_view"; } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org