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

Method Compress

cpp/src/parquet/column_writer.cc:373–389  ·  view source on GitHub ↗

* Compress a buffer. */

Source from the content-addressed store, hash-verified

371 * Compress a buffer.
372 */
373 void Compress(const Buffer& src_buffer, ResizableBuffer* dest_buffer) override {
374 DCHECK(compressor_ != nullptr);
375
376 // Compress the data
377 int64_t max_compressed_size =
378 compressor_->MaxCompressedLen(src_buffer.size(), src_buffer.data());
379
380 // Use Arrow::Buffer::shrink_to_fit = false
381 // underlying buffer only keeps growing. Resize to a smaller size does not reallocate.
382 PARQUET_THROW_NOT_OK(dest_buffer->Resize(max_compressed_size, false));
383
384 PARQUET_ASSIGN_OR_THROW(
385 int64_t compressed_size,
386 compressor_->Compress(src_buffer.size(), src_buffer.data(), max_compressed_size,
387 dest_buffer->mutable_data()));
388 PARQUET_THROW_NOT_OK(dest_buffer->Resize(compressed_size, false));
389 }
390
391 int64_t WriteDataPage(const DataPage& page) override {
392 const int64_t uncompressed_size = page.uncompressed_size();

Callers

nothing calls this directly

Calls 4

MaxCompressedLenMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45
ResizeMethod · 0.45

Tested by

no test coverage detected