Skip to content

Arrow schema from bytes doesn't handle empty children arrays consistently with python #250

@alamb

Description

@alamb

Describe the bug
Found by @gangliao on apache/arrow#9764

reading the code, it does appear that the intent of the ipc::convert::tests::schema_from_bytes test is to compare the schema from two different IPC message (aka schema2 should be coming from the ipc2 message) as @gangliao has done in apache/arrow#9764.

The test seems to have failed however https://github.com/apache/arrow/pull/9764/checks?check_run_id=2161212421

thread 'ipc::convert::tests::schema_from_bytes' panicked at 'assertion failed: `(left == right)`
  left: `Schema { endianness: Little, fields: Some([Field { name: Some("field1"), nullable: false, type_type: Int, type_: Int { bitWidth: 32, is_signed: false }, dictionary: None, children: Some([]), custom_metadata: None }]), custom_metadata: None, features: None }`,
 right: `Schema { endianness: Little, fields: Some([Field { name: Some("field1"), nullable: false, type_type: Int, type_: Int { bitWidth: 32, is_signed: false }, dictionary: None, children: None, custom_metadata: None }]), custom_metadata: Some([]), features: None }`', arrow/src/ipc/convert.rs:864:9

The difference is that schema has children: Some([]) and schema2 has children: None

To Reproduce
See change to test above

Expected behavior
Test should pass (the schemas should be the same)

Metadata

Metadata

Assignees

No one assigned

    Labels

    arrowChanges to the arrow cratebug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions