in seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/snowflake/SnowflakeDataTypeConvertor.java [96:154]
public SeaTunnelDataType<?> toSeaTunnelType(
String field, String connectorDataType, Map<String, Object> dataTypeProperties) {
checkNotNull(connectorDataType, "redshiftType cannot be null");
switch (connectorDataType) {
case SNOWFLAKE_SMALLINT:
case SNOWFLAKE_TINYINT:
case SNOWFLAKE_BYTEINT:
return BasicType.SHORT_TYPE;
case SNOWFLAKE_INTEGER:
case SNOWFLAKE_INT:
return BasicType.INT_TYPE;
case SNOWFLAKE_BIGINT:
return BasicType.LONG_TYPE;
case SNOWFLAKE_DECIMAL:
case SNOWFLAKE_NUMERIC:
case SNOWFLAKE_NUMBER:
Integer precision =
MapUtils.getInteger(dataTypeProperties, PRECISION, DEFAULT_PRECISION);
Integer scale = MapUtils.getInteger(dataTypeProperties, SCALE, DEFAULT_SCALE);
return new DecimalType(precision, scale);
case SNOWFLAKE_REAL:
case SNOWFLAKE_FLOAT4:
return BasicType.FLOAT_TYPE;
case SNOWFLAKE_DOUBLE:
case SNOWFLAKE_DOUBLE_PRECISION:
case SNOWFLAKE_FLOAT8:
case SNOWFLAKE_FLOAT:
return BasicType.DOUBLE_TYPE;
case SNOWFLAKE_BOOLEAN:
return BasicType.BOOLEAN_TYPE;
case SNOWFLAKE_CHAR:
case SNOWFLAKE_CHARACTER:
case SNOWFLAKE_VARCHAR:
case SNOWFLAKE_STRING:
case SNOWFLAKE_TEXT:
case SNOWFLAKE_VARIANT:
case SNOWFLAKE_OBJECT:
case SNOWFLAKE_GEOMETRY:
return BasicType.STRING_TYPE;
case SNOWFLAKE_BINARY:
case SNOWFLAKE_VARBINARY:
case SNOWFLAKE_GEOGRAPHY:
return PrimitiveByteArrayType.INSTANCE;
case SNOWFLAKE_DATE:
return LocalTimeType.LOCAL_DATE_TYPE;
case SNOWFLAKE_TIME:
return LocalTimeType.LOCAL_TIME_TYPE;
case SNOWFLAKE_DATE_TIME:
case SNOWFLAKE_TIMESTAMP:
case SNOWFLAKE_TIMESTAMP_LTZ:
case SNOWFLAKE_TIMESTAMP_NTZ:
case SNOWFLAKE_TIMESTAMP_TZ:
return LocalTimeType.LOCAL_DATE_TIME_TYPE;
default:
throw CommonError.convertToSeaTunnelTypeError(
DatabaseIdentifier.SNOWFLAKE, connectorDataType, field);
}
}