This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new 934fe77c06 [refactor](be)remove redundant code in column writer (#10915) 934fe77c06 is described below commit 934fe77c0604b70245f209a8b9661ae18079b2c8 Author: AlexYue <yj976240...@qq.com> AuthorDate: Fri Jul 29 16:48:59 2022 +0800 [refactor](be)remove redundant code in column writer (#10915) --- be/src/olap/rowset/segment_v2/column_writer.cpp | 31 +++++++------------------ be/src/olap/rowset/segment_v2/column_writer.h | 20 ++++------------ 2 files changed, 13 insertions(+), 38 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/column_writer.cpp b/be/src/olap/rowset/segment_v2/column_writer.cpp index cabc27605f..1d7bee6271 100644 --- a/be/src/olap/rowset/segment_v2/column_writer.cpp +++ b/be/src/olap/rowset/segment_v2/column_writer.cpp @@ -336,20 +336,20 @@ Status ScalarColumnWriter::append_data(const uint8_t** ptr, size_t num_rows) { return Status::OK(); } -Status ScalarColumnWriter::append_data_in_current_page(const uint8_t** ptr, size_t* num_written) { - RETURN_IF_ERROR(_page_builder->add(*ptr, num_written)); +Status ScalarColumnWriter::append_data_in_current_page(const uint8_t* data, size_t* num_written) { + RETURN_IF_ERROR(_page_builder->add(data, num_written)); if (_opts.need_zone_map) { - _zone_map_index_builder->add_values(*ptr, *num_written); + _zone_map_index_builder->add_values(data, *num_written); } if (_opts.need_bitmap_index) { - _bitmap_index_builder->add_values(*ptr, *num_written); + _bitmap_index_builder->add_values(data, *num_written); } if (_opts.need_bloom_filter) { - _bloom_filter_index_builder->add_values(*ptr, *num_written); + _bloom_filter_index_builder->add_values(data, *num_written); } _next_rowid += *num_written; - *ptr += get_field()->size() * (*num_written); + // we must write null bits after write data, because we don't // know how many rows can be written into current page if (is_nullable()) { @@ -358,22 +358,9 @@ Status ScalarColumnWriter::append_data_in_current_page(const uint8_t** ptr, size return Status::OK(); } -Status ScalarColumnWriter::append_data_in_current_page(const uint8_t* ptr, size_t* num_written) { - RETURN_IF_ERROR(_page_builder->add(ptr, num_written)); - if (_opts.need_zone_map) { - _zone_map_index_builder->add_values(ptr, *num_written); - } - if (_opts.need_bitmap_index) { - _bitmap_index_builder->add_values(ptr, *num_written); - } - if (_opts.need_bloom_filter) { - _bloom_filter_index_builder->add_values(ptr, *num_written); - } - - _next_rowid += *num_written; - if (is_nullable()) { - _null_bitmap_builder->add_run(false, *num_written); - } +Status ScalarColumnWriter::append_data_in_current_page(const uint8_t** data, size_t* num_written) { + RETURN_IF_ERROR(append_data_in_current_page(*data, num_written)); + *data += get_field()->size() * (*num_written); return Status::OK(); } diff --git a/be/src/olap/rowset/segment_v2/column_writer.h b/be/src/olap/rowset/segment_v2/column_writer.h index a5c2442a24..2c3ea79781 100644 --- a/be/src/olap/rowset/segment_v2/column_writer.h +++ b/be/src/olap/rowset/segment_v2/column_writer.h @@ -133,12 +133,6 @@ public: // used for append not null data. virtual Status append_data(const uint8_t** ptr, size_t num_rows) = 0; - // used for append not null data. When page is full, will append data not reach num_rows. - virtual Status append_data_in_current_page(const uint8_t** ptr, size_t* num_rows) = 0; - - // used for append not null data. When page is full, will append data not reach num_rows. - virtual Status append_data_in_current_page(const uint8_t* ptr, size_t* num_rows) = 0; - bool is_nullable() const { return _is_nullable; } Field* get_field() const { return _field.get(); } @@ -188,8 +182,10 @@ public: } Status append_data(const uint8_t** ptr, size_t num_rows) override; - Status append_data_in_current_page(const uint8_t** ptr, size_t* num_rows) override; - Status append_data_in_current_page(const uint8_t* ptr, size_t* num_rows) override; + // used for append not null data. When page is full, will append data not reach num_rows. + Status append_data_in_current_page(const uint8_t** ptr, size_t* num_written); + + Status append_data_in_current_page(const uint8_t* ptr, size_t* num_written); private: std::unique_ptr<PageBuilder> _page_builder; @@ -267,14 +263,6 @@ public: Status init() override; Status append_data(const uint8_t** ptr, size_t num_rows) override; - Status append_data_in_current_page(const uint8_t** ptr, size_t* num_rows) override { - return Status::NotSupported( - "array writer has no data, can not append_data_in_current_page"); - } - Status append_data_in_current_page(const uint8_t* ptr, size_t* num_rows) override { - return Status::NotSupported( - "array writer has no data, can not append_data_in_current_page"); - } uint64_t estimate_buffer_size() override; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org