Skip to content

Commit 73ffed0

Browse files
committed
Fix setting Arrow page writer for byte typed columns
1 parent 020f9a7 commit 73ffed0

File tree

1 file changed

+16
-12
lines changed
  • parquet/src/arrow/arrow_writer

1 file changed

+16
-12
lines changed

parquet/src/arrow/arrow_writer/mod.rs

+16-12
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,20 @@ impl ArrowColumnWriterFactory {
863863
self
864864
}
865865

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+
866880
fn get_arrow_column_writer(
867881
&self,
868882
data_type: &ArrowDataType,
@@ -871,17 +885,7 @@ impl ArrowColumnWriterFactory {
871885
out: &mut Vec<ArrowColumnWriter>,
872886
) -> Result<()> {
873887
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());
885889
let chunk = page_writer.buffer.clone();
886890
let writer = get_column_writer(desc.clone(), props.clone(), page_writer);
887891
ArrowColumnWriter {
@@ -891,7 +895,7 @@ impl ArrowColumnWriterFactory {
891895
};
892896

893897
let bytes = |desc: &ColumnDescPtr| {
894-
let page_writer = Box::<ArrowPageWriter>::default();
898+
let page_writer = self.create_page_writer(out.len());
895899
let chunk = page_writer.buffer.clone();
896900
let writer = GenericColumnWriter::new(desc.clone(), props.clone(), page_writer);
897901
ArrowColumnWriter {

0 commit comments

Comments
 (0)