github-actions[bot] commented on code in PR #26749: URL: https://github.com/apache/doris/pull/26749#discussion_r1393707407
########## be/src/olap/rowset/segment_v2/segment.cpp: ########## @@ -352,36 +499,53 @@ Status Segment::_create_column_readers(const SegmentFooterPB& footer) { // but in the old schema column b's cid == 2 // but they are not the same column Status Segment::new_column_iterator(const TabletColumn& tablet_column, - std::unique_ptr<ColumnIterator>* iter) { + std::unique_ptr<ColumnIterator>* iter, + StorageReadOptions* opt) { + // init column iterator by path info + if (!tablet_column.path_info().empty() || tablet_column.is_variant_type()) { + return new_column_iterator_with_path(tablet_column, iter, opt); + } + // init default iterator if (_column_readers.count(tablet_column.unique_id()) < 1) { - if (!tablet_column.has_default_value() && !tablet_column.is_nullable()) { - return Status::InternalError("invalid nonexistent column without default value."); - } - auto type_info = get_type_info(&tablet_column); - std::unique_ptr<DefaultValueColumnIterator> default_value_iter( - new DefaultValueColumnIterator(tablet_column.has_default_value(), - tablet_column.default_value(), - tablet_column.is_nullable(), std::move(type_info), - tablet_column.precision(), tablet_column.frac())); - ColumnIteratorOptions iter_opts; - - RETURN_IF_ERROR(default_value_iter->init(iter_opts)); - *iter = std::move(default_value_iter); + RETURN_IF_ERROR(new_default_iterator(tablet_column, iter)); return Status::OK(); } + // init iterator by unique id ColumnIterator* it; RETURN_IF_ERROR(_column_readers.at(tablet_column.unique_id())->new_iterator(&it)); iter->reset(it); return Status::OK(); } +Status Segment::new_column_iterator(int32_t unique_id, std::unique_ptr<ColumnIterator>* iter) { + ColumnIterator* it; + RETURN_IF_ERROR(_column_readers.at(unique_id)->new_iterator(&it)); + iter->reset(it); + return Status::OK(); +} + +ColumnReader* Segment::_get_column_reader(const TabletColumn& col) { Review Comment: warning: method '_get_column_reader' can be made static [readability-convert-member-functions-to-static] be/src/olap/rowset/segment_v2/segment.h:185: ```diff - ColumnReader* _get_column_reader(const TabletColumn& col); + static ColumnReader* _get_column_reader(const TabletColumn& col); ``` -- 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