This is an automated email from the ASF dual-hosted git repository. panxiaolei 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 f5a20378181 [Chore](function) check nested function on AggregateFunctionNullBaseInline (#40748) f5a20378181 is described below commit f5a20378181f74c9df55ff906ef3f7c4c162d1d1 Author: Pxl <pxl...@qq.com> AuthorDate: Fri Sep 13 21:08:07 2024 +0800 [Chore](function) check nested function on AggregateFunctionNullBaseInline (#40748) ## Proposed changes check nested function on AggregateFunctionNullBaseInline --- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 8 +++----- be/src/pipeline/exec/olap_scan_operator.cpp | 6 ++---- be/src/vec/aggregate_functions/aggregate_function_null.h | 1 + 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index 91c6fe3a704..2a7da619c7a 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -915,9 +915,9 @@ bool SegmentIterator::_need_read_data(ColumnId cid) { // If any of the above conditions are met, log a debug message indicating that there's no need to read data for the indexed column. // Then, return false. int32_t unique_id = _opts.tablet_schema->column(cid).unique_id(); - if ((_need_read_data_indices.count(cid) > 0 && !_need_read_data_indices[cid] && - _output_columns.count(unique_id) < 1) || - (_need_read_data_indices.count(cid) > 0 && !_need_read_data_indices[cid] && + if ((_need_read_data_indices.contains(cid) && !_need_read_data_indices[cid] && + !_output_columns.contains(unique_id)) || + (_need_read_data_indices.contains(cid) && !_need_read_data_indices[cid] && _output_columns.count(unique_id) == 1 && _opts.push_down_agg_type_opt == TPushAggOp::COUNT_ON_INDEX)) { VLOG_DEBUG << "SegmentIterator no need read data for column: " @@ -1428,8 +1428,6 @@ Status SegmentIterator::_vec_init_lazy_materialization() { pred_id_set.insert(_short_cir_pred_column_ids.begin(), _short_cir_pred_column_ids.end()); pred_id_set.insert(_vec_pred_column_ids.begin(), _vec_pred_column_ids.end()); - std::set<ColumnId> non_pred_set(_non_predicate_columns.begin(), - _non_predicate_columns.end()); DCHECK(_second_read_column_ids.empty()); // _second_read_column_ids must be empty. Otherwise _lazy_materialization_read must not false. diff --git a/be/src/pipeline/exec/olap_scan_operator.cpp b/be/src/pipeline/exec/olap_scan_operator.cpp index 172aa7a9c87..b335e2309a3 100644 --- a/be/src/pipeline/exec/olap_scan_operator.cpp +++ b/be/src/pipeline/exec/olap_scan_operator.cpp @@ -257,10 +257,8 @@ Status OlapScanLocalState::_init_scanners(std::list<vectorized::VScannerSPtr>* s } auto& p = _parent->cast<OlapScanOperatorX>(); - if (!p._olap_scan_node.output_column_unique_ids.empty()) { - for (auto uid : p._olap_scan_node.output_column_unique_ids) { - _maybe_read_column_ids.emplace(uid); - } + for (auto uid : p._olap_scan_node.output_column_unique_ids) { + _maybe_read_column_ids.emplace(uid); } // ranges constructed from scan keys diff --git a/be/src/vec/aggregate_functions/aggregate_function_null.h b/be/src/vec/aggregate_functions/aggregate_function_null.h index 382fb8f7a53..9888dd1da1c 100644 --- a/be/src/vec/aggregate_functions/aggregate_function_null.h +++ b/be/src/vec/aggregate_functions/aggregate_function_null.h @@ -74,6 +74,7 @@ public: const DataTypes& arguments) : IAggregateFunctionHelper<Derived>(arguments), nested_function {assert_cast<NestFunction*>(nested_function_)} { + DCHECK(nested_function_ != nullptr); if (result_is_nullable) { prefix_size = nested_function->align_of_data(); } else { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org