github-actions[bot] commented on code in PR #41701:
URL: https://github.com/apache/doris/pull/41701#discussion_r1801059010
##########
be/src/olap/rowset/segment_v2/segment_writer.cpp:
##########
@@ -695,6 +704,32 @@ Status
SegmentWriter::append_block_with_partial_content(const vectorized::Block*
RETURN_IF_ERROR(append_block_with_variant_subcolumns(full_block));
return Status::OK();
}
+
+Status SegmentWriter::filter_block_for_flexible_partial_update(
+ vectorized::Block* block, size_t row_pos, size_t& num_rows,
+ vectorized::MutableColumnPtr filter_column, int duplicate_rows,
std::string col_name) {
+ auto num_cols = block->columns();
+ 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, block->columns());
+ int merged_rows = num_rows - block->rows();
+ VLOG_DEBUG << fmt::format(
+ "filter_block_for_flexible_partial_update[{}] after filter: "
+ "data.block:{}\n",
+ col_name, 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, num_rows,
block->rows());
+ DCHECK(false) << msg;
+ return Status::InternalError<false>(msg);
+ }
+ num_rows = block->rows();
+ return Status::OK();
+}
+
Status SegmentWriter::append_block_with_flexible_partial_content(const
vectorized::Block* block,
Review Comment:
warning: function 'append_block_with_flexible_partial_content' has cognitive
complexity of 86 (threshold 50) [readability-function-cognitive-complexity]
```cpp
Status SegmentWriter::append_block_with_flexible_partial_content(const
vectorized::Block* block,
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/segment_writer.cpp:749:** nesting level
increased to 1
```cpp
auto get_skip_bitmaps = [&skip_bitmap_col_idx](const vectorized::Block*
block) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:765:** +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/segment_writer.cpp:765:** +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/segment_writer.cpp:774:** nesting level
increased to 1
```cpp
[&full_block, &block, &row_pos, &num_rows,
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:777:** +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/segment_writer.cpp:779:** +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/segment_writer.cpp:779:** +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/segment_writer.cpp:782:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (!status.ok()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:790:** nesting level
increased to 1
```cpp
auto encode_seq_column = [&block, &row_pos, &num_rows,
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:793:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
if (_tablet_schema->has_sequence_col()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:795:** +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/segment_writer.cpp:795:** +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/segment_writer.cpp:798:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (!status.ok()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:809:** +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/segment_writer.cpp:809:** +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/segment_writer.cpp:816:** +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/segment_writer.cpp:816:** +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/segment_writer.cpp:823:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (_tablet_schema->has_sequence_col()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:824:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(merge_rows_for_sequence_column(
^
```
**be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:824:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(merge_rows_for_sequence_column(
^
```
**be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:827:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
if (origin_rows != num_rows) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:830:** +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/segment_writer.cpp:830:** +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/segment_writer.cpp:831:** +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/segment_writer.cpp:831:** +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/segment_writer.cpp:839:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(merge_rows_for_insert_after_delete(
^
```
**be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:839:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(merge_rows_for_insert_after_delete(
^
```
**be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:842:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (num_rows != origin_rows) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:845:** +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/segment_writer.cpp:845:** +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/segment_writer.cpp:846:** +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/segment_writer.cpp:846:** +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/segment_writer.cpp:852:** +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/segment_writer.cpp:855:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:855:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:863:** +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/segment_writer.cpp:863:** +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/segment_writer.cpp:870:** +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/segment_writer.cpp:876:** +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/segment_writer.cpp:876:** +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/segment_writer.cpp:910:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (_num_rows_written != row_pos ||
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:919:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:919:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(
^
```
**be/src/common/status.h:631:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
</details>
##########
be/src/olap/rowset/segment_v2/segment_writer.cpp:
##########
@@ -936,45 +986,62 @@
}
Status SegmentWriter::merge_rows_for_sequence_column(
Review Comment:
warning: function 'merge_rows_for_sequence_column' has cognitive complexity
of 71 (threshold 50) [readability-function-cognitive-complexity]
```cpp
Status SegmentWriter::merge_rows_for_sequence_column(
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1017:** nesting level
increased to 1
```cpp
auto get_idx = [](bool with_seq_col, bool has_delete_sign) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1018:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
if (!with_seq_col) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1019:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
return (has_delete_sign ? 0 : 1);
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1020:** +1, nesting level
increased to 2
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1021:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
return (has_delete_sign ? 2 : 3);
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1024:** nesting level
increased to 1
```cpp
auto find_rows_to_filter = [&](const std::string& key) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1027:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
if (has_row_with_seq_col && has_row_without_seq_col) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1027:** +1
```cpp
if (has_row_with_seq_col && has_row_without_seq_col) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1044:** +1
```cpp
DCHECK(st.is<KEY_NOT_FOUND>() || st.ok());
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1047:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (st.is<KEY_NOT_FOUND>()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1049:** +1, nesting level
increased to 3
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1052:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (batched_rows[2] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1056:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (batched_rows[3] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1061:** nesting level
increased to 3
```cpp
auto remove_rows_without_seq = [&]() {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1062:** +4, including
nesting penalty of 3, nesting level increased to 4
```cpp
if (batched_rows[0] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1066:** +4, including
nesting penalty of 3, nesting level increased to 4
```cpp
if (batched_rows[1] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1072:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (batched_rows[2] != -1 && batched_rows[3] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1074:** +4, including
nesting penalty of 3, nesting level increased to 4
```cpp
if (previous_seq_slice.compare(Slice
{row_with_delete_sign_encoded_seq_value}) <=
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1077:** +1, nesting level
increased to 4
```cpp
} else if (previous_seq_slice.compare(
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1082:** +1, nesting level
increased to 4
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1088:** +1, nesting level
increased to 3
```cpp
} else if (batched_rows[2] != -1) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1089:** +4, including
nesting penalty of 3, nesting level increased to 4
```cpp
if (previous_seq_slice.compare(Slice
{row_with_delete_sign_encoded_seq_value}) <=
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1092:** +1, nesting level
increased to 4
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1096:** +1, nesting level
increased to 3
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1097:** +4, including
nesting penalty of 3, nesting level increased to 4
```cpp
if (previous_seq_slice.compare(Slice
{row_without_delete_sign_encoded_seq_value}) <=
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1100:** +1, nesting level
increased to 4
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1110:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
for (size_t block_pos = row_pos; block_pos < row_pos + num_rows;
block_pos++) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1116:** +1
```cpp
(!skip_bitmap.contains(delete_sign_col_unique_id) &&
delete_signs[block_pos] != 0);
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1119:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
if (delta_pos > 0 && previous_key == key) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1119:** +1
```cpp
if (delta_pos > 0 && previous_key == key) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1120:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (!has_same_rows) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1126:** +1, nesting level
increased to 2
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1127:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
if (has_same_rows) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1135:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (has_same_rows) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1138:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (duplicate_keys > 0) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1139:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(filter_block_for_flexible_partial_update(
^
```
**be/src/common/status.h:629:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:1139:** +3, including
nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(filter_block_for_flexible_partial_update(
^
```
**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: [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]