From 3ca1811a58a955d96c27bc6635cd52bd4d21e210 Mon Sep 17 00:00:00 2001 From: daidai <2017501503@qq.com> Date: Tue, 2 Jul 2024 23:52:13 +0800 Subject: [PATCH] [fix](HadoopLz4BlockCompression)Fixed the bug that HadoopLz4BlockCompression creates _decompressor every time it decompresses. --- be/src/util/block_compression.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/be/src/util/block_compression.cpp b/be/src/util/block_compression.cpp index 0f3dc8c556fa65..ccc7cc1e95df98 100644 --- a/be/src/util/block_compression.cpp +++ b/be/src/util/block_compression.cpp @@ -25,6 +25,8 @@ defined(__i386) || defined(_M_IX86) #include #endif +#include +#include #include #include #include @@ -213,12 +215,18 @@ class Lz4BlockCompression : public BlockCompressionCodec { class HadoopLz4BlockCompression : public Lz4BlockCompression { public: + HadoopLz4BlockCompression() { + Status st = Decompressor::create_decompressor(CompressType::LZ4BLOCK, &_decompressor); + if (!st.ok()) { + LOG(FATAL) << "HadoopLz4BlockCompression construction failed. status = " << st << "\n"; + } + } + static HadoopLz4BlockCompression* instance() { static HadoopLz4BlockCompression s_instance; return &s_instance; } Status decompress(const Slice& input, Slice* output) override { - RETURN_IF_ERROR(Decompressor::create_decompressor(CompressType::LZ4BLOCK, &_decompressor)); size_t input_bytes_read = 0; size_t decompressed_len = 0; size_t more_input_bytes = 0;