@@ -1074,7 +1074,7 @@ pub struct DataFile {
10741074 ///
10751075 /// Implementation-specific key metadata for encryption
10761076 #[ builder( default ) ]
1077- pub ( crate ) key_metadata : Vec < u8 > ,
1077+ pub ( crate ) key_metadata : Option < Vec < u8 > > ,
10781078 /// field id: 132
10791079 /// element field id: 133
10801080 ///
@@ -1164,8 +1164,8 @@ impl DataFile {
11641164 & self . upper_bounds
11651165 }
11661166 /// Get the Implementation-specific key metadata for the data file.
1167- pub fn key_metadata ( & self ) -> & [ u8 ] {
1168- & self . key_metadata
1167+ pub fn key_metadata ( & self ) -> Option < & [ u8 ] > {
1168+ self . key_metadata . as_deref ( )
11691169 }
11701170 /// Get the split offsets of the data file.
11711171 /// For example, all row group offsets in a Parquet file.
@@ -1378,12 +1378,13 @@ mod _serde {
13781378 nan_value_counts : Some ( to_i64_entry ( value. nan_value_counts ) ?) ,
13791379 lower_bounds : Some ( to_bytes_entry ( value. lower_bounds ) ?) ,
13801380 upper_bounds : Some ( to_bytes_entry ( value. upper_bounds ) ?) ,
1381- key_metadata : Some ( serde_bytes:: ByteBuf :: from ( value . key_metadata ) ) ,
1381+ key_metadata : value . key_metadata . map ( serde_bytes:: ByteBuf :: from) ,
13821382 split_offsets : Some ( value. split_offsets ) ,
13831383 equality_ids : Some ( value. equality_ids ) ,
13841384 sort_order_id : value. sort_order_id ,
13851385 } )
13861386 }
1387+
13871388 pub fn try_into (
13881389 self ,
13891390 partition_type : & StructType ,
@@ -1441,7 +1442,7 @@ mod _serde {
14411442 . map ( |v| parse_bytes_entry ( v, schema) )
14421443 . transpose ( ) ?
14431444 . unwrap_or_default ( ) ,
1444- key_metadata : self . key_metadata . map ( |v| v. to_vec ( ) ) . unwrap_or_default ( ) ,
1445+ key_metadata : self . key_metadata . map ( |v| v. to_vec ( ) ) ,
14451446 split_offsets : self . split_offsets . unwrap_or_default ( ) ,
14461447 equality_ids : self . equality_ids . unwrap_or_default ( ) ,
14471448 sort_order_id : self . sort_order_id ,
@@ -1657,7 +1658,7 @@ mod tests {
16571658 nan_value_counts: HashMap :: new( ) ,
16581659 lower_bounds: HashMap :: new( ) ,
16591660 upper_bounds: HashMap :: new( ) ,
1660- key_metadata: Vec :: new ( ) ,
1661+ key_metadata: None ,
16611662 split_offsets: vec![ 4 ] ,
16621663 equality_ids: Vec :: new( ) ,
16631664 sort_order_id: None ,
@@ -1813,7 +1814,7 @@ mod tests {
18131814 nan_value_counts: HashMap :: new( ) ,
18141815 lower_bounds: HashMap :: new( ) ,
18151816 upper_bounds: HashMap :: new( ) ,
1816- key_metadata: vec! [ ] ,
1817+ key_metadata: None ,
18171818 split_offsets: vec![ 4 ] ,
18181819 equality_ids: vec![ ] ,
18191820 sort_order_id: None ,
@@ -1880,7 +1881,7 @@ mod tests {
18801881 nan_value_counts: HashMap :: new( ) ,
18811882 lower_bounds: HashMap :: from( [ ( 1 , Datum :: int( 1 ) ) , ( 2 , Datum :: string( "a" ) ) , ( 3 , Datum :: string( "AC/DC" ) ) ] ) ,
18821883 upper_bounds: HashMap :: from( [ ( 1 , Datum :: int( 1 ) ) , ( 2 , Datum :: string( "a" ) ) , ( 3 , Datum :: string( "AC/DC" ) ) ] ) ,
1883- key_metadata: vec! [ ] ,
1884+ key_metadata: None ,
18841885 split_offsets: vec![ 4 ] ,
18851886 equality_ids: vec![ ] ,
18861887 sort_order_id: Some ( 0 ) ,
@@ -1960,7 +1961,7 @@ mod tests {
19601961 ( 2 , Datum :: string( "a" ) ) ,
19611962 ( 3 , Datum :: string( "x" ) )
19621963 ] ) ,
1963- key_metadata: vec! [ ] ,
1964+ key_metadata: None ,
19641965 split_offsets: vec![ 4 ] ,
19651966 equality_ids: vec![ ] ,
19661967 sort_order_id: Some ( 0 ) ,
@@ -2035,7 +2036,7 @@ mod tests {
20352036 ( 2 , Datum :: int( 2 ) ) ,
20362037 ( 3 , Datum :: string( "x" ) )
20372038 ] ) ,
2038- key_metadata: vec! [ ] ,
2039+ key_metadata: None ,
20392040 split_offsets: vec![ 4 ] ,
20402041 equality_ids: vec![ ] ,
20412042 sort_order_id: None ,
@@ -2105,7 +2106,7 @@ mod tests {
21052106 ( 1 , Datum :: long( 1 ) ) ,
21062107 ( 2 , Datum :: int( 2 ) ) ,
21072108 ] ) ,
2108- key_metadata: vec! [ ] ,
2109+ key_metadata: None ,
21092110 split_offsets: vec![ 4 ] ,
21102111 equality_ids: vec![ ] ,
21112112 sort_order_id: None ,
@@ -2183,7 +2184,7 @@ mod tests {
21832184 nan_value_counts: HashMap :: new( ) ,
21842185 lower_bounds: HashMap :: new( ) ,
21852186 upper_bounds: HashMap :: new( ) ,
2186- key_metadata: Vec :: new ( ) ,
2187+ key_metadata: None ,
21872188 split_offsets: vec![ 4 ] ,
21882189 equality_ids: Vec :: new( ) ,
21892190 sort_order_id: None ,
@@ -2214,7 +2215,7 @@ mod tests {
22142215 nan_value_counts: HashMap :: new( ) ,
22152216 lower_bounds: HashMap :: new( ) ,
22162217 upper_bounds: HashMap :: new( ) ,
2217- key_metadata: Vec :: new ( ) ,
2218+ key_metadata: None ,
22182219 split_offsets: vec![ 4 ] ,
22192220 equality_ids: Vec :: new( ) ,
22202221 sort_order_id: None ,
@@ -2246,7 +2247,7 @@ mod tests {
22462247 nan_value_counts: HashMap :: new( ) ,
22472248 lower_bounds: HashMap :: new( ) ,
22482249 upper_bounds: HashMap :: new( ) ,
2249- key_metadata: Vec :: new ( ) ,
2250+ key_metadata: None ,
22502251 split_offsets: vec![ 4 ] ,
22512252 equality_ids: Vec :: new( ) ,
22522253 sort_order_id: None ,
@@ -2278,7 +2279,7 @@ mod tests {
22782279 nan_value_counts: HashMap :: new( ) ,
22792280 lower_bounds: HashMap :: new( ) ,
22802281 upper_bounds: HashMap :: new( ) ,
2281- key_metadata: Vec :: new ( ) ,
2282+ key_metadata: None ,
22822283 split_offsets: vec![ 4 ] ,
22832284 equality_ids: Vec :: new( ) ,
22842285 sort_order_id: None ,
0 commit comments