github-actions[bot] commented on code in PR #41701:
URL: https://github.com/apache/doris/pull/41701#discussion_r1796526991


##########
be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:
##########
@@ -558,6 +568,32 @@ Status 
VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock& da
     return Status::OK();
 }
 
+Status VerticalSegmentWriter::_filter_block_for_flexible_partial_update(
+        RowsInBlock& data, vectorized::MutableColumnPtr filter_column, int 
duplicate_rows,
+        std::string col_name) {
+    auto num_cols = data.block->columns();
+    auto* block = const_cast<vectorized::Block*>(data.block);
+    block->insert(
+            {std::move(filter_column), 
std::make_shared<vectorized::DataTypeUInt8>(), col_name});
+    RETURN_IF_ERROR(vectorized::Block::filter_block(block, num_cols, 
num_cols));
+    DCHECK_EQ(num_cols, data.block->columns());
+    int merged_rows = data.num_rows - block->rows();
+    VLOG_DEBUG << fmt::format(
+            "filter_block_for_flexible_partial_update[{}] after filter: "
+            "data.block:{}\n",
+            col_name, data.block->dump_data());
+    if (duplicate_rows != merged_rows) {
+        auto msg = fmt::format(
+                "filter_block_for_flexible_partial_update {}: duplicate_rows 
!= merged_rows, "
+                "duplicate_keys={}, merged_rows={}, num_rows={}, 
mutable_block->rows()={}",
+                col_name, duplicate_rows, merged_rows, data.num_rows, 
block->rows());
+        DCHECK(false) << msg;
+        return Status::InternalError<false>(msg);
+    }
+    data.num_rows = block->rows();
+    return Status::OK();
+}
+
 Status VerticalSegmentWriter::_append_block_with_flexible_partial_content(

Review Comment:
   warning: function '_append_block_with_flexible_partial_content' has 
cognitive complexity of 86 (threshold 50) 
[readability-function-cognitive-complexity]
   ```cpp
   Status VerticalSegmentWriter::_append_block_with_flexible_partial_content(
                                 ^
   ```
   <details>
   <summary>Additional context</summary>
   
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:614:** nesting 
level increased to 1
   ```cpp
       auto get_skip_bitmaps = [&skip_bitmap_col_idx](const vectorized::Block* 
block) {
                               ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:628:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       
DBUG_EXECUTE_IF("VerticalSegmentWriter._append_block_with_flexible_partial_content.sleep",
       ^
   ```
   **be/src/util/debug_points.h:36:** expanded from macro 'DBUG_EXECUTE_IF'
   ```cpp
       if (UNLIKELY(config::enable_debug_points)) {                             
 \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:628:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       
DBUG_EXECUTE_IF("VerticalSegmentWriter._append_block_with_flexible_partial_content.sleep",
       ^
   ```
   **be/src/util/debug_points.h:38:** expanded from macro 'DBUG_EXECUTE_IF'
   ```cpp
           if (dp) {                                                            
 \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:637:** nesting 
level increased to 1
   ```cpp
               [&full_block, &data,
               ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:640:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           for (std::size_t cid {0}; cid < _num_sort_key_columns; cid++) {
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:642:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               
RETURN_IF_ERROR(_olap_data_convertor->set_source_content_with_specifid_column(
               ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:642:** +4, 
including nesting penalty of 3, nesting level increased to 4
   ```cpp
               
RETURN_IF_ERROR(_olap_data_convertor->set_source_content_with_specifid_column(
               ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:645:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               if (!status.ok()) {
               ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:653:** nesting 
level increased to 1
   ```cpp
       auto encode_seq_column = [&data, &schema_has_sequence_col,
                                ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:656:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           if (schema_has_sequence_col) {
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:658:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               
RETURN_IF_ERROR(_olap_data_convertor->set_source_content_with_specifid_column(
               ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:658:** +4, 
including nesting penalty of 3, nesting level increased to 4
   ```cpp
               
RETURN_IF_ERROR(_olap_data_convertor->set_source_content_with_specifid_column(
               ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:662:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               if (!status.ok()) {
               ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:673:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(encode_key_columns(key_columns));
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:673:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(encode_key_columns(key_columns));
       ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:680:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(encode_seq_column(seq_column));
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:680:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(encode_seq_column(seq_column));
       ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:687:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       if (schema_has_sequence_col) {
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:688:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           RETURN_IF_ERROR(_merge_rows_for_sequence_column(data, skip_bitmaps, 
key_columns, seq_column,
           ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:688:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
           RETURN_IF_ERROR(_merge_rows_for_sequence_column(data, skip_bitmaps, 
key_columns, seq_column,
           ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:690:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           if (origin_rows != data.num_rows) {
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:693:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               RETURN_IF_ERROR(encode_key_columns(key_columns));
               ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:693:** +4, 
including nesting penalty of 3, nesting level increased to 4
   ```cpp
               RETURN_IF_ERROR(encode_key_columns(key_columns));
               ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:694:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
               RETURN_IF_ERROR(encode_seq_column(seq_column));
               ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:694:** +4, 
including nesting penalty of 3, nesting level increased to 4
   ```cpp
               RETURN_IF_ERROR(encode_seq_column(seq_column));
               ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:705:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(_merge_rows_for_insert_after_delete(data, skip_bitmaps, 
key_columns, seq_column,
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:705:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(_merge_rows_for_insert_after_delete(data, skip_bitmaps, 
key_columns, seq_column,
       ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:708:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       if (data.num_rows != origin_rows) {
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:711:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           RETURN_IF_ERROR(encode_key_columns(key_columns));
           ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:711:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
           RETURN_IF_ERROR(encode_key_columns(key_columns));
           ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:712:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           RETURN_IF_ERROR(encode_seq_column(seq_column));
           ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:712:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
           RETURN_IF_ERROR(encode_seq_column(seq_column));
           ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:719:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       for (std::size_t cid {0}; cid < _num_sort_key_columns; cid++) {
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:722:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
           RETURN_IF_ERROR(_column_writers[cid]->append(column->get_nullmap(), 
column->get_data(),
           ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:722:** +3, 
including nesting penalty of 2, nesting level increased to 3
   ```cpp
           RETURN_IF_ERROR(_column_writers[cid]->append(column->get_nullmap(), 
column->get_data(),
           ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:730:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(_generate_flexible_read_plan(
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:730:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(_generate_flexible_read_plan(
       ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:736:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       if (config::enable_merge_on_write_correctness_check) {
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:742:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(read_plan.fill_non_primary_key_columns(
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:742:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(read_plan.fill_non_primary_key_columns(
       ^
   ```
   **be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
           if (UNLIKELY(!_status_.ok())) { \
           ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:776:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       if (_num_rows_written != data.row_pos ||
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:785:** +1, 
including nesting penalty of 0, nesting level increased to 1
   ```cpp
       RETURN_IF_ERROR(_generate_primary_key_index(_key_coders, key_columns, 
seq_column, data.num_rows,
       ^
   ```
   **be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
   ```cpp
       do {                                \
       ^
   ```
   **be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:785:** +2, 
including nesting penalty of 1, nesting level increased to 2
   ```cpp
       RETURN_IF_ERROR(_generate_primary_key_index(_key_coders, key_columns, 
seq_column, data.num_rows,
       ^
   ```
   **be/src/common/status.h:631:** 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: 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