in v1/src/main/java/com/google/cloud/teleport/spanner/common/SizedType.java [63:156]
public static String typeString(Type type, Integer size, boolean outputAsDdlRepresentation) {
switch (type.getCode()) {
case BOOL:
return "BOOL";
case PG_BOOL:
return "boolean";
case INT64:
return "INT64";
case PG_INT8:
return "bigint";
case FLOAT32:
return "FLOAT32";
case PG_FLOAT4:
return "real";
case FLOAT64:
return "FLOAT64";
case PG_FLOAT8:
return "double precision";
case UUID:
return "UUID";
case PG_UUID:
return "uuid";
case STRING:
return "STRING(" + (size == -1 ? "MAX" : Integer.toString(size)) + ")";
case PG_VARCHAR:
return "character varying" + (size == -1 ? "" : ("(" + Integer.toString(size) + ")"));
case PG_TEXT:
return "text";
case BYTES:
return "BYTES(" + (size == -1 ? "MAX" : Integer.toString(size)) + ")";
case TOKENLIST:
return "TOKENLIST";
case PG_BYTEA:
return "bytea";
case DATE:
return "DATE";
case PG_DATE:
return "date";
case TIMESTAMP:
return "TIMESTAMP";
case PG_TIMESTAMPTZ:
return "timestamp with time zone";
case PG_SPANNER_COMMIT_TIMESTAMP:
return "spanner.commit_timestamp";
case NUMERIC:
return "NUMERIC";
case PG_NUMERIC:
return "numeric";
case JSON:
return "JSON";
case PG_JSONB:
return "jsonb";
case PG_SPANNER_TOKENLIST:
return "spanner.tokenlist";
case PROTO:
if (outputAsDdlRepresentation) {
String quote = NameUtils.identifierQuote(Dialect.GOOGLE_STANDARD_SQL);
return quote + type.getProtoTypeFqn() + quote;
} else {
return "PROTO<" + type.getProtoTypeFqn() + ">";
}
case ENUM:
if (outputAsDdlRepresentation) {
String quote = NameUtils.identifierQuote(Dialect.GOOGLE_STANDARD_SQL);
return quote + type.getProtoTypeFqn() + quote;
} else {
return "ENUM<" + type.getProtoTypeFqn() + ">";
}
case ARRAY:
{
Type arrayType = type.getArrayElementType();
return "ARRAY<" + typeString(arrayType, size, outputAsDdlRepresentation) + ">";
}
case STRUCT:
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < type.getStructFields().size(); ++i) {
Type.StructField field = type.getStructFields().get(i);
sb.append(i > 0 ? ", " : "")
.append(field.getName())
.append(" ")
.append(typeString(field.getType(), -1, outputAsDdlRepresentation));
}
return "STRUCT<" + sb.toString() + ">";
}
case PG_ARRAY:
{
Type arrayType = type.getArrayElementType();
return typeString(arrayType, size) + "[]";
}
}
throw new IllegalArgumentException("Unknown type " + type);
}