tustvold commented on a change in pull request #1041:
URL: https://github.com/apache/arrow-rs/pull/1041#discussion_r778412799
##########
File path: parquet/src/column/reader.rs
##########
@@ -440,63 +435,29 @@ impl<T: DataType> ColumnReaderImpl<T> {
Ok(true)
}
}
+}
- #[inline]
- fn read_rep_levels(&mut self, buffer: &mut [i16]) -> Result<usize> {
- let level_decoder = self
- .rep_level_decoder
- .as_mut()
- .expect("rep_level_decoder be set");
- level_decoder.get(buffer)
- }
-
- #[inline]
- fn read_def_levels(&mut self, buffer: &mut [i16]) -> Result<usize> {
- let level_decoder = self
- .def_level_decoder
- .as_mut()
- .expect("def_level_decoder be set");
- level_decoder.get(buffer)
- }
-
- #[inline]
- fn read_values(&mut self, buffer: &mut [T::T]) -> Result<usize> {
- let encoding = self
- .current_encoding
- .expect("current_encoding should be set");
- let current_decoder = self
- .decoders
- .get_mut(&encoding)
- .unwrap_or_else(|| panic!("decoder for encoding {} should be set",
encoding));
- current_decoder.get(buffer)
- }
-
- #[inline]
- fn configure_dictionary(&mut self, page: Page) -> Result<bool> {
- let mut encoding = page.encoding();
- if encoding == Encoding::PLAIN || encoding ==
Encoding::PLAIN_DICTIONARY {
- encoding = Encoding::RLE_DICTIONARY
- }
-
- if self.decoders.contains_key(&encoding) {
- return Err(general_err!("Column cannot have more than one
dictionary"));
+fn parse_v1_level(
+ max_level: i16,
+ num_buffered_values: u32,
+ encoding: Encoding,
+ buf: ByteBufferPtr,
+) -> Result<ByteBufferPtr> {
Review comment:
The short answer is because I found the interface for LevelDecoder
incredibly confusing, and this isn't actually interested in the decoder, just
working out how many bytes of level data there are...
I can change if you feel strongly
--
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]