@@ -116,7 +116,6 @@ pub(super) struct DataFileSerde {
116116 upper_bounds : Option < Vec < BytesEntry > > ,
117117 key_metadata : Option < serde_bytes:: ByteBuf > ,
118118 split_offsets : Option < Vec < i64 > > ,
119- #[ serde( default ) ]
120119 equality_ids : Option < Vec < i32 > > ,
121120 sort_order_id : Option < i32 > ,
122121 first_row_id : Option < i64 > ,
@@ -155,7 +154,7 @@ impl DataFileSerde {
155154 upper_bounds : Some ( to_bytes_entry ( value. upper_bounds ) ?) ,
156155 key_metadata : value. key_metadata . map ( serde_bytes:: ByteBuf :: from) ,
157156 split_offsets : Some ( value. split_offsets ) ,
158- equality_ids : Some ( value. equality_ids ) ,
157+ equality_ids : value. equality_ids ,
159158 sort_order_id : value. sort_order_id ,
160159 first_row_id : value. first_row_id ,
161160 referenced_data_file : value. referenced_data_file ,
@@ -224,7 +223,7 @@ impl DataFileSerde {
224223 . unwrap_or_default ( ) ,
225224 key_metadata : self . key_metadata . map ( |v| v. to_vec ( ) ) ,
226225 split_offsets : self . split_offsets . unwrap_or_default ( ) ,
227- equality_ids : self . equality_ids . unwrap_or_default ( ) ,
226+ equality_ids : self . equality_ids ,
228227 sort_order_id : self . sort_order_id ,
229228 partition_spec_id,
230229 first_row_id : self . first_row_id ,
@@ -382,7 +381,7 @@ mod tests {
382381 upper_bounds: HashMap :: from( [ ( 1 , Datum :: int( 1 ) ) , ( 2 , Datum :: string( "a" ) ) , ( 3 , Datum :: string( "AC/DC" ) ) ] ) ,
383382 key_metadata: None ,
384383 split_offsets: vec![ 4 ] ,
385- equality_ids: vec! [ ] ,
384+ equality_ids: None ,
386385 sort_order_id: Some ( 0 ) ,
387386 partition_spec_id: 0 ,
388387 first_row_id: None ,
@@ -517,9 +516,8 @@ mod tests {
517516 "DataFileSerde should convert content 0 to DataContentType::Data"
518517 ) ;
519518 assert_eq ! (
520- v2_entry. data_file. equality_ids,
521- Vec :: <i32 >:: new( ) ,
522- "DataFileSerde should convert None equality_ids to empty vec"
519+ v2_entry. data_file. equality_ids, None ,
520+ "DataFileSerde should preserve None equality_ids as None"
523521 ) ;
524522
525523 // Verify other fields are preserved during conversion
@@ -581,9 +579,8 @@ mod tests {
581579 "content 0 should convert to DataContentType::Data"
582580 ) ;
583581 assert_eq ! (
584- data_file. equality_ids,
585- Vec :: <i32 >:: new( ) ,
586- "None equality_ids should convert to empty vec via unwrap_or_default()"
582+ data_file. equality_ids, None ,
583+ "None equality_ids should remain as None"
587584 ) ;
588585
589586 // Verify other fields are handled correctly during conversion
0 commit comments