Describe the bug
Uuid::deserialize_metadata rejects any Some(_) value, including Some(""). Some Arrow implementations (e.g. arrow-go) unconditionally write "" for the ARROW:extension:metadata key on every extension-typed field, so reading such IPC streams with arrow-rs fails with Uuid extension type expects no metadata.
Expected behavior
An empty metadata string should be treated as equivalent to no metadata, matching the existing tolerance in TimestampWithOffset::deserialize_metadata (arrow-schema/src/extension/canonical/timestamp_with_offset.rs:75-88).
Additional context
Uuid is the only Metadata = () canonical extension type that doesn't already accept Some(""). Bool8 and Json legitimately use "" as their actual metadata value per the canonical spec and should not change.
Describe the bug
Uuid::deserialize_metadatarejects anySome(_)value, includingSome(""). Some Arrow implementations (e.g. arrow-go) unconditionally write""for theARROW:extension:metadatakey on every extension-typed field, so reading such IPC streams witharrow-rsfails withUuid extension type expects no metadata.Expected behavior
An empty metadata string should be treated as equivalent to no metadata, matching the existing tolerance in
TimestampWithOffset::deserialize_metadata(arrow-schema/src/extension/canonical/timestamp_with_offset.rs:75-88).Additional context
Uuidis the onlyMetadata = ()canonical extension type that doesn't already acceptSome("").Bool8andJsonlegitimately use""as their actual metadata value per the canonical spec and should not change.