github-actions[bot] commented on code in PR #26749:
URL: https://github.com/apache/doris/pull/26749#discussion_r1403964901
##########
be/src/olap/rowset/segment_v2/segment.cpp:
##########
@@ -483,5 +648,23 @@
return Status::OK();
}
+bool Segment::same_with_storage_type(int32_t cid, const Schema& schema,
Review Comment:
warning: method 'same_with_storage_type' can be made static
[readability-convert-member-functions-to-static]
be/src/olap/rowset/segment_v2/segment.cpp:651:
```diff
- bool ignore_children) const {
+ bool ignore_children) {
```
be/src/olap/rowset/segment_v2/segment.h:151:
```diff
- bool same_with_storage_type(int32_t cid, const Schema& schema, bool
ignore_children) const;
+ static bool same_with_storage_type(int32_t cid, const Schema& schema,
bool ignore_children) ;
```
##########
be/src/vec/exec/scan/new_olap_scanner.cpp:
##########
@@ -406,6 +411,47 @@ Status NewOlapScanner::_init_tablet_reader_params(
return Status::OK();
}
+vectorized::PathInData NewOlapScanner::_build_path(SlotDescriptor* slot,
Review Comment:
warning: method '_build_path' can be made static
[readability-convert-member-functions-to-static]
```suggestion
static vectorized::PathInData NewOlapScanner::_build_path(SlotDescriptor*
slot,
```
##########
be/src/olap/rowset/segment_v2/segment.cpp:
##########
@@ -341,6 +381,115 @@ Status Segment::_create_column_readers(const
SegmentFooterPB& footer) {
_file_reader, &reader));
_column_readers.emplace(column.unique_id(), std::move(reader));
}
+
+ // init by column path
+ for (uint32_t ordinal = 0; ordinal < _tablet_schema->num_columns();
++ordinal) {
+ auto& column = _tablet_schema->column(ordinal);
+ auto iter = column_path_to_footer_ordinal.find(column.path_info());
+ if (iter == column_path_to_footer_ordinal.end()) {
+ continue;
+ }
+ ColumnReaderOptions opts;
+ opts.kept_in_memory = _tablet_schema->is_in_memory();
+ std::unique_ptr<ColumnReader> reader;
+ RETURN_IF_ERROR(ColumnReader::create(opts,
footer.columns(iter->second), footer.num_rows(),
+ _file_reader, &reader));
+ _sub_column_tree.add(
+ iter->first,
+ SubcolumnReader {std::move(reader),
+
vectorized::DataTypeFactory::instance().create_data_type(
+ footer.columns(iter->second))});
+ }
+ return Status::OK();
+}
+
+static Status new_default_iterator(const TabletColumn& tablet_column,
+ std::unique_ptr<ColumnIterator>* iter) {
+ 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 Status::OK();
+}
+
+Status Segment::new_column_iterator_with_path(const TabletColumn&
tablet_column,
Review Comment:
warning: function 'new_column_iterator_with_path' has cognitive complexity
of 61 (threshold 50) [readability-function-cognitive-complexity]
```cpp
Status Segment::new_column_iterator_with_path(const TabletColumn&
tablet_column,
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/segment.cpp:426:** +1, including nesting
penalty of 0, nesting level increased to 1
```cpp
if (tablet_column.path_info().empty()) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:429:** +1, nesting level
increased to 1
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:434:** +1, including nesting
penalty of 0, nesting level increased to 1
```cpp
if (opt->io_ctx.reader_type == ReaderType::READER_ALTER_TABLE) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:436:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
if (node == nullptr) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:438:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:438:** +4, including nesting
penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:445:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(HierarchicalDataReader::create(iter, node, root,
output_as_raw_json));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:445:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(HierarchicalDataReader::create(iter, node, root,
output_as_raw_json));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:449:** +1, including nesting
penalty of 0, nesting level increased to 1
```cpp
if (opt->io_ctx.reader_type != ReaderType::READER_QUERY) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:452:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
if (!node) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:453:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:453:** +4, including nesting
penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:457:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(node->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:457:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(node->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:467:** +1, including nesting
penalty of 0, nesting level increased to 1
```cpp
if (node != nullptr && node->is_scalar() && node->children.empty()) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:467:** +1
```cpp
if (node != nullptr && node->is_scalar() && node->children.empty()) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:471:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(node->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:471:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(node->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:473:** +1, nesting level
increased to 1
```cpp
} else if (node != nullptr && !node->children.empty()) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:473:** +1
```cpp
} else if (node != nullptr && !node->children.empty()) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:475:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(HierarchicalDataReader::create(iter, node, root));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:475:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(HierarchicalDataReader::create(iter, node, root));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:476:** +1, nesting level
increased to 1
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:478:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
if (root == nullptr) {
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:480:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:480:** +4, including nesting
penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(new_default_iterator(tablet_column, iter));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:484:** +2, including nesting
penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(root->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:523:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment.cpp:484:** +3, including nesting
penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(root->data.reader->new_iterator(&it));
^
```
**be/src/common/status.h:525:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
</details>
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]