You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
round tripping native lance Field from ArrowField and back drops the nullable field.
let arrow_field = ArrowField::new_fixed_size_list("list",ArrowField::new("item",DataType::Int32,false),1,false,);let field = Field::try_from(&arrow_field).unwrap();assert_eq!(field.name, "list");assert_eq!(field.nullable, arrow_field.is_nullable());assert_eq!(&field.data_type(), arrow_field.data_type());assert_eq!(ArrowField::from(&field), arrow_field);
it seems that we drop it because Field::data_type calls impl TryFrom<&LogicalType> for DataType, which hard codes the nullable field.
The text was updated successfully, but these errors were encountered:
universalmind303
changed the title
bug: round trip FixedSizeList lance <-> arrow. nullable is not preserved
bug: round trip FixedSizeList lance <-> arrow. nullability is not preserved
May 6, 2024
Yeah the underlying problem is that when we implemented FixedSizeList data type, we decided not to make the inner field an actual field. It just serialized the data type, and doesn't handle any metadata, nullability, or child fields. This also blocks #1293
I started to fix this in #1693, but it causes drastic breaking changes in how schemas and page tables are handled.
round tripping native lance
Field
fromArrowField
and back drops thenullable
field.it seems that we drop it because
Field::data_type
callsimpl TryFrom<&LogicalType> for DataType
, which hard codes thenullable
field.The text was updated successfully, but these errors were encountered: