chaoyli commented on a change in pull request #529: Remove segment group from delta writer URL: https://github.com/apache/incubator-doris/pull/529#discussion_r247432671
########## File path: be/src/olap/rowset/alpha_rowset_builder.cpp ########## @@ -72,27 +83,47 @@ OLAPStatus AlphaRowsetBuilder::flush() { return OLAP_SUCCESS; } -std::shared_ptr<Rowset> AlphaRowsetBuilder::build() { - // TODO: set total_disk_size/data_disk_size/index_disk_size +RowsetSharedPtr AlphaRowsetBuilder::build() { for (auto& segment_group : _segment_groups) { - PendingSegmentGroupPB pending_segment_group_pb; - pending_segment_group_pb.set_pending_segment_group_id(segment_group->segment_group_id()); - pending_segment_group_pb.set_num_segments(segment_group->num_segments()); - //PUniqueId* unique_id = pending_segment_group_pb.mutable_load_id(); - //unique_id->set_hi(_rowset_builder_context.load_id.hi()); - //unique_id->set_lo(_rowset_builder_context.load_id.lo()); - pending_segment_group_pb.set_empty(segment_group->empty()); - const std::vector<KeyRange>* column_statistics = &(segment_group->get_column_statistics()); - if (column_statistics != nullptr) { - for (size_t i = 0; i < column_statistics->size(); ++i) { - ColumnPruning* column_pruning = pending_segment_group_pb.add_column_pruning(); - column_pruning->set_min(column_statistics->at(i).first->to_string()); - column_pruning->set_max(column_statistics->at(i).second->to_string()); - column_pruning->set_null_flag(column_statistics->at(i).first->is_null()); + if (is_pending_rowset) { + PendingSegmentGroupPB pending_segment_group_pb; + pending_segment_group_pb.set_pending_segment_group_id(segment_group->segment_group_id()); + pending_segment_group_pb.set_num_segments(segment_group->num_segments()); + PUniqueId* unique_id = pending_segment_group_pb.mutable_load_id(); + unique_id->set_hi(_rowset_builder_context.load_id.hi()); + unique_id->set_lo(_rowset_builder_context.load_id.lo()); + pending_segment_group_pb.set_empty(segment_group->empty()); + const std::vector<KeyRange>* column_statistics = &(segment_group->get_column_statistics()); + if (column_statistics != nullptr) { + for (size_t i = 0; i < column_statistics->size(); ++i) { + ColumnPruning* column_pruning = pending_segment_group_pb.add_column_pruning(); + column_pruning->set_min(column_statistics->at(i).first->to_string()); + column_pruning->set_max(column_statistics->at(i).second->to_string()); + column_pruning->set_null_flag(column_statistics->at(i).first->is_null()); + } + } + AlphaRowsetMeta* alpha_rowset_meta = (AlphaRowsetMeta*)_current_rowset_meta.get(); + alpha_rowset_meta->add_pending_segment_group(pending_segment_group_pb); + } else { + SegmentGroupPB segment_group_pb; + segment_group_pb.set_segment_group_id(segment_group->segment_group_id()); + segment_group_pb.set_num_segments(segment_group->num_segments()); + segment_group_pb.set_index_size(segment_group->index_size()); + segment_group_pb.set_data_size(segment_group->data_size()); + segment_group_pb.set_num_rows(segment_group->num_rows()); + const std::vector<KeyRange>* column_statistics = &(segment_group->get_column_statistics()); + if (column_statistics != nullptr) { + for (size_t i = 0; i < column_statistics->size(); ++i) { + ColumnPruning* column_pruning = segment_group_pb.add_column_pruning(); + column_pruning->set_min(column_statistics->at(i).first->to_string()); + column_pruning->set_max(column_statistics->at(i).second->to_string()); + column_pruning->set_null_flag(column_statistics->at(i).first->is_null()); + } } + segment_group_pb.set_empty(segment_group->empty()); Review comment: std::reinterpret_cast<> is better to convert from base class to inherited class. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org For additional commands, e-mail: dev-h...@doris.apache.org