alamb commented on code in PR #8607:
URL: https://github.com/apache/arrow-rs/pull/8607#discussion_r2443472489
##########
parquet/src/column/reader/decoder.rs:
##########
@@ -136,14 +134,22 @@ pub trait ColumnValueDecoder {
fn skip_values(&mut self, num_values: usize) -> Result<usize>;
}
+/// Bucket-based storage for decoder instances keyed by `Encoding`.
+///
+/// This replaces `HashMap` lookups with direct indexing to avoid hashing
overhead in the
+/// hot decoding paths.
+const ENCODING_SLOTS: usize = Encoding::BYTE_STREAM_SPLIT as usize + 1;
Review Comment:
I worry that if we add a new encoding to Parquet this enum will have to be
changed, but it will be hard to find
I think we should move it to a member on `EncodingMask`
However, we can do this as a follow on PR --no need to change this PR
##########
parquet/src/basic.rs:
##########
@@ -771,6 +771,11 @@ impl EncodingMask {
Self(mask)
}
+ /// Mark the given [`Encoding`] as present in this mask.
Review Comment:
👍
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]