@@ -35,7 +35,7 @@ use parquet::{
3535 metadata:: KeyValue ,
3636 properties:: {
3737 EnabledStatistics , WriterProperties , WriterPropertiesBuilder , WriterVersion ,
38- DEFAULT_STATISTICS_ENABLED ,
38+ DEFAULT_MAX_STATISTICS_SIZE , DEFAULT_STATISTICS_ENABLED ,
3939 } ,
4040 } ,
4141 schema:: types:: ColumnPath ,
@@ -160,6 +160,16 @@ impl TryFrom<&TableParquetOptions> for WriterPropertiesBuilder {
160160 builder =
161161 builder. set_column_bloom_filter_ndv ( path. clone ( ) , bloom_filter_ndv) ;
162162 }
163+
164+ // max_statistics_size is deprecated, currently it is not being used
165+ // TODO: remove once deprecated
166+ #[ allow( deprecated) ]
167+ if let Some ( max_statistics_size) = options. max_statistics_size {
168+ builder = {
169+ #[ allow( deprecated) ]
170+ builder. set_column_max_statistics_size ( path, max_statistics_size)
171+ }
172+ }
163173 }
164174
165175 Ok ( builder)
@@ -208,6 +218,7 @@ impl ParquetOptions {
208218 dictionary_enabled,
209219 dictionary_page_size_limit,
210220 statistics_enabled,
221+ max_statistics_size,
211222 max_row_group_size,
212223 created_by,
213224 column_index_truncate_length,
@@ -253,6 +264,13 @@ impl ParquetOptions {
253264 . set_data_page_row_count_limit ( * data_page_row_count_limit)
254265 . set_bloom_filter_enabled ( * bloom_filter_on_write) ;
255266
267+ builder = {
268+ #[ allow( deprecated) ]
269+ builder. set_max_statistics_size (
270+ max_statistics_size. unwrap_or ( DEFAULT_MAX_STATISTICS_SIZE ) ,
271+ )
272+ } ;
273+
256274 if let Some ( bloom_filter_fpp) = bloom_filter_fpp {
257275 builder = builder. set_bloom_filter_fpp ( * bloom_filter_fpp) ;
258276 } ;
@@ -445,10 +463,12 @@ mod tests {
445463 fn column_options_with_non_defaults (
446464 src_col_defaults : & ParquetOptions ,
447465 ) -> ParquetColumnOptions {
466+ #[ allow( deprecated) ] // max_statistics_size
448467 ParquetColumnOptions {
449468 compression : Some ( "zstd(22)" . into ( ) ) ,
450469 dictionary_enabled : src_col_defaults. dictionary_enabled . map ( |v| !v) ,
451470 statistics_enabled : Some ( "none" . into ( ) ) ,
471+ max_statistics_size : Some ( 72 ) ,
452472 encoding : Some ( "RLE" . into ( ) ) ,
453473 bloom_filter_enabled : Some ( true ) ,
454474 bloom_filter_fpp : Some ( 0.72 ) ,
@@ -473,6 +493,7 @@ mod tests {
473493 dictionary_enabled : Some ( !defaults. dictionary_enabled . unwrap_or ( false ) ) ,
474494 dictionary_page_size_limit : 42 ,
475495 statistics_enabled : Some ( "chunk" . into ( ) ) ,
496+ max_statistics_size : Some ( 42 ) ,
476497 max_row_group_size : 42 ,
477498 created_by : "wordy" . into ( ) ,
478499 column_index_truncate_length : Some ( 42 ) ,
@@ -530,6 +551,7 @@ mod tests {
530551 ) ,
531552 bloom_filter_fpp : bloom_filter_default_props. map ( |p| p. fpp ) ,
532553 bloom_filter_ndv : bloom_filter_default_props. map ( |p| p. ndv ) ,
554+ max_statistics_size : Some ( props. max_statistics_size ( & col) ) ,
533555 }
534556 }
535557
@@ -586,6 +608,7 @@ mod tests {
586608 compression : default_col_props. compression ,
587609 dictionary_enabled : default_col_props. dictionary_enabled ,
588610 statistics_enabled : default_col_props. statistics_enabled ,
611+ max_statistics_size : default_col_props. max_statistics_size ,
589612 bloom_filter_on_write : default_col_props
590613 . bloom_filter_enabled
591614 . unwrap_or_default ( ) ,
0 commit comments