eldenmoon commented on code in PR #39022:
URL: https://github.com/apache/doris/pull/39022#discussion_r1721173163


##########
be/src/olap/rowset/segment_v2/hierarchical_data_reader.h:
##########
@@ -168,26 +220,34 @@ class HierarchicalDataReader : public ColumnIterator {
             return Status::OK();
         }));
         container->clear();
-        if (_root_reader->column->is_nullable()) {
-            // fill nullmap
-            DCHECK(dst->is_nullable());
-            vectorized::ColumnUInt8& dst_null_map =
-                    
assert_cast<vectorized::ColumnNullable&>(*dst).get_null_map_column();
-            vectorized::ColumnUInt8& src_null_map =
-                    
assert_cast<vectorized::ColumnNullable&>(*_root_reader->column)
-                            .get_null_map_column();
-            dst_null_map.insert_range_from(src_null_map, 0, 
src_null_map.size());
-            // clear nullmap and inner data
-            src_null_map.clear();
-            assert_cast<vectorized::ColumnObject&>(
-                    
assert_cast<vectorized::ColumnNullable&>(*_root_reader->column)
-                            .get_nested_column())
-                    .clear_subcolumns_data();
+        if (_root_reader) {
+            if (_root_reader->column->is_nullable()) {
+                // fill nullmap
+                DCHECK(dst->is_nullable());
+                ColumnUInt8& dst_null_map =
+                        
assert_cast<ColumnNullable&>(*dst).get_null_map_column();
+                ColumnUInt8& src_null_map =
+                        
assert_cast<ColumnNullable&>(*_root_reader->column).get_null_map_column();
+                dst_null_map.insert_range_from(src_null_map, 0, 
src_null_map.size());
+                // clear nullmap and inner data
+                src_null_map.clear();
+                assert_cast<ColumnObject&>(
+                        
assert_cast<ColumnNullable&>(*_root_reader->column).get_nested_column())
+                        .clear_subcolumns_data();
+            } else {
+                ColumnObject& root_column = 
assert_cast<ColumnObject&>(*_root_reader->column);
+                root_column.clear_subcolumns_data();
+            }
         } else {
-            vectorized::ColumnObject& root_column =
-                    
assert_cast<vectorized::ColumnObject&>(*_root_reader->column);
-            root_column.clear_subcolumns_data();
+            if (dst->is_nullable()) {
+                // No nullable info exist in hirearchical data, fill nullmap 
with all none null
+                ColumnUInt8& dst_null_map =
+                        
assert_cast<ColumnNullable&>(*dst).get_null_map_column();
+                auto fake_nullable_column = ColumnUInt8::create(nrows, 0);

Review Comment:
   all not null, since the middle node of the tree structure has no nullable 
bitmap stored in segment, so we should treat them all none null



-- 
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

Reply via email to