5050#include " arrow/util/ubsan.h"
5151#include " arrow/visit_data_inline.h"
5252
53+ #include " fsst.h" // NOLINT(build/include_subdir)
5354#include " parquet/exception.h"
5455#include " parquet/platform.h"
5556#include " parquet/schema.h"
56- #include " fsst.h" // NOLINT(build/include_subdir)
5757#include " parquet/types.h"
5858
5959#ifdef _MSC_VER
@@ -2378,8 +2378,7 @@ class FsstDecoder : public DecoderImpl, virtual public TypedDecoder<ByteArrayTyp
23782378 }
23792379
23802380 int DecodeSpaced (ByteArray* buffer, int num_values, int null_count,
2381- const uint8_t * valid_bits,
2382- int64_t valid_bits_offset) override {
2381+ const uint8_t * valid_bits, int64_t valid_bits_offset) override {
23832382 if (null_count == 0 ) {
23842383 return Decode (buffer, num_values);
23852384 }
@@ -2409,19 +2408,18 @@ class FsstDecoder : public DecoderImpl, virtual public TypedDecoder<ByteArrayTyp
24092408 int64_t valid_bits_offset,
24102409 typename EncodingTraits<ByteArrayType>::Accumulator* builder) override {
24112410 int values_decoded = 0 ;
2412- PARQUET_THROW_NOT_OK (
2413- DecodeArrowDense (num_values, null_count, valid_bits, valid_bits_offset, builder,
2414- &values_decoded));
2411+ PARQUET_THROW_NOT_OK (DecodeArrowDense (num_values, null_count, valid_bits,
2412+ valid_bits_offset, builder, &values_decoded));
24152413 return values_decoded;
24162414 }
24172415
2418- int DecodeArrow (int num_values, int null_count, const uint8_t * valid_bits,
2419- int64_t valid_bits_offset,
2420- typename EncodingTraits<ByteArrayType>::DictAccumulator* builder) override {
2416+ int DecodeArrow (
2417+ int num_values, int null_count, const uint8_t * valid_bits,
2418+ int64_t valid_bits_offset,
2419+ typename EncodingTraits<ByteArrayType>::DictAccumulator* builder) override {
24212420 int values_decoded = 0 ;
2422- PARQUET_THROW_NOT_OK (
2423- DecodeArrowDict (num_values, null_count, valid_bits, valid_bits_offset, builder,
2424- &values_decoded));
2421+ PARQUET_THROW_NOT_OK (DecodeArrowDict (num_values, null_count, valid_bits,
2422+ valid_bits_offset, builder, &values_decoded));
24252423 return values_decoded;
24262424 }
24272425
@@ -2482,32 +2480,31 @@ class FsstDecoder : public DecoderImpl, virtual public TypedDecoder<ByteArrayTyp
24822480 RETURN_NOT_OK (builder->Reserve (num_values));
24832481
24842482 int value_index = 0 ;
2485- RETURN_NOT_OK (VisitBitRuns (
2486- valid_bits, valid_bits_offset, num_values,
2487- [&]( int64_t position, int64_t run_length, bool is_valid) {
2488- if (is_valid ) {
2489- for ( int64_t i = 0 ; i < run_length; ++i) {
2490- const auto & value = temp_values_[value_index++];
2491- RETURN_NOT_OK (builder-> Append ( value.ptr , static_cast <int32_t >(value.len )));
2492- }
2493- } else {
2494- RETURN_NOT_OK (builder->AppendNulls (run_length));
2495- }
2496- return Status::OK ();
2497- }));
2483+ RETURN_NOT_OK (VisitBitRuns (valid_bits, valid_bits_offset, num_values,
2484+ [&]( int64_t position, int64_t run_length, bool is_valid) {
2485+ if ( is_valid) {
2486+ for ( int64_t i = 0 ; i < run_length; ++i ) {
2487+ const auto & value = temp_values_[value_index++];
2488+ RETURN_NOT_OK (builder-> Append (
2489+ value.ptr , static_cast <int32_t >(value.len )));
2490+ }
2491+ } else {
2492+ RETURN_NOT_OK (builder->AppendNulls (run_length));
2493+ }
2494+ return Status::OK ();
2495+ }));
24982496
24992497 *out_values_decoded = decoded;
25002498 return Status::OK ();
25012499 }
25022500
25032501 uint8_t * EnsureDecodeBuffer (int64_t capacity) {
2504- const int64_t min_capacity =
2505- std::max<int64_t >(capacity, kInitialDecodeBufferSize );
2502+ const int64_t min_capacity = std::max<int64_t >(capacity, kInitialDecodeBufferSize );
25062503 const int64_t target = ::arrow::bit_util::NextPower2 (min_capacity);
25072504
25082505 if (!decode_buffer_) {
2509- PARQUET_ASSIGN_OR_THROW (
2510- decode_buffer_, ::arrow::AllocateResizableBuffer (target, pool_));
2506+ PARQUET_ASSIGN_OR_THROW (decode_buffer_,
2507+ ::arrow::AllocateResizableBuffer (target, pool_));
25112508 } else if (decode_buffer_->size () < target) {
25122509 PARQUET_THROW_NOT_OK (decode_buffer_->Resize (target, false ));
25132510 }
@@ -2516,26 +2513,24 @@ class FsstDecoder : public DecoderImpl, virtual public TypedDecoder<ByteArrayTyp
25162513
25172514 size_t DecompressValue (const uint8_t * compressed_ptr, uint32_t compressed_len,
25182515 uint8_t ** value_ptr) {
2519- EnsureDecodeBuffer (decode_buffer_size_ +
2520- OutputUpperBound (compressed_len));
2516+ EnsureDecodeBuffer (decode_buffer_size_ + OutputUpperBound (compressed_len));
25212517
25222518 while (true ) {
25232519 uint8_t * destination = decode_buffer_->mutable_data () + decode_buffer_size_;
25242520 const size_t available =
25252521 static_cast <size_t >(decode_buffer_->size () - decode_buffer_size_);
25262522
2527- const size_t decompressed =
2528- fsst_decompress (&decoder_, compressed_len, compressed_ptr, available,
2529- destination);
2523+ const size_t decompressed = fsst_decompress (&decoder_, compressed_len,
2524+ compressed_ptr, available, destination);
25302525
25312526 if (decompressed > 0 || compressed_len == 0 ) {
25322527 *value_ptr = destination;
25332528 return decompressed;
25342529 }
25352530
2536- int64_t new_capacity = std::max< int64_t >(
2537- decode_buffer_->size () * 2 ,
2538- decode_buffer_size_ + OutputUpperBound (compressed_len));
2531+ int64_t new_capacity =
2532+ std::max< int64_t >( decode_buffer_->size () * 2 ,
2533+ decode_buffer_size_ + OutputUpperBound (compressed_len));
25392534 if (new_capacity <= decode_buffer_->size ()) {
25402535 throw ParquetException (" FSST decompression failed" );
25412536 }
0 commit comments