Unverified Commit 514fd459 authored by aiwenmo's avatar aiwenmo Committed by GitHub

[Fix-509 ][metabase] Fix MySqlTypeConvert precision and scale is null bug

[Fix-509 ][metabase] Fix MySqlTypeConvert precision and scale is null bug
parents 74ec170a 9fbf7ac6
...@@ -13,40 +13,42 @@ import com.dlink.model.ColumnType; ...@@ -13,40 +13,42 @@ import com.dlink.model.ColumnType;
public class MySqlTypeConvert implements ITypeConvert { public class MySqlTypeConvert implements ITypeConvert {
@Override @Override
public ColumnType convert(Column column) { public ColumnType convert(Column column) {
ColumnType columnType = ColumnType.STRING;
if (Asserts.isNull(column)) { if (Asserts.isNull(column)) {
return ColumnType.STRING; return columnType;
} }
String t = column.getType().toLowerCase(); String t = column.getType().toLowerCase();
if (t.contains("tinyint")) { if (t.contains("tinyint")) {
return ColumnType.BYTE; columnType = ColumnType.BYTE;
} else if (t.contains("smallint") || t.contains("tinyint unsigned")) { } else if (t.contains("smallint") || t.contains("tinyint unsigned")) {
return ColumnType.SHORT; columnType = ColumnType.SHORT;
} else if (t.contains("bigint unsigned") || t.contains("numeric") || t.contains("decimal")) { } else if (t.contains("bigint unsigned") || t.contains("numeric") || t.contains("decimal")) {
return ColumnType.DECIMAL; columnType = ColumnType.DECIMAL;
} else if (t.contains("bigint") || t.contains("int unsigned")) { } else if (t.contains("bigint") || t.contains("int unsigned")) {
return ColumnType.LONG; columnType = ColumnType.LONG;
} else if (t.contains("float")) { } else if (t.contains("float")) {
return ColumnType.FLOAT; columnType = ColumnType.FLOAT;
} else if (t.contains("double")) { } else if (t.contains("double")) {
return ColumnType.DOUBLE; columnType = ColumnType.DOUBLE;
} else if (t.contains("boolean") || t.contains("tinyint(1)")) { } else if (t.contains("boolean") || t.contains("tinyint(1)")) {
return ColumnType.BOOLEAN; columnType = ColumnType.BOOLEAN;
} else if (t.contains("datetime")) { } else if (t.contains("datetime")) {
return ColumnType.TIMESTAMP; columnType = ColumnType.TIMESTAMP;
} else if (t.contains("date")) { } else if (t.contains("date")) {
return ColumnType.DATE; columnType = ColumnType.DATE;
} else if (t.contains("timestamp")) { } else if (t.contains("timestamp")) {
return ColumnType.TIMESTAMP; columnType = ColumnType.TIMESTAMP;
} else if (t.contains("time")) { } else if (t.contains("time")) {
return ColumnType.TIME; columnType = ColumnType.TIME;
} else if (t.contains("char") || t.contains("text")) { } else if (t.contains("char") || t.contains("text")) {
return ColumnType.STRING; columnType = ColumnType.STRING;
} else if (t.contains("binary") || t.contains("blob")) { } else if (t.contains("binary") || t.contains("blob")) {
return ColumnType.BYTES; columnType = ColumnType.BYTES;
} else if (t.contains("int") || t.contains("mediumint") || t.contains("smallint unsigned")) { } else if (t.contains("int") || t.contains("mediumint") || t.contains("smallint unsigned")) {
return ColumnType.INTEGER; columnType = ColumnType.INTEGER;
} }
return ColumnType.STRING; columnType.setPrecisionAndScale(column.getPrecision(), column.getScale());
return columnType;
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment