yiguolei commented on code in PR #9566: URL: https://github.com/apache/incubator-doris/pull/9566#discussion_r872938912
########## be/src/util/block_compression.cpp: ########## @@ -370,27 +388,39 @@ class ZlibBlockCompression : public BlockCompressionCodec { }; Status get_block_compression_codec(segment_v2::CompressionTypePB type, - const BlockCompressionCodec** codec) { + std::unique_ptr<BlockCompressionCodec>& codec) { + BlockCompressionCodec* ptr = nullptr; switch (type) { case segment_v2::CompressionTypePB::NO_COMPRESSION: - *codec = nullptr; - break; + codec.reset(nullptr); + return Status::OK(); case segment_v2::CompressionTypePB::SNAPPY: - *codec = SnappyBlockCompression::instance(); + ptr = new SnappyBlockCompression(); break; case segment_v2::CompressionTypePB::LZ4: - *codec = Lz4BlockCompression::instance(); + ptr = new Lz4BlockCompression(); break; case segment_v2::CompressionTypePB::LZ4F: - *codec = Lz4fBlockCompression::instance(); + ptr = new Lz4fBlockCompression(); break; case segment_v2::CompressionTypePB::ZLIB: - *codec = ZlibBlockCompression::instance(); + ptr = new ZlibBlockCompression(); break; default: return Status::NotFound(strings::Substitute("unknown compression type($0)", type)); } - return Status::OK(); + + if (!ptr) + return Status::NotFound("Failed to create compression codec"); + Review Comment: just write: return codec->init(); -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org