github-actions[bot] commented on code in PR #34925:
URL: https://github.com/apache/doris/pull/34925#discussion_r1619081750
##########
be/src/olap/rowset/segment_v2/segment_writer.cpp:
##########
@@ -181,64 +181,53 @@ Status SegmentWriter::init() {
return init(column_ids, true);
}
-Status SegmentWriter::init(const std::vector<uint32_t>& col_ids, bool has_key)
{
- DCHECK(_column_writers.empty());
- DCHECK(_column_ids.empty());
- _has_key = has_key;
- _column_writers.reserve(_tablet_schema->columns().size());
- _column_ids.insert(_column_ids.end(), col_ids.begin(), col_ids.end());
- _olap_data_convertor =
std::make_unique<vectorized::OlapBlockDataConvertor>();
- if (_opts.compression_type == UNKNOWN_COMPRESSION) {
- _opts.compression_type = _tablet_schema->compression_type();
- }
- auto create_column_writer = [&](uint32_t cid, const auto& column) -> auto {
- ColumnWriterOptions opts;
- opts.meta = _footer.add_columns();
-
- init_column_meta(opts.meta, cid, column, _tablet_schema);
-
- // now we create zone map for key columns in AGG_KEYS or all column in
UNIQUE_KEYS or DUP_KEYS
- // except for columns whose type don't support zone map.
- opts.need_zone_map = column.is_key() || _tablet_schema->keys_type() !=
KeysType::AGG_KEYS;
- opts.need_bloom_filter = column.is_bf_column();
- auto* tablet_index =
_tablet_schema->get_ngram_bf_index(column.unique_id());
- if (tablet_index) {
- opts.need_bloom_filter = true;
- opts.is_ngram_bf_index = true;
- opts.gram_size = tablet_index->get_gram_size();
- opts.gram_bf_size = tablet_index->get_gram_bf_size();
- }
-
- opts.need_bitmap_index = column.has_bitmap_index();
- bool skip_inverted_index = false;
- if (_opts.rowset_ctx != nullptr) {
- // skip write inverted index for index compaction
- skip_inverted_index =
-
_opts.rowset_ctx->skip_inverted_index.count(column.unique_id()) > 0;
- }
- // skip write inverted index on load if skip_write_index_on_load is
true
- if (_opts.write_type == DataWriteType::TYPE_DIRECT &&
- _tablet_schema->skip_write_index_on_load()) {
- skip_inverted_index = true;
- }
- // indexes for this column
- opts.indexes =
std::move(_tablet_schema->get_indexes_for_column(column));
- if (!InvertedIndexColumnWriter::check_column_valid(column)) {
- // skip inverted index if invalid
- opts.indexes.clear();
- opts.need_zone_map = false;
- opts.need_bloom_filter = false;
- opts.need_bitmap_index = false;
- }
- opts.inverted_index_file_writer = _inverted_index_file_writer.get();
- for (const auto* index : opts.indexes) {
- if (!skip_inverted_index && index->index_type() ==
IndexType::INVERTED) {
- opts.inverted_index = index;
- opts.need_inverted_index = true;
- // TODO support multiple inverted index
- break;
- }
+Status SegmentWriter::_create_column_writer(uint32_t cid, const TabletColumn&
column,
Review Comment:
warning: function '_create_column_writer' has cognitive complexity of 51
(threshold 50) [readability-function-cognitive-complexity]
```cpp
Status SegmentWriter::_create_column_writer(uint32_t cid, const
TabletColumn& column,
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/segment_writer.cpp:195:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (tablet_index) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:204:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (_opts.rowset_ctx != nullptr) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:209:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (_opts.write_type == DataWriteType::TYPE_DIRECT &&
schema->skip_write_index_on_load()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:214:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (!InvertedIndexColumnWriter::check_column_valid(column)) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:241:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:241:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:241:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:242:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:242:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:242:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:243:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:243:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:243:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:244:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:244:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:244:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:245:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:245:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:245:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:246:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:246:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:246:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:247:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:247:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:247:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:248:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:231:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:248:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:233:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:248:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:236:** expanded from
macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:252:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
if (column.is_row_store_column()) {
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:257:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(ColumnWriter::create(opts, &column, _file_writer,
&writer));
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:257:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(ColumnWriter::create(opts, &column, _file_writer,
&writer));
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:258:** +1, including
nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(writer->init());
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/segment_writer.cpp:258:** +2, including
nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(writer->init());
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
</details>
##########
be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:
##########
@@ -308,13 +305,14 @@
// 2.2 build read plan to read by batch
// 2.3 fill block
// 3. set columns to data convertor and then write all columns
-Status VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock&
data) {
+Status VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock&
data,
Review Comment:
warning: function '_append_block_with_partial_content' has cognitive
complexity of 57 (threshold 50) [readability-function-cognitive-complexity]
```cpp
Status
VerticalSegmentWriter::_append_block_with_partial_content(RowsInBlock& data,
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:351:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (const vectorized::ColumnWithTypeAndName* delete_sign_column =
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:356:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (delete_sign_col.size() >= data.row_pos + data.num_rows) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:363:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
DBUG_EXECUTE_IF("VerticalSegmentWriter._append_block_with_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:363:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
DBUG_EXECUTE_IF("VerticalSegmentWriter._append_block_with_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:367:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (specified_rowsets.size() != _mow_context->rowset_ids.size()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:376:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_opts.rowset_ctx->partial_update_info->is_strict_mode) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:387:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
for (size_t block_pos = data.row_pos; block_pos < data.row_pos +
data.num_rows; block_pos++) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:398:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (have_input_seq_column) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:404:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (!_tablet_schema->has_sequence_col() || have_input_seq_column) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:405:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:405:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:410:** +1
```cpp
(delete_sign_column_data != nullptr &&
delete_sign_column_data[block_pos] != 0);
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:417:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (st.is<KEY_NOT_FOUND>()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:418:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
if (_opts.rowset_ctx->partial_update_info->is_strict_mode) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:424:** +1,
nesting level increased to 3
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:425:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
if
(!_opts.rowset_ctx->partial_update_info->can_insert_new_rows_in_partial_update)
{
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:446:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (!st.ok() && !st.is<KEY_ALREADY_EXISTS>()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:456:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (have_delete_sign && !_tablet_schema->has_sequence_col()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:459:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:466:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (st.is<KEY_ALREADY_EXISTS>()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:472:** +1,
nesting level increased to 2
```cpp
} else {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:479:** +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:486:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(_fill_missing_columns(mutable_full_columns,
use_default_or_null_flag,
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:486:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(_fill_missing_columns(mutable_full_columns,
use_default_or_null_flag,
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:489:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_tablet_schema->store_row_column()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:513:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_tablet_schema->has_sequence_col() && !have_input_seq_column) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:520:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
if (_num_rows_written != data.row_pos ||
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:527:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
for (size_t block_pos = data.row_pos; block_pos < data.row_pos +
data.num_rows;
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:531:** +3,
including nesting penalty of 2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:531:** +4,
including nesting penalty of 3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(_primary_key_index_builder->add_item(key));
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
</details>
##########
be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:
##########
@@ -138,23 +138,20 @@ void
VerticalSegmentWriter::_init_column_meta(ColumnMetaPB* meta, uint32_t colum
for (uint32_t i = 0; i < column.get_subtype_count(); ++i) {
_init_column_meta(meta->add_children_columns(), column_id,
column.get_sub_column(i));
}
- // add sparse column to footer
- for (uint32_t i = 0; i < column.num_sparse_columns(); i++) {
- _init_column_meta(meta->add_sparse_columns(), -1,
column.sparse_column_at(i));
- }
}
-Status VerticalSegmentWriter::_create_column_writer(uint32_t cid, const
TabletColumn& column) {
+Status VerticalSegmentWriter::_create_column_writer(uint32_t cid, const
TabletColumn& column,
Review Comment:
warning: function '_create_column_writer' has cognitive complexity of 51
(threshold 50) [readability-function-cognitive-complexity]
```cpp
Status VerticalSegmentWriter::_create_column_writer(uint32_t cid, const
TabletColumn& column,
^
```
<details>
<summary>Additional context</summary>
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:154:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (tablet_index) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:163:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_opts.rowset_ctx != nullptr) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:168:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (_opts.write_type == DataWriteType::TYPE_DIRECT &&
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:174:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (!InvertedIndexColumnWriter::check_column_valid(column)) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:202:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:202:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:202:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(STRUCT, "struct")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:203:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:203:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:203:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(ARRAY, "array")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:204:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:204:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:204:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(JSONB, "jsonb")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:205:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:205:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:205:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(AGG_STATE, "agg_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:206:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:206:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:206:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(MAP, "map")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:207:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:207:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:207:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(OBJECT, "object")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:208:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:208:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:208:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(HLL, "hll")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:209:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:192:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (column.type() == FieldType::OLAP_FIELD_TYPE_##TYPE) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:209:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:194:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bloom_filter) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:209:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
CHECK_FIELD_TYPE(QUANTILE_STATE, "quantile_state")
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:197:** expanded
from macro 'CHECK_FIELD_TYPE'
```cpp
if (opts.need_bitmap_index) {
\
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:213:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
if (column.is_row_store_column()) {
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:218:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(ColumnWriter::create(opts, &column, _file_writer,
&writer));
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:218:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(ColumnWriter::create(opts, &column, _file_writer,
&writer));
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:219:** +1,
including nesting penalty of 0, nesting level increased to 1
```cpp
RETURN_IF_ERROR(writer->init());
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp:219:** +2,
including nesting penalty of 1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(writer->init());
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
</details>
##########
be/src/vec/common/schema_util.cpp:
##########
@@ -483,25 +481,8 @@ Status get_least_common_schema(const
std::vector<TabletSchemaSPtr>& schemas,
return Status::OK();
}
-Status parse_and_encode_variant_columns(Block& block, const std::vector<int>&
variant_pos,
- const ParseContext& ctx) {
- try {
- // Parse each variant column from raw string column
- RETURN_IF_ERROR(vectorized::schema_util::parse_variant_columns(block,
variant_pos, ctx));
- vectorized::schema_util::finalize_variant_columns(block, variant_pos,
- false /*not ingore
sparse*/);
- RETURN_IF_ERROR(
-
vectorized::schema_util::encode_variant_sparse_subcolumns(block, variant_pos));
- } catch (const doris::Exception& e) {
- // TODO more graceful, max_filter_ratio
- LOG(WARNING) << "encounter execption " << e.to_string();
- return Status::InternalError(e.to_string());
- }
- return Status::OK();
-}
-
-Status parse_variant_columns(Block& block, const std::vector<int>& variant_pos,
- const ParseContext& ctx) {
+Status _parse_variant_columns(Block& block, const std::vector<int>&
variant_pos,
Review Comment:
warning: function '_parse_variant_columns' has cognitive complexity of 59
(threshold 50) [readability-function-cognitive-complexity]
```cpp
Status _parse_variant_columns(Block& block, const std::vector<int>&
variant_pos,
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/common/schema_util.cpp:485:** +1, including nesting penalty of
0, nesting level increased to 1
```cpp
for (int i = 0; i < variant_pos.size(); ++i) {
^
```
**be/src/vec/common/schema_util.cpp:495:** nesting level increased to 2
```cpp
auto encode_rowstore = [&]() {
^
```
**be/src/vec/common/schema_util.cpp:496:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
if (!ctx.record_raw_json_column) {
^
```
**be/src/vec/common/schema_util.cpp:500:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
if (record_raw_string_with_serialization) {
^
```
**be/src/vec/common/schema_util.cpp:503:** +4, including nesting penalty of
3, nesting level increased to 4
```cpp
for (size_t i = 0; i < var->rows(); ++i) {
^
```
**be/src/vec/common/schema_util.cpp:505:** +5, including nesting penalty of
4, nesting level increased to 5
```cpp
RETURN_IF_ERROR(var->serialize_one_row_to_string(i,
&raw_str));
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/common/schema_util.cpp:505:** +6, including nesting penalty of
5, nesting level increased to 6
```cpp
RETURN_IF_ERROR(var->serialize_one_row_to_string(i,
&raw_str));
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/common/schema_util.cpp:509:** +1, nesting level increased to 3
```cpp
} else {
^
```
**be/src/vec/common/schema_util.cpp:519:** +2, including nesting penalty of
1, nesting level increased to 2
```cpp
if (!var.is_scalar_variant()) {
^
```
**be/src/vec/common/schema_util.cpp:522:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(encode_rowstore());
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/common/schema_util.cpp:522:** +4, including nesting penalty of
3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(encode_rowstore());
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/common/schema_util.cpp:527:** +2, including nesting penalty of
1, nesting level increased to 2
```cpp
if (WhichDataType(remove_nullable(var.get_root_type())).is_json()) {
^
```
**be/src/vec/common/schema_util.cpp:530:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(cast_column({var.get_root(),
var.get_root_type(), ""},
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/common/schema_util.cpp:532:** +4, including nesting penalty of
3, nesting level increased to 4
```cpp
?
make_nullable(std::make_shared<DataTypeString>())
^
```
**be/src/vec/common/schema_util.cpp:530:** +4, including nesting penalty of
3, nesting level increased to 4
```cpp
RETURN_IF_ERROR(cast_column({var.get_root(),
var.get_root_type(), ""},
^
```
**be/src/common/status.h:614:** expanded from macro 'RETURN_IF_ERROR'
```cpp
if (UNLIKELY(!_status_.ok())) { \
^
```
**be/src/vec/common/schema_util.cpp:535:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
if (raw_json_column->is_nullable()) {
^
```
**be/src/vec/common/schema_util.cpp:539:** +1, nesting level increased to 2
```cpp
} else {
^
```
**be/src/vec/common/schema_util.cpp:543:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
? assert_cast<const
ColumnNullable&>(root).get_nested_column_ptr()
^
```
**be/src/vec/common/schema_util.cpp:553:** +2, including nesting penalty of
1, nesting level increased to 2
```cpp
if (is_nullable) {
^
```
**be/src/vec/common/schema_util.cpp:559:** +2, including nesting penalty of
1, nesting level increased to 2
```cpp
RETURN_IF_ERROR(encode_rowstore());
^
```
**be/src/common/status.h:612:** expanded from macro 'RETURN_IF_ERROR'
```cpp
do { \
^
```
**be/src/vec/common/schema_util.cpp:559:** +3, including nesting penalty of
2, nesting level increased to 3
```cpp
RETURN_IF_ERROR(encode_rowstore());
^
```
**be/src/common/status.h:614:** 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]