From bd54a049db03637c7946c254c1c82d5c27797f7f Mon Sep 17 00:00:00 2001 From: camby Date: Thu, 11 Apr 2024 21:22:00 +0800 Subject: [PATCH] [fix](compress) data decompress failed while max_len equals 8M (#33456) (#33514) * fix data decompress failed while max_len equals MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE * update code format error --- be/src/util/block_compression.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/be/src/util/block_compression.cpp b/be/src/util/block_compression.cpp index 591d717d5bef01..b6c342bdec8014 100644 --- a/be/src/util/block_compression.cpp +++ b/be/src/util/block_compression.cpp @@ -98,7 +98,7 @@ class Lz4BlockCompression : public BlockCompressionCodec { compressed_buf.data = reinterpret_cast(output->data()); compressed_buf.size = max_len; } else { - // reuse context buffer if max_len < MAX_COMPRESSION_BUFFER_FOR_REUSE + // reuse context buffer if max_len <= MAX_COMPRESSION_BUFFER_FOR_REUSE context->buffer.resize(max_len); compressed_buf.data = reinterpret_cast(context->buffer.data()); compressed_buf.size = max_len; @@ -113,7 +113,7 @@ class Lz4BlockCompression : public BlockCompressionCodec { compressed_buf.size); } output->resize(compressed_len); - if (max_len < MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { + if (max_len <= MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { output->assign_copy(reinterpret_cast(compressed_buf.data), compressed_len); } return Status::OK(); @@ -237,7 +237,7 @@ class Lz4fBlockCompression : public BlockCompressionCodec { compressed_buf.data = reinterpret_cast(output->data()); compressed_buf.size = max_len; } else { - // reuse context buffer if max_len < MAX_COMPRESSION_BUFFER_FOR_REUSE + // reuse context buffer if max_len <= MAX_COMPRESSION_BUFFER_FOR_REUSE context->buffer.resize(max_len); compressed_buf.data = reinterpret_cast(context->buffer.data()); compressed_buf.size = max_len; @@ -271,7 +271,7 @@ class Lz4fBlockCompression : public BlockCompressionCodec { } offset += wbytes; output->resize(offset); - if (max_len < MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { + if (max_len <= MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { output->assign_copy(reinterpret_cast(compressed_buf.data), offset); } @@ -637,7 +637,7 @@ class ZstdBlockCompression : public BlockCompressionCodec { compressed_buf.data = reinterpret_cast(output->data()); compressed_buf.size = max_len; } else { - // reuse context buffer if max_len < MAX_COMPRESSION_BUFFER_FOR_REUSE + // reuse context buffer if max_len <= MAX_COMPRESSION_BUFFER_FOR_REUSE context->buffer.resize(max_len); compressed_buf.data = reinterpret_cast(context->buffer.data()); compressed_buf.size = max_len; @@ -688,7 +688,7 @@ class ZstdBlockCompression : public BlockCompressionCodec { // set compressed size for caller output->resize(out_buf.pos); - if (max_len < MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { + if (max_len <= MAX_COMPRESSION_BUFFER_SIZE_FOR_REUSE) { output->assign_copy(reinterpret_cast(compressed_buf.data), out_buf.pos); }