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