MCPcopy Create free account
hub / github.com/apache/arrow / Decode

Method Decode

cpp/src/parquet/column_reader.cc:172–192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172int LevelDecoder::Decode(int batch_size, int16_t* levels) {
173 int num_decoded = 0;
174
175 int num_values = std::min(num_values_remaining_, batch_size);
176 if (encoding_ == Encoding::RLE) {
177 num_decoded = rle_decoder_->GetBatch(levels, num_values);
178 } else {
179 num_decoded = bit_packed_decoder_->GetBatch(bit_width_, levels, num_values);
180 }
181 if (num_decoded > 0) {
182 internal::MinMax min_max = internal::FindMinMax(levels, num_decoded);
183 if (ARROW_PREDICT_FALSE(min_max.min < 0 || min_max.max > max_level_)) {
184 std::stringstream ss;
185 ss << "Malformed levels. min: " << min_max.min << " max: " << min_max.max
186 << " out of range. Max Level: " << max_level_;
187 throw ParquetException(ss.str());
188 }
189 }
190 num_values_remaining_ -= num_decoded;
191 return num_decoded;
192}
193
194ReaderProperties default_reader_properties() {
195 static ReaderProperties default_reader_properties;

Callers 4

ReadValuesMethod · 0.45
ReadDefinitionLevelsMethod · 0.45
ReadRepetitionLevelsMethod · 0.45
ReadValuesDenseMethod · 0.45

Calls 4

FindMinMaxFunction · 0.85
ParquetExceptionFunction · 0.85
strMethod · 0.80
GetBatchMethod · 0.45

Tested by

no test coverage detected