int32_t GetFieldId()

in src/iceberg/schema_internal.cc [188:202]


int32_t GetFieldId(const ArrowSchema& schema) {
  if (schema.metadata == nullptr) {
    return kUnknownFieldId;
  }

  ArrowStringView field_id_key{.data = kFieldIdKey.data(),
                               .size_bytes = kFieldIdKey.size()};
  ArrowStringView field_id_value;
  if (ArrowMetadataGetValue(schema.metadata, field_id_key, &field_id_value) !=
      NANOARROW_OK) {
    return kUnknownFieldId;
  }

  return std::stoi(std::string(field_id_value.data, field_id_value.size_bytes));
}