in seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/catalog/StarRocksCatalog.java [295:360]
private SeaTunnelDataType<?> fromJdbcType(ResultSetMetaData metadata, int colIndex)
throws SQLException {
MysqlType starrocksType = MysqlType.getByName(metadata.getColumnTypeName(colIndex));
switch (starrocksType) {
case NULL:
return BasicType.VOID_TYPE;
case BOOLEAN:
return BasicType.BOOLEAN_TYPE;
case BIT:
case TINYINT:
return BasicType.BYTE_TYPE;
case TINYINT_UNSIGNED:
case SMALLINT:
return BasicType.SHORT_TYPE;
case SMALLINT_UNSIGNED:
case INT:
case MEDIUMINT:
case MEDIUMINT_UNSIGNED:
return BasicType.INT_TYPE;
case INT_UNSIGNED:
case BIGINT:
return BasicType.LONG_TYPE;
case FLOAT:
case FLOAT_UNSIGNED:
return BasicType.FLOAT_TYPE;
case DOUBLE:
case DOUBLE_UNSIGNED:
return BasicType.DOUBLE_TYPE;
case TIME:
return LocalTimeType.LOCAL_TIME_TYPE;
case DATE:
return LocalTimeType.LOCAL_DATE_TYPE;
case TIMESTAMP:
case DATETIME:
return LocalTimeType.LOCAL_DATE_TIME_TYPE;
case CHAR:
case VARCHAR:
case TINYTEXT:
case TEXT:
case MEDIUMTEXT:
case LONGTEXT:
case JSON:
case ENUM:
return BasicType.STRING_TYPE;
case BINARY:
case VARBINARY:
case TINYBLOB:
case BLOB:
case MEDIUMBLOB:
case LONGBLOB:
case GEOMETRY:
return PrimitiveByteArrayType.INSTANCE;
case BIGINT_UNSIGNED:
case DECIMAL:
case DECIMAL_UNSIGNED:
int precision = metadata.getPrecision(colIndex);
int scale = metadata.getScale(colIndex);
return new DecimalType(precision, scale);
default:
throw new StarRocksConnectorException(
CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
String.format(
"Doesn't support Starrocks type '%s' yet",
starrocksType.getName()));
}
}