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