From 7921320124b05f87ac71c38b3a2d2fbc2e7b1361 Mon Sep 17 00:00:00 2001 From: Jerry Hu Date: Sat, 25 Jun 2022 04:31:19 +0800 Subject: [PATCH] [fix]Make sure only call once set_dict_encoding_type for each ColumnReader (#10389) --- be/src/olap/rowset/segment_v2/column_reader.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_v2/column_reader.h b/be/src/olap/rowset/segment_v2/column_reader.h index 1312a0eb89..b82dbabb01 100644 --- a/be/src/olap/rowset/segment_v2/column_reader.h +++ b/be/src/olap/rowset/segment_v2/column_reader.h @@ -138,7 +138,9 @@ public: uint64_t num_rows() { return _num_rows; } - void set_dict_encoding_type(DictEncodingType type) { _dict_encoding_type = type; } + void set_dict_encoding_type(DictEncodingType type) { + std::call_once(_set_dict_encoding_type_flag, [&] { _dict_encoding_type = type; }); + } DictEncodingType get_dict_encoding_type() { return _dict_encoding_type; } @@ -202,6 +204,8 @@ private: std::unique_ptr _bloom_filter_index; std::vector> _sub_readers; + + std::once_flag _set_dict_encoding_type_flag; }; // Base iterator to read one column data