@@ -579,7 +579,7 @@ pub struct ManifestFile {
579
579
/// field: 519
580
580
///
581
581
/// Implementation-specific key metadata for encryption
582
- pub key_metadata : Vec < u8 > ,
582
+ pub key_metadata : Option < Vec < u8 > > ,
583
583
}
584
584
585
585
impl ManifestFile {
@@ -830,7 +830,7 @@ pub(super) mod _serde {
830
830
existing_rows_count : Some ( self . existing_rows_count . try_into ( ) ?) ,
831
831
deleted_rows_count : Some ( self . deleted_rows_count . try_into ( ) ?) ,
832
832
partitions : self . partitions ,
833
- key_metadata : self . key_metadata . map ( |b| b. into_vec ( ) ) . unwrap_or_default ( ) ,
833
+ key_metadata : self . key_metadata . map ( |b| b. into_vec ( ) ) ,
834
834
} )
835
835
}
836
836
}
@@ -862,7 +862,7 @@ pub(super) mod _serde {
862
862
. transpose ( ) ?,
863
863
deleted_rows_count : self . deleted_rows_count . map ( TryInto :: try_into) . transpose ( ) ?,
864
864
partitions : self . partitions ,
865
- key_metadata : self . key_metadata . map ( |b| b. into_vec ( ) ) . unwrap_or_default ( ) ,
865
+ key_metadata : self . key_metadata . map ( |b| b. into_vec ( ) ) ,
866
866
// as ref: https://iceberg.apache.org/spec/#partitioning
867
867
// use 0 when reading v1 manifest lists
868
868
content : super :: ManifestContentType :: Data ,
@@ -872,11 +872,10 @@ pub(super) mod _serde {
872
872
}
873
873
}
874
874
875
- fn convert_to_serde_key_metadata ( key_metadata : Vec < u8 > ) -> Option < ByteBuf > {
876
- if key_metadata. is_empty ( ) {
877
- None
878
- } else {
879
- Some ( ByteBuf :: from ( key_metadata) )
875
+ fn convert_to_serde_key_metadata ( key_metadata : Option < Vec < u8 > > ) -> Option < ByteBuf > {
876
+ match key_metadata {
877
+ Some ( metadata) if !metadata. is_empty ( ) => Some ( ByteBuf :: from ( metadata) ) ,
878
+ _ => None ,
880
879
}
881
880
}
882
881
@@ -1025,7 +1024,7 @@ mod test {
1025
1024
existing_rows_count: Some ( 0 ) ,
1026
1025
deleted_rows_count: Some ( 0 ) ,
1027
1026
partitions: Some ( vec![ ] ) ,
1028
- key_metadata: vec! [ ] ,
1027
+ key_metadata: None ,
1029
1028
}
1030
1029
]
1031
1030
} ;
@@ -1076,7 +1075,7 @@ mod test {
1076
1075
partitions: Some (
1077
1076
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) } ]
1078
1077
) ,
1079
- key_metadata: vec! [ ] ,
1078
+ key_metadata: None ,
1080
1079
} ,
1081
1080
ManifestFile {
1082
1081
manifest_path: "s3a://icebergdata/demo/s1/t1/metadata/05ffe08b-810f-49b3-a8f4-e88fc99b254a-m1.avro" . to_string( ) ,
@@ -1095,7 +1094,7 @@ mod test {
1095
1094
partitions: Some (
1096
1095
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: float( 1.1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: float( 2.1 ) . to_bytes( ) . unwrap( ) ) } ]
1097
1096
) ,
1098
- key_metadata: vec! [ ] ,
1097
+ key_metadata: None ,
1099
1098
}
1100
1099
]
1101
1100
} ;
@@ -1144,7 +1143,7 @@ mod test {
1144
1143
existing_rows_count: Some ( 0 ) ,
1145
1144
deleted_rows_count: Some ( 0 ) ,
1146
1145
partitions: None ,
1147
- key_metadata: vec! [ ] ,
1146
+ key_metadata: None ,
1148
1147
} ]
1149
1148
} . try_into ( ) . unwrap ( ) ;
1150
1149
let result = serde_json:: to_string ( & manifest_list) . unwrap ( ) ;
@@ -1174,7 +1173,7 @@ mod test {
1174
1173
partitions: Some (
1175
1174
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) } ]
1176
1175
) ,
1177
- key_metadata: vec! [ ] ,
1176
+ key_metadata: None ,
1178
1177
} ]
1179
1178
} . try_into ( ) . unwrap ( ) ;
1180
1179
let result = serde_json:: to_string ( & manifest_list) . unwrap ( ) ;
@@ -1204,7 +1203,7 @@ mod test {
1204
1203
partitions: Some (
1205
1204
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) } ] ,
1206
1205
) ,
1207
- key_metadata: vec! [ ] ,
1206
+ key_metadata: None ,
1208
1207
} ]
1209
1208
} ;
1210
1209
@@ -1250,7 +1249,7 @@ mod test {
1250
1249
partitions: Some (
1251
1250
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) } ]
1252
1251
) ,
1253
- key_metadata: vec! [ ] ,
1252
+ key_metadata: None ,
1254
1253
} ]
1255
1254
} ;
1256
1255
@@ -1295,7 +1294,7 @@ mod test {
1295
1294
partitions: Some (
1296
1295
vec![ FieldSummary { contains_null: false , contains_nan: Some ( false ) , lower_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) , upper_bound: Some ( Datum :: long( 1 ) . to_bytes( ) . unwrap( ) ) } ]
1297
1296
) ,
1298
- key_metadata: vec! [ ] ,
1297
+ key_metadata: None ,
1299
1298
} ]
1300
1299
} ;
1301
1300
0 commit comments