@@ -863,6 +863,20 @@ impl ArrowColumnWriterFactory {
863
863
self
864
864
}
865
865
866
+ #[ cfg( feature = "encryption" ) ]
867
+ fn create_page_writer ( & self , column_index : usize ) -> Box < ArrowPageWriter > {
868
+ let page_encryptor = self
869
+ . file_encryptor
870
+ . as_ref ( )
871
+ . map ( |fe| PageEncryptor :: new ( fe. clone ( ) , self . row_group_index , column_index) ) ;
872
+ Box :: new ( ArrowPageWriter :: default ( ) . with_encryptor ( page_encryptor) )
873
+ }
874
+
875
+ #[ cfg( not( feature = "encryption" ) ) ]
876
+ fn create_page_writer ( & self , _column_index : usize ) -> Box < ArrowPageWriter > {
877
+ Box :: < ArrowPageWriter > :: default ( )
878
+ }
879
+
866
880
fn get_arrow_column_writer (
867
881
& self ,
868
882
data_type : & ArrowDataType ,
@@ -871,17 +885,7 @@ impl ArrowColumnWriterFactory {
871
885
out : & mut Vec < ArrowColumnWriter > ,
872
886
) -> Result < ( ) > {
873
887
let col = |desc : & ColumnDescPtr | {
874
- #[ cfg( feature = "encryption" ) ]
875
- let page_writer = {
876
- let col_idx = out. len ( ) ;
877
- let page_encryptor = self
878
- . file_encryptor
879
- . as_ref ( )
880
- . map ( |fe| PageEncryptor :: new ( fe. clone ( ) , self . row_group_index , col_idx) ) ;
881
- Box :: new ( ArrowPageWriter :: default ( ) . with_encryptor ( page_encryptor) )
882
- } ;
883
- #[ cfg( not( feature = "encryption" ) ) ]
884
- let page_writer = Box :: < ArrowPageWriter > :: default ( ) ;
888
+ let page_writer = self . create_page_writer ( out. len ( ) ) ;
885
889
let chunk = page_writer. buffer . clone ( ) ;
886
890
let writer = get_column_writer ( desc. clone ( ) , props. clone ( ) , page_writer) ;
887
891
ArrowColumnWriter {
@@ -891,7 +895,7 @@ impl ArrowColumnWriterFactory {
891
895
} ;
892
896
893
897
let bytes = |desc : & ColumnDescPtr | {
894
- let page_writer = Box :: < ArrowPageWriter > :: default ( ) ;
898
+ let page_writer = self . create_page_writer ( out . len ( ) ) ;
895
899
let chunk = page_writer. buffer . clone ( ) ;
896
900
let writer = GenericColumnWriter :: new ( desc. clone ( ) , props. clone ( ) , page_writer) ;
897
901
ArrowColumnWriter {
0 commit comments