Skip to content

Commit 642350f

Browse files
committed
Fix writing multiple encrypted pages with ArrowPageWriter
1 parent cba5551 commit 642350f

File tree

1 file changed

+11
-0
lines changed
  • parquet/src/arrow/arrow_writer

1 file changed

+11
-0
lines changed

parquet/src/arrow/arrow_writer/mod.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,13 @@ impl PageWriter for ArrowPageWriter {
533533
buf.data.push(header);
534534
buf.data.push(data);
535535

536+
#[cfg(feature = "encryption")]
537+
if let Some(encryptor) = self.page_encryptor.as_mut() {
538+
if page.compressed_page().is_data_page() {
539+
encryptor.increment_page();
540+
}
541+
}
542+
536543
Ok(spec)
537544
}
538545

@@ -3717,7 +3724,11 @@ mod tests {
37173724
FileEncryptionProperties::builder(footer_key.to_vec()).build();
37183725

37193726
let props = WriterProperties::builder()
3727+
// Ensure multiple row groups
37203728
.set_max_row_group_size(50)
3729+
// Ensure multiple pages per row group
3730+
.set_write_batch_size(20)
3731+
.set_data_page_row_count_limit(20)
37213732
.with_file_encryption_properties(file_encryption_properties)
37223733
.build();
37233734

0 commit comments

Comments
 (0)