50 static void init(sparrow::arrow_proxy& proxy)
52 const size_t element_size = sparrow::num_bytes_for_fixed_sized_binary(proxy.format());
53 SPARROW_ASSERT_TRUE(element_size ==
UUID_SIZE);
55 std::optional<sparrow::key_value_view> metadata = proxy.metadata();
56 std::vector<sparrow::metadata_pair> extension_metadata = metadata.has_value()
57 ? std::vector<sparrow::metadata_pair>(
61 : std::vector<sparrow::metadata_pair>{};
64 const bool has_extension_name = std::ranges::find_if(
68 return pair.first ==
"ARROW:extension:name"
72 != extension_metadata.end();
73 if (!has_extension_name)
75 extension_metadata.emplace_back(
"ARROW:extension:name",
EXTENSION_NAME);
76 extension_metadata.emplace_back(
"ARROW:extension:metadata",
"");
78 proxy.set_metadata(std::make_optional(extension_metadata));