This is an automated email from the ASF dual-hosted git repository. eldenmoon pushed a commit to branch feat-nested in repository https://gitbox.apache.org/repos/asf/doris.git
commit 33a33cfd6ebc7ce2b23cb9407e745ba84f779abe Author: eldenmoon <[email protected]> AuthorDate: Fri Jan 9 20:43:48 2026 +0800 Minor perf cleanup in NestedGroup JSONB reconstruction. Avoid temporary maps when adding child columns into element objects, reuse DataTypeJsonb instances, and fix duplicated compile_check_end footer. --- .../rowset/segment_v2/variant/variant_column_reader.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp index 5d209718590..7c4c66a8fcb 100644 --- a/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp +++ b/be/src/olap/rowset/segment_v2/variant/variant_column_reader.cpp @@ -260,8 +260,6 @@ private: Status _fill_elem_object_with_scalar_children(GroupState& state, uint64_t start_off, size_t elem_count, vectorized::ColumnVariant* elem_obj_ptr) { - std::unordered_map<std::string, vectorized::MutableColumnPtr> child_cols; - child_cols.reserve(state.child_iters.size()); for (auto& [name, it] : state.child_iters) { auto type = state.reader->child_readers.at(name)->get_vec_data_type(); auto col = type->create_column(); @@ -270,14 +268,8 @@ private: bool child_has_null = false; RETURN_IF_ERROR(it->next_batch(&to_read, col, &child_has_null)); } - child_cols.emplace(name, std::move(col)); - } - - for (auto& [name, col] : child_cols) { vectorized::PathInData p(name); - bool ok = elem_obj_ptr->add_sub_column( - p, col->assume_mutable(), - state.reader->child_readers.at(name)->get_vec_data_type()); + bool ok = elem_obj_ptr->add_sub_column(p, col->assume_mutable(), type); if (!ok) { return Status::InternalError("Duplicated NestedGroup child field {}", name); } @@ -287,6 +279,7 @@ private: Status _fill_elem_object_with_nested_groups(GroupState& state, uint64_t start_off, size_t elem_count, vectorized::ColumnVariant* elem_obj_ptr) { + auto jsonb_type = vectorized::make_nullable(std::make_shared<vectorized::DataTypeJsonb>()); for (auto& [name, nested_state] : state.nested_groups) { auto nested_jsonb = vectorized::ColumnString::create(); auto nested_nullable = vectorized::ColumnNullable::create( @@ -299,9 +292,7 @@ private: nested_mut->insert_many_defaults(elem_count); } vectorized::PathInData p(name); - bool ok = elem_obj_ptr->add_sub_column( - p, std::move(nested_mut), - vectorized::make_nullable(std::make_shared<vectorized::DataTypeJsonb>())); + bool ok = elem_obj_ptr->add_sub_column(p, std::move(nested_mut), jsonb_type); if (!ok) { return Status::InternalError("Duplicated NestedGroup nested field {}", name); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
