[Bug](type) fix wildcard char's tostring get wrong result (#24041)
fix wildcard char's tostring get wrong result
This commit is contained in:
@ -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("`)");
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -95,3 +95,6 @@
|
||||
8008 8 0
|
||||
8008 8008 0
|
||||
|
||||
-- !test --
|
||||
a
|
||||
|
||||
|
||||
@ -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";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user