This is an automated email from the ASF dual-hosted git repository.
eldenmoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 2615a039833 [Fix](Variant) sparse columns should not be added in init
segment iterator (#40295)
2615a039833 is described below
commit 2615a03983300344e538b470ee8670b68ff1b4fd
Author: lihangyu <[email protected]>
AuthorDate: Wed Sep 4 10:45:01 2024 +0800
[Fix](Variant) sparse columns should not be added in init segment iterator
(#40295)
---
be/src/olap/rowset/segment_v2/segment.cpp | 9 +++++----
regression-test/suites/variant_p0/load.groovy | 2 +-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/be/src/olap/rowset/segment_v2/segment.cpp
b/be/src/olap/rowset/segment_v2/segment.cpp
index 64f58e546c2..2556597419e 100644
--- a/be/src/olap/rowset/segment_v2/segment.cpp
+++ b/be/src/olap/rowset/segment_v2/segment.cpp
@@ -553,7 +553,7 @@ Status Segment::_create_column_readers(const
SegmentFooterPB& footer) {
vectorized::PathInData path;
path.from_protobuf(spase_column_pb.column_path_info());
// Read from root column, so reader is nullptr
- _sparse_column_tree[column.unique_id()].add(
+ _sparse_column_tree[unique_id].add(
path.copy_pop_front(),
SubcolumnReader {nullptr,
vectorized::DataTypeFactory::instance().create_data_type(
@@ -617,9 +617,10 @@ Status Segment::new_column_iterator_with_path(const
TabletColumn& tablet_column,
const auto* node = tablet_column.has_path_info()
?
_sub_column_tree[unique_id].find_exact(relative_path)
: nullptr;
- const auto* sparse_node = tablet_column.has_path_info()
- ?
_sparse_column_tree[unique_id].find_exact(relative_path)
- : nullptr;
+ const auto* sparse_node =
+ tablet_column.has_path_info() &&
_sparse_column_tree.contains(unique_id)
+ ? _sparse_column_tree[unique_id].find_exact(relative_path)
+ : nullptr;
// Currently only compaction and checksum need to read flat leaves
// They both use tablet_schema_with_merged_max_schema_version as read
schema
auto type_to_read_flat_leaves = [](ReaderType type) {
diff --git a/regression-test/suites/variant_p0/load.groovy
b/regression-test/suites/variant_p0/load.groovy
index d74155b182d..967ff63f0ba 100644
--- a/regression-test/suites/variant_p0/load.groovy
+++ b/regression-test/suites/variant_p0/load.groovy
@@ -290,7 +290,7 @@ suite("regression_test_variant", "p0"){
sql """insert into ${table_name} values (5, '{"i" : 1}'), (1, '{"a" :
1}')"""
sql """insert into ${table_name} values (6, '{"j" : 1}'), (1, '{"a" :
1}')"""
sql """insert into ${table_name} values (6, '{"k" : 1}'), (1, '{"a" :
1}')"""
- sql "select * from ${table_name}"
+ sql "select
/*+SET_VAR(batch_size=4064,broker_load_batch_size=16352,disable_streaming_preaggregations=false,enable_distinct_streaming_aggregation=true,parallel_fragment_exec_instance_num=1,parallel_pipeline_task_num=4,profile_level=1,enable_pipeline_engine=true,enable_parallel_scan=true,parallel_scan_max_scanners_count=16,parallel_scan_min_rows_per_scanner=128,enable_fold_constant_by_be=true,enable_rewrite_element_at_to_slot=true,runtime_filter_type=2,enable_parallel_result_sink=
[...]
qt_sql_36_1 "select cast(v['a'] as int), cast(v['b'] as int),
cast(v['c'] as int) from ${table_name} order by k limit 10"
sql "DELETE FROM ${table_name} WHERE k=1"
sql "select * from ${table_name}"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]