public static GenericRecord spannerResultSetToGenericRecord()

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;
  }