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