Skip to content

Commit

Permalink
[fix](compatibility) type toSql should return lowercase string (apach…
Browse files Browse the repository at this point in the history
…e#38012)

pick from master apache#38012
  • Loading branch information
morrySnow committed Aug 1, 2024
1 parent db987c4 commit ebf26f6
Show file tree
Hide file tree
Showing 95 changed files with 1,428 additions and 1,423 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,14 @@ public boolean getResultIsNullable() {
@Override
public String toSql(int depth) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("AGG_STATE(");
stringBuilder.append("agg_state(");
for (int i = 0; i < subTypes.size(); i++) {
if (i > 0) {
stringBuilder.append(", ");
}
stringBuilder.append(subTypes.get(i).toSql());
if (subTypeNullables.get(i)) {
stringBuilder.append(" NULL");
stringBuilder.append(" null");
}
}
stringBuilder.append(")");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,13 @@ public static ArrayType create(Type type, boolean containsNull) {

@Override
public String toSql(int depth) {
StringBuilder typeStr = new StringBuilder();
typeStr.append("array<").append(itemType.toSql(depth + 1));
if (!containsNull) {
return "ARRAY<" + itemType.toSql(depth + 1) + " NOT NULL>";
} else {
return "ARRAY<" + itemType.toSql(depth + 1) + ">";
typeStr.append(" not null");
}
typeStr.append(">");
return typeStr.toString();
}

@Override
Expand Down Expand Up @@ -211,7 +213,7 @@ public boolean supportSubType(Type subType) {

@Override
public String toString() {
return String.format("ARRAY<%s>", itemType.toString());
return String.format("array<%s>", itemType.toString());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,9 @@ public boolean equals(Object other) {
@Override
public String toSql(int depth) {
if (depth >= MAX_NESTING_DEPTH) {
return "MAP<...>";
return "map<...>";
}
return String.format("MAP<%s,%s>",
return String.format("map<%s,%s>",
keyType.toSql(depth + 1), valueType.toSql(depth + 1));
}

Expand Down Expand Up @@ -176,7 +176,7 @@ public Type specializeTemplateType(Type specificType, Map<String, Type> speciali

@Override
public String toString() {
return String.format("MAP<%s,%s>",
return String.format("map<%s,%s>",
keyType.toString(), valueType.toString());
}

Expand Down
80 changes: 40 additions & 40 deletions fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java
Original file line number Diff line number Diff line change
Expand Up @@ -578,34 +578,34 @@ public static ScalarType createHllType() {
public String toString() {
if (type == PrimitiveType.CHAR) {
if (isWildcardChar()) {
return "CHARACTER(" + MAX_CHAR_LENGTH + ")";
return "character(" + MAX_CHAR_LENGTH + ")";
}
return "CHAR(" + len + ")";
return "char(" + len + ")";
} else if (type == PrimitiveType.DECIMALV2) {
if (isWildcardDecimal()) {
return "DECIMAL(*, *)";
return "decimal(*,*)";
}
return "DECIMAL(" + precision + ", " + scale + ")";
return "decimal(" + precision + "," + scale + ")";
} else if (type.isDecimalV3Type()) {
if (isWildcardDecimal()) {
return "DECIMALV3(*, *)";
return "decimalv3(*,*)";
}
return "DECIMALV3(" + precision + ", " + scale + ")";
return "decimalv3(" + precision + "," + scale + ")";
} else if (type == PrimitiveType.DATETIMEV2) {
return "DATETIMEV2(" + scale + ")";
return "datetimev2(" + scale + ")";
} else if (type == PrimitiveType.TIMEV2) {
return "TIMEV2(" + scale + ")";
return "timev2(" + scale + ")";
} else if (type == PrimitiveType.VARCHAR) {
if (isWildcardVarchar()) {
return "VARCHAR(" + MAX_VARCHAR_LENGTH + ")";
return "varchar(" + MAX_VARCHAR_LENGTH + ")";
}
return "VARCHAR(" + len + ")";
return "varchar(" + len + ")";
} else if (type == PrimitiveType.STRING) {
return "TEXT";
return "text";
} else if (type == PrimitiveType.JSONB) {
return "JSON";
return "json";
}
return type.toString();
return type.toString().toLowerCase();
}

@Override
Expand All @@ -614,68 +614,68 @@ public String toSql(int depth) {
switch (type) {
case CHAR:
if (isWildcardChar()) {
stringBuilder.append("CHARACTER").append("(").append(MAX_CHAR_LENGTH).append(")");
stringBuilder.append("character").append("(").append(MAX_CHAR_LENGTH).append(")");
} else if (Strings.isNullOrEmpty(lenStr)) {
stringBuilder.append("CHAR").append("(").append(len).append(")");
stringBuilder.append("char").append("(").append(len).append(")");
} else {
stringBuilder.append("CHAR").append("(`").append(lenStr).append("`)");
stringBuilder.append("char").append("(`").append(lenStr).append("`)");
}
break;
case VARCHAR:
if (isWildcardVarchar()) {
return "VARCHAR(" + MAX_VARCHAR_LENGTH + ")";
return "varchar(" + MAX_VARCHAR_LENGTH + ")";
} else if (Strings.isNullOrEmpty(lenStr)) {
stringBuilder.append("VARCHAR").append("(").append(len).append(")");
stringBuilder.append("varchar").append("(").append(len).append(")");
} else {
stringBuilder.append("VARCHAR").append("(`").append(lenStr).append("`)");
stringBuilder.append("varchar").append("(`").append(lenStr).append("`)");
}
break;
case DECIMALV2:
if (Strings.isNullOrEmpty(precisionStr)) {
stringBuilder.append("DECIMAL").append("(").append(precision)
.append(", ").append(scale).append(")");
stringBuilder.append("decimal").append("(").append(precision)
.append(",").append(scale).append(")");
} else if (!Strings.isNullOrEmpty(precisionStr) && !Strings.isNullOrEmpty(scaleStr)) {
stringBuilder.append("DECIMAL").append("(`").append(precisionStr)
.append("`, `").append(scaleStr).append("`)");
stringBuilder.append("decimal").append("(`").append(precisionStr)
.append("`,`").append(scaleStr).append("`)");
} else {
stringBuilder.append("DECIMAL").append("(`").append(precisionStr).append("`)");
stringBuilder.append("decimal").append("(`").append(precisionStr).append("`)");
}
break;
case DECIMAL32:
case DECIMAL64:
case DECIMAL128:
String typeName = "DECIMALV3";
String typeName = "decimalv3";
if (Strings.isNullOrEmpty(precisionStr)) {
stringBuilder.append(typeName).append("(").append(precision)
.append(", ").append(scale).append(")");
.append(",").append(scale).append(")");
} else if (!Strings.isNullOrEmpty(precisionStr) && !Strings.isNullOrEmpty(scaleStr)) {
stringBuilder.append(typeName).append("(`").append(precisionStr)
.append("`, `").append(scaleStr).append("`)");
.append("`,`").append(scaleStr).append("`)");
} else {
stringBuilder.append(typeName).append("(`").append(precisionStr).append("`)");
}
break;
case DATETIMEV2:
stringBuilder.append("DATETIMEV2").append("(").append(scale).append(")");
stringBuilder.append("datetimev2").append("(").append(scale).append(")");
break;
case TIME:
stringBuilder.append("TIME");
stringBuilder.append("time");
break;
case TIMEV2:
stringBuilder.append("TIME").append("(").append(scale).append(")");
stringBuilder.append("time").append("(").append(scale).append(")");
break;
case BOOLEAN:
return "BOOLEAN";
return "boolean";
case TINYINT:
return "TINYINT";
return "tinyint";
case SMALLINT:
return "SMALLINT";
return "smallint";
case INT:
return "INT";
return "int";
case BIGINT:
return "BIGINT";
return "bigint";
case LARGEINT:
return "LARGEINT";
return "largeint";
case FLOAT:
case DOUBLE:
case DATE:
Expand All @@ -688,16 +688,16 @@ public String toSql(int depth) {
case LAMBDA_FUNCTION:
case ARRAY:
case NULL_TYPE:
stringBuilder.append(type);
stringBuilder.append(type.toString().toLowerCase());
break;
case STRING:
stringBuilder.append("TEXT");
stringBuilder.append("text");
break;
case JSONB:
stringBuilder.append("JSON");
stringBuilder.append("json");
break;
case AGG_STATE:
stringBuilder.append("AGG_STATE(UNKNOWN)");
stringBuilder.append("agg_state(unknown)");
break;
default:
stringBuilder.append("unknown type: ").append(type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public boolean getContainsNull() {
public String toSql(int depth) {
String typeSql;
if (depth < Type.MAX_NESTING_DEPTH) {
typeSql = !containsNull ? "not_null(" + type.toSql(depth) + ")" : type.toSql(depth);
typeSql = type.toSql(depth + 1) + (!containsNull ? " not null" : "");
} else {
typeSql = "...";
}
Expand All @@ -98,7 +98,7 @@ public String toSql(int depth) {
sb.append(":").append(typeSql);
}
if (StringUtils.isNotBlank(comment)) {
sb.append(String.format(" COMMENT '%s'", comment));
sb.append(String.format(" comment '%s'", comment));
}
return sb.toString();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,13 @@ public StructType() {
@Override
public String toSql(int depth) {
if (depth >= MAX_NESTING_DEPTH) {
return "STRUCT<...>";
return "struct<...>";
}
ArrayList<String> fieldsSql = Lists.newArrayList();
for (StructField f : fields) {
fieldsSql.add(f.toSql(depth + 1));
}
return String.format("STRUCT<%s>", Joiner.on(",").join(fieldsSql));
return String.format("struct<%s>", Joiner.on(",").join(fieldsSql));
}

@Override
Expand Down Expand Up @@ -331,7 +331,7 @@ public String toString() {
for (StructField f : fields) {
fieldsSql.add(f.toString());
}
return String.format("STRUCT<%s>", Joiner.on(",").join(fieldsSql));
return String.format("struct<%s>", Joiner.on(",").join(fieldsSql));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,21 +132,21 @@ public void analyze(Analyzer analyzer) throws UserException {
"NONE"
);
if (column.getOriginType().isDatetimeV2()) {
StringBuilder typeStr = new StringBuilder("DATETIME");
StringBuilder typeStr = new StringBuilder("datetime");
if (((ScalarType) column.getOriginType()).getScalarScale() > 0) {
typeStr.append("(").append(((ScalarType) column.getOriginType()).getScalarScale()).append(")");
}
row.set(1, typeStr.toString());
} else if (column.getOriginType().isDateV2()) {
row.set(1, "DATE");
row.set(1, "date");
} else if (column.getOriginType().isDecimalV3()) {
StringBuilder typeStr = new StringBuilder("DECIMAL");
StringBuilder typeStr = new StringBuilder("decimal");
ScalarType sType = (ScalarType) column.getOriginType();
int scale = sType.getScalarScale();
int precision = sType.getScalarPrecision();
// not default
if (scale > 0 && precision != 9) {
typeStr.append("(").append(precision).append(", ").append(scale)
typeStr.append("(").append(precision).append(",").append(scale)
.append(")");
}
row.set(1, typeStr.toString());
Expand Down
4 changes: 2 additions & 2 deletions fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
Original file line number Diff line number Diff line change
Expand Up @@ -735,13 +735,13 @@ public String toSql(boolean isUniqueTable, boolean isCompatible) {
} else if (type.isDateV2()) {
sb.append("date");
} else if (type.isDecimalV3()) {
sb.append("DECIMAL");
sb.append("decimal");
ScalarType sType = (ScalarType) type;
int scale = sType.getScalarScale();
int precision = sType.getScalarPrecision();
// not default
if (!sType.isDefaultDecimal()) {
sb.append("(").append(precision).append(", ").append(scale)
sb.append("(").append(precision).append(",").append(scale)
.append(")");
}
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,17 @@ public ProcResult fetchResult() throws AnalysisException {
extraStr);

if (column.getOriginType().isDateV2()) {
rowList.set(1, "DATE");
rowList.set(1, "date");
}
if (column.getOriginType().isDatetimeV2()) {
StringBuilder typeStr = new StringBuilder("DATETIME");
StringBuilder typeStr = new StringBuilder("datetime");
if (((ScalarType) column.getOriginType()).getScalarScale() > 0) {
typeStr.append("(").append(((ScalarType) column.getOriginType()).getScalarScale()).append(")");
}
rowList.set(1, typeStr.toString());
}
if (column.getOriginType().isDecimalV3()) {
StringBuilder typeStr = new StringBuilder("DECIMAL");
StringBuilder typeStr = new StringBuilder("decimal");
ScalarType sType = (ScalarType) column.getOriginType();
int scale = sType.getScalarScale();
int precision = sType.getScalarPrecision();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,21 +48,21 @@ public void testNormal() throws AnalysisException {
columns.add(definition);
AddColumnsClause clause = new AddColumnsClause(columns, null, null);
clause.analyze(analyzer);
Assert.assertEquals("ADD COLUMN (`col1` INT NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` INT NOT NULL DEFAULT \"0\" COMMENT \"\")", clause.toString());
Assert.assertEquals("ADD COLUMN (`col1` int NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` int NOT NULL DEFAULT \"0\" COMMENT \"\")", clause.toString());

clause = new AddColumnsClause(columns, "", null);
clause.analyze(analyzer);
Assert.assertEquals("ADD COLUMN (`col1` INT NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` INT NOT NULL DEFAULT \"0\" COMMENT \"\")",
Assert.assertEquals("ADD COLUMN (`col1` int NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` int NOT NULL DEFAULT \"0\" COMMENT \"\")",
clause.toString());
Assert.assertNull(clause.getRollupName());

clause = new AddColumnsClause(columns, "testTable", null);
clause.analyze(analyzer);

Assert.assertEquals("ADD COLUMN (`col1` INT NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` INT NOT NULL DEFAULT \"0\" COMMENT \"\") IN `testTable`",
Assert.assertEquals("ADD COLUMN (`col1` int NOT NULL DEFAULT \"0\" COMMENT \"\", "
+ "`col2` int NOT NULL DEFAULT \"0\" COMMENT \"\") IN `testTable`",
clause.toString());
Assert.assertNull(clause.getProperties());
Assert.assertEquals("testTable", clause.getRollupName());
Expand Down
Loading

0 comments on commit ebf26f6

Please sign in to comment.