Skip to content

Uuid extension type fails to deserialize when ARROW:extension:metadata is an empty string #10000

@asubiotto

Description

@asubiotto

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions