in src/main/java/com/google/cloud/spanner/pgadapter/parsers/Parser.java [182:218]
public static Parser<?> create(
ResultSet result, Type type, int columnarPosition, SessionState sessionState) {
switch (type.getCode()) {
case BOOL:
return new BooleanParser(result, columnarPosition);
case BYTES:
return new BinaryParser(result, columnarPosition);
case DATE:
return new DateParser(result, columnarPosition);
case FLOAT32:
return new FloatParser(result, columnarPosition);
case FLOAT64:
return new DoubleParser(result, columnarPosition);
case INT64:
case PG_OID:
return new LongParser(result, columnarPosition);
case PG_NUMERIC:
return new NumericParser(result, columnarPosition);
case STRING:
return new StringParser(result, columnarPosition);
case UUID:
return new UuidParser(result, columnarPosition);
case TIMESTAMP:
return new TimestampParser(result, columnarPosition, sessionState);
case INTERVAL:
return new IntervalParser(result, columnarPosition);
case PG_JSONB:
return new JsonbParser(result, columnarPosition);
case ARRAY:
return new ArrayParser(result, columnarPosition, sessionState);
case NUMERIC:
case JSON:
case STRUCT:
default:
throw new IllegalArgumentException("Illegal or unknown element type: " + type);
}
}