in spanner-data-validator-java/src/main/java/com/google/migration/DataTransforms.java [86:120]
public GenericRecord apply(ResultSet resultSet) {
if(schema == null) {
schema = new org.apache.avro.Schema.Parser().parse(this.schemaString);
}
GenericRecord avroRecord = new GenericData.Record(schema);
try {
// ResultSet has 1 based indexing
avroRecord.put("id", resultSet.getString(1));
avroRecord.put("type", resultSet.getString(2));
avroRecord.put("bucket", resultSet.getString(3));
avroRecord.put("key", resultSet.getString(4));
// TODO: consider Instant
avroRecord.put("last_modified", resultSet.getTimestamp(5).getTime());
avroRecord.put("recorded_at", resultSet.getTimestamp(6).getTime());
avroRecord.put("version_id", resultSet.getString(7));
avroRecord.put("gcs_bucket", resultSet.getString(8));
avroRecord.put("gcs_key", resultSet.getString(9));
avroRecord.put("gcs_confirmed", resultSet.getBoolean(10));
avroRecord.put("version", resultSet.getString(11));
avroRecord.put("extension", resultSet.getString(12));
avroRecord.put("record_id", resultSet.getString(13));
avroRecord.put("created_at", resultSet.getTimestamp(14).getTime());
return avroRecord;
} catch (Exception ex) {
LOG.error(ex.getMessage());
LOG.error(ex.getStackTrace().toString());
return null;
}
}