github-actions[bot] commented on code in PR #44098:
URL: https://github.com/apache/doris/pull/44098#discussion_r1877048219
##########
be/src/vec/exec/format/parquet/parquet_common.h:
##########
@@ -69,42 +70,148 @@ struct ParquetInt96 {
#pragma pack()
static_assert(sizeof(ParquetInt96) == 12, "The size of ParquetInt96 is not
12.");
-class ColumnSelectVector {
+class FilterMap {
public:
- enum DataReadType : uint8_t { CONTENT = 0, NULL_DATA, FILTERED_CONTENT,
FILTERED_NULL };
+ FilterMap() = default;
+ Status init(const uint8_t* filter_map_data, size_t filter_map_size, bool
filter_all);
- ColumnSelectVector(const uint8_t* filter_map, size_t filter_map_size, bool
filter_all);
+ Status generate_nested_filter_map(const std::vector<level_t>& rep_levels,
+ std::vector<uint8_t>&
nested_filter_map_data,
+ std::unique_ptr<FilterMap>*
nested_filter_map,
+ size_t* current_row_ptr, size_t
start_index = 0) const;
- ColumnSelectVector() = default;
+ const uint8_t* filter_map_data() const { return _filter_map_data; }
+ size_t filter_map_size() const { return _filter_map_size; }
+ bool has_filter() const { return _has_filter; }
+ bool filter_all() const { return _filter_all; }
+ double filter_ratio() const { return _has_filter ? _filter_ratio : 0; }
- void build(const uint8_t* filter_map, size_t filter_map_size, bool
filter_all);
+ bool can_filter_all(size_t remaining_num_values, size_t filter_map_index);
- const uint8_t* filter_map() { return _filter_map; }
+private:
+ bool _has_filter = false;
+ bool _filter_all = false;
+ const uint8_t* _filter_map_data = nullptr;
+ size_t _filter_map_size = 0;
+ double _filter_ratio = 0;
+};
- size_t num_values() const { return _num_values; }
+class ColumnSelectVector {
+public:
+ enum DataReadType : uint8_t { CONTENT = 0, NULL_DATA, FILTERED_CONTENT,
FILTERED_NULL };
- size_t num_nulls() const { return _num_nulls; }
+ ColumnSelectVector() = default;
- size_t num_filtered() const { return _num_filtered; }
+ Status init(const std::vector<uint16_t>& run_length_null_map, size_t
num_values,
Review Comment:
warning: function 'init' exceeds recommended size/complexity thresholds
[readability-function-size]
```cpp
Status init(const std::vector<uint16_t>& run_length_null_map, size_t
num_values,
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/exec/format/parquet/parquet_common.h:104:** 98 lines including
whitespace and comments (threshold 80)
```cpp
Status init(const std::vector<uint16_t>& run_length_null_map, size_t
num_values,
^
```
</details>
##########
be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:
##########
@@ -476,7 +565,7 @@
}
Status ScalarColumnReader::read_column_data(ColumnPtr& doris_column,
DataTypePtr& type,
Review Comment:
warning: function 'read_column_data' has cognitive complexity of 81
(threshold 50) [readability-function-cognitive-complexity]
```cpp
Status ScalarColumnReader::read_column_data(ColumnPtr& doris_column,
DataTypePtr& type,
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:569:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_converter == nullptr) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:572:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (!_converter->support()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:581:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
do {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:582:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_chunk_reader->remaining_num_values() == 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:583:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (!_chunk_reader->has_next_page()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:588:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->next_page());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:588:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->next_page());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:590:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_nested_column) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:591:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data_idempotent());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:591:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data_idempotent());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:592:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_read_nested_column(resolved_column,
resolved_type, filter_map,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:592:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_read_nested_column(resolved_column,
resolved_type, filter_map,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:602:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (read_ranges.size() == 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:605:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_page());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:605:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_page());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:607:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:611:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (filter_map.has_filter() && filter_map.filter_ratio() > 0.6) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:611:** +1
```cpp
if (filter_map.has_filter() && filter_map.filter_ratio() > 0.6) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:617:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
if (batch_size >= remaining_num_values &&
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:617:** +1
```cpp
if (batch_size >= remaining_num_values &&
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:622:** +5,
including nesting penalty of 4, nesting level increased to 5
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_page());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:622:** +6,
including nesting penalty of 5, nesting level increased to 6
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_page());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:624:** +5,
including nesting penalty of 4, nesting level increased to 5
```cpp
if (!_chunk_reader->has_next_page()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:629:** +1
```cpp
skip_whole_batch = batch_size <= remaining_num_values &&
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:631:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
if (skip_whole_batch) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:636:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data_idempotent());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:636:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data_idempotent());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:661:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_chunk_reader->remaining_num_values() == 0 &&
!_chunk_reader->has_next_page()) {
^
```
</details>
##########
be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:
##########
@@ -445,7 +446,7 @@ Status RowGroupReader::_read_column_data(Block* block,
const std::vector<std::st
Status RowGroupReader::_do_lazy_read(Block* block, size_t batch_size, size_t*
read_rows,
Review Comment:
warning: function '_do_lazy_read' has cognitive complexity of 109 (threshold
50) [readability-function-cognitive-complexity]
```cpp
Status RowGroupReader::_do_lazy_read(Block* block, size_t batch_size,
size_t* read_rows,
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:454:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
for (uint32_t i = 0; i < origin_column_num; ++i) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:459:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
while (!_state->is_cancelled()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:464:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_read_column_data(block,
_lazy_read_ctx.predicate_columns.first, batch_size,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:464:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_read_column_data(block,
_lazy_read_ctx.predicate_columns.first, batch_size,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:466:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (pre_read_rows == 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:471:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_fill_partition_columns(block, pre_read_rows,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:471:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_fill_partition_columns(block, pre_read_rows,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:473:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_fill_missing_columns(block, pre_read_rows,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:473:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_fill_missing_columns(block, pre_read_rows,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:476:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_build_pos_delete_filter(pre_read_rows));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:476:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_build_pos_delete_filter(pre_read_rows));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:479:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_lazy_read_ctx.resize_first_column) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:487:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_position_delete_ctx.has_filter) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:498:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(VExprContext::execute_conjuncts(filter_contexts,
&filters, block,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:498:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(VExprContext::execute_conjuncts(filter_contexts,
&filters, block,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:502:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_lazy_read_ctx.resize_first_column) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:509:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(filter_map_ptr->init(filter_map_data, pre_read_rows,
can_filter_all));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:509:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(filter_map_ptr->init(filter_map_data, pre_read_rows,
can_filter_all));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:510:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (filter_map_ptr->filter_all()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:523:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (!pre_eof) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:524:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
if (pre_raw_read_rows >= config::doris_scanner_row_num) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:529:** +1,
nesting level increased to 3
```cpp
} else { // pre_eof
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:537:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:541:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_state->is_cancelled()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:545:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (filter_map_ptr == nullptr) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:554:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_cached_filtered_rows != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:555:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_rebuild_filter_map(filter_map, rebuild_filter_map,
pre_read_rows));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:555:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_rebuild_filter_map(filter_map, rebuild_filter_map,
pre_read_rows));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:563:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(_read_column_data(block,
_lazy_read_ctx.lazy_read_columns, pre_read_rows,
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:563:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_read_column_data(block,
_lazy_read_ctx.lazy_read_columns, pre_read_rows,
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:566:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (pre_read_rows != lazy_read_rows) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:573:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (filter_map.has_filter()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:574:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (block->columns() == origin_column_num) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:578:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:579:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_CATCH_EXCEPTION(Block::filter_block_internal(
^
```
**be/src/common/exception.h:79:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
do {
\
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:579:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_CATCH_EXCEPTION(Block::filter_block_internal(
^
```
**be/src/common/exception.h:84:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
} catch (const doris::Exception& e) {
\
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:579:** +5,
including nesting penalty of 4, nesting level increased to 5
```cpp
RETURN_IF_CATCH_EXCEPTION(Block::filter_block_internal(
^
```
**be/src/common/exception.h:85:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
if (e.code() == doris::ErrorCode::MEM_ALLOC_FAILED) {
\
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:583:** +1,
nesting level increased to 1
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:591:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
for (int i = 0; i < column_num; ++i) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:593:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (column_size != 0 && cz != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:593:** +1
```cpp
if (column_size != 0 && cz != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:596:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (cz != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:604:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(_fill_partition_columns(block, column_size,
_lazy_read_ctx.partition_columns));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:604:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_fill_partition_columns(block, column_size,
_lazy_read_ctx.partition_columns));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:605:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(_fill_missing_columns(block, column_size,
_lazy_read_ctx.missing_columns));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:605:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_fill_missing_columns(block, column_size,
_lazy_read_ctx.missing_columns));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:606:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (!_not_single_slot_filter_conjuncts.empty()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:609:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_CATCH_EXCEPTION(
^
```
**be/src/common/exception.h:79:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
do {
\
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:610:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(VExprContext::execute_conjuncts_and_filter_block(
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:610:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(VExprContext::execute_conjuncts_and_filter_block(
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:609:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_CATCH_EXCEPTION(
^
```
**be/src/common/exception.h:84:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
} catch (const doris::Exception& e) {
\
^
```
**be/src/vec/exec/format/parquet/vparquet_group_reader.cpp:609:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_CATCH_EXCEPTION(
^
```
**be/src/common/exception.h:85:** expanded from macro
'RETURN_IF_CATCH_EXCEPTION'
```cpp
if (e.code() == doris::ErrorCode::MEM_ALLOC_FAILED) {
\
^
```
</details>
##########
be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:
##########
@@ -316,9 +319,12 @@ Status ScalarColumnReader::_read_values(size_t num_values,
ColumnPtr& doris_colu
* whether the reader should read the remaining value of the last row in
previous page.
*/
Status ScalarColumnReader::_read_nested_column(ColumnPtr& doris_column,
DataTypePtr& type,
Review Comment:
warning: function '_read_nested_column' has cognitive complexity of 127
(threshold 50) [readability-function-cognitive-complexity]
```cpp
Status ScalarColumnReader::_read_nested_column(ColumnPtr& doris_column,
DataTypePtr& type,
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:328:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (align_rows) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:333:** +1,
nesting level increased to 1
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:336:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_nested_filter_map_data) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:346:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (has_rep_level) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:349:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
while (parsed_rows <= batch_size && remaining_values > 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:349:** +1
```cpp
while (parsed_rows <= batch_size && remaining_values > 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:351:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (rep_level == 0) { // rep_level 0 indicates start of new row
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:352:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
if (parsed_rows == batch_size) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:363:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (filter_map.has_filter() && (!filter_map.filter_all())) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:363:** +1
```cpp
if (filter_map.has_filter() && (!filter_map.filter_all())) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:364:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (_nested_filter_map_data == nullptr) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:367:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(filter_map.generate_nested_filter_map(
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:367:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(filter_map.generate_nested_filter_map(
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:373:** +1,
nesting level increased to 1
```cpp
} else if (!align_rows) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:383:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (has_def_level) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:385:** +1,
nesting level increased to 1
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:393:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (doris_column->is_nullable()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:399:** +1,
nesting level increased to 1
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:400:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_field_schema->is_nullable) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:415:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
while (has_read < origin_size + parsed_values) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:418:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
while (has_read < origin_size + parsed_values &&
_def_levels[has_read] == def_level) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:423:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (def_level < _field_schema->repeated_parent_def_level) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:424:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
for (size_t i = 0; i < loop_read; i++) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:432:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (is_null) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:434:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:438:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (prev_is_null == is_null && (USHRT_MAX - null_map.back() >=
loop_read)) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:438:** +1
```cpp
if (prev_is_null == is_null && (USHRT_MAX - null_map.back() >=
loop_read)) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:440:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:441:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (!(prev_is_null ^ is_null)) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:445:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
while (remaining > USHRT_MAX) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:458:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (current_filter_map->filter_all()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:460:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (null_size > 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:461:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(null_size, false));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:461:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(null_size, false));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:463:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (nonnull_size > 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:464:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(nonnull_size, true));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:464:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(nonnull_size, true));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:466:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (ancestor_nulls != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:467:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(ancestor_nulls,
false));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:467:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(ancestor_nulls,
false));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:469:** +1,
nesting level increased to 1
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:473:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:473:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:479:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:479:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:481:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (ancestor_nulls != 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:482:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(ancestor_nulls,
false));
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:482:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->skip_values(ancestor_nulls,
false));
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:489:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_chunk_reader->remaining_num_values() == 0) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:490:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_chunk_reader->has_next_page()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:491:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->next_page());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:491:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->next_page());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:492:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data());
^
```
**be/src/common/status.h:632:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:492:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_chunk_reader->load_page_data());
^
```
**be/src/common/status.h:634:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:495:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:501:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (current_filter_map->has_filter()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:502:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (current_filter_map->filter_all()) {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:505:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/exec/format/parquet/vparquet_column_reader.cpp:528:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_rep_levels.size() > 0) {
^
```
</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]