Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix path with no encryption enabled.
  • Loading branch information
corwinjoy committed Mar 29, 2025
commit d09313f2c8601ab87d764f0ddeaa20b25f12f0ce
2 changes: 1 addition & 1 deletion parquet/examples/read_with_rowgroup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ async fn main() -> Result<()> {
let mut file = File::open(&path).await.unwrap();

// The metadata could be cached in other places, this example only shows how to read
let metadata = file.get_metadata().await?;
let metadata = file.get_metadata(None).await?;

for rg in metadata.row_groups() {
let mut rowgroup = InMemoryRowGroup::create(rg.clone(), ProjectionMask::all());
Expand Down
16 changes: 11 additions & 5 deletions parquet/src/arrow/async_reader/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,13 @@ impl<T: AsyncRead + AsyncSeek + Unpin + Send> AsyncFileReader for T {

let footer = ParquetMetaDataReader::decode_footer_tail(&buf)?;
let metadata_len = footer.metadata_length();
#[cfg(feature = "encryption")]
let have_decryptor = options.is_some() &&
options.unwrap().file_decryption_properties.is_some();

#[cfg(not(feature = "encryption"))]
let have_decryptor = options.is_some();

if footer.is_encrypted_footer() && !have_decryptor {
return Err(general_err!(
"Parquet file has an encrypted footer but decryption properties were not provided"
Expand All @@ -174,13 +178,15 @@ impl<T: AsyncRead + AsyncSeek + Unpin + Send> AsyncFileReader for T {
let mut buf = Vec::with_capacity(metadata_len);
self.take(metadata_len as _).read_to_end(&mut buf).await?;

let mut metadata_reader = ParquetMetaDataReader::new();
let metadata_reader = ParquetMetaDataReader::new();

#[cfg(feature = "encryption")]
if let Some(options) = options {
metadata_reader = metadata_reader
.with_decryption_properties(options.file_decryption_properties.as_ref());
}
let metadata_reader = match have_decryptor {
true => metadata_reader
.with_decryption_properties(options.unwrap().file_decryption_properties.as_ref()),
false => metadata_reader,
};


let parquet_metadata = match have_decryptor {
true => metadata_reader.decode_footer_metadata(&buf, &footer)?,
Expand Down
Loading