@@ -52,7 +52,7 @@ use deltalake::operations::vacuum::VacuumBuilder;
52
52
use deltalake:: operations:: { collect_sendable_stream, CustomExecuteHandler } ;
53
53
use deltalake:: parquet:: basic:: Compression ;
54
54
use deltalake:: parquet:: errors:: ParquetError ;
55
- use deltalake:: parquet:: file:: properties:: WriterProperties ;
55
+ use deltalake:: parquet:: file:: properties:: { EnabledStatistics , WriterProperties } ;
56
56
use deltalake:: partitions:: PartitionFilter ;
57
57
use deltalake:: protocol:: { DeltaOperation , SaveMode } ;
58
58
use deltalake:: storage:: { IORuntime , ObjectStoreRef } ;
@@ -1566,6 +1566,13 @@ fn set_writer_properties(writer_properties: PyWriterProperties) -> DeltaResult<W
1566
1566
if let Some ( dictionary_enabled) = default_column_properties. dictionary_enabled {
1567
1567
properties = properties. set_dictionary_enabled ( dictionary_enabled) ;
1568
1568
}
1569
+ if let Some ( statistics_enabled) = default_column_properties. statistics_enabled {
1570
+ let enabled_statistics: EnabledStatistics = statistics_enabled
1571
+ . parse ( )
1572
+ . map_err ( |err : String | DeltaTableError :: Generic ( err) ) ?;
1573
+
1574
+ properties = properties. set_statistics_enabled ( enabled_statistics) ;
1575
+ }
1569
1576
if let Some ( max_statistics_size) = default_column_properties. max_statistics_size {
1570
1577
properties = properties. set_max_statistics_size ( max_statistics_size) ;
1571
1578
}
@@ -1591,6 +1598,16 @@ fn set_writer_properties(writer_properties: PyWriterProperties) -> DeltaResult<W
1591
1598
dictionary_enabled,
1592
1599
) ;
1593
1600
}
1601
+ if let Some ( statistics_enabled) = column_prop. statistics_enabled {
1602
+ let enabled_statistics: EnabledStatistics = statistics_enabled
1603
+ . parse ( )
1604
+ . map_err ( |err : String | DeltaTableError :: Generic ( err) ) ?;
1605
+
1606
+ properties = properties. set_column_statistics_enabled (
1607
+ column_name. clone ( ) . into ( ) ,
1608
+ enabled_statistics,
1609
+ ) ;
1610
+ }
1594
1611
if let Some ( bloom_filter_properties) = column_prop. bloom_filter_properties {
1595
1612
if let Some ( set_bloom_filter_enabled) =
1596
1613
bloom_filter_properties. set_bloom_filter_enabled
@@ -1919,6 +1936,7 @@ pub struct BloomFilterProperties {
1919
1936
#[ derive( FromPyObject ) ]
1920
1937
pub struct ColumnProperties {
1921
1938
pub dictionary_enabled : Option < bool > ,
1939
+ pub statistics_enabled : Option < String > ,
1922
1940
pub max_statistics_size : Option < usize > ,
1923
1941
pub bloom_filter_properties : Option < BloomFilterProperties > ,
1924
1942
}
0 commit comments