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

Reply via email to