in spanner-data-validator-java/src/main/java/com/google/migration/Helpers.java [248:279]
public static GenericRecord spannerResultSetToGenericRecord(com.google.cloud.spanner.ResultSet spannerResultSet,
String schemaStr) {
Schema schema = new Schema.Parser().parse(schemaStr);
GenericRecord record = new Record(schema);
List<Schema.Field> fieldsList = schema.getFields();
for(Field field: fieldsList) {
String fieldName = field.name();
Type columnType = spannerResultSet.getColumnType(fieldName);
switch (columnType.toString()) {
case "STRING":
record.put(fieldName, spannerResultSet.getString(fieldName));
break;
case "INT64":
record.put(fieldName, spannerResultSet.getLong(fieldName));
break;
case "TIMESTAMP":
record.put(fieldName, spannerResultSet.getTimestamp(fieldName).toSqlTimestamp().getTime());
break;
case "BOOL":
case "BOOLEAN":
record.put(fieldName, spannerResultSet.getBoolean(fieldName));
break;
default:
throw new RuntimeException(String.format("Unsupported type: %s", columnType));
} // switch
} // for
return record;
}