This is an automated email from the ASF dual-hosted git repository.
panxiaolei 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 ab7c2b9d22 [Bug](type) fix wildcard char's tostring get wrong result
(#24041)
ab7c2b9d22 is described below
commit ab7c2b9d2225e8f9d8a28c853045e641b2344bc2
Author: Pxl <[email protected]>
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 e31779b1b2..3655a8c5c4 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: [email protected]
For additional commands, e-mail: [email protected]