github-actions[bot] commented on code in PR #34328:
URL: https://github.com/apache/doris/pull/34328#discussion_r1584068140
##########
be/src/pipeline/exec/aggregation_source_operator.cpp:
##########
@@ -246,63 +252,70 @@ Status
AggLocalState::_get_with_serialized_key_result(RuntimeState* state, vecto
SCOPED_TIMER(_get_results_timer);
std::visit(
- [&](auto&& agg_method) -> void {
- auto& data = *agg_method.hash_table;
- agg_method.init_iterator();
- const auto size = std::min(data.size(),
size_t(state->batch_size()));
- using KeyType =
std::decay_t<decltype(agg_method.iterator->get_first())>;
- std::vector<KeyType> keys(size);
- if (shared_state.values.size() < size) {
- shared_state.values.resize(size);
- }
-
- size_t num_rows = 0;
- shared_state.aggregate_data_container->init_once();
- auto& iter = shared_state.aggregate_data_container->iterator;
+ vectorized::Overload {
+ [&](std::monostate& arg) -> void {
+ throw doris::Exception(ErrorCode::INTERNAL_ERROR,
"uninited hash table");
+ },
+ [&](auto& agg_method) -> void {
+ auto& data = *agg_method.hash_table;
+ agg_method.init_iterator();
+ const auto size = std::min(data.size(),
size_t(state->batch_size()));
+ using KeyType =
std::decay_t<decltype(agg_method.iterator->get_first())>;
+ std::vector<KeyType> keys(size);
+ if (shared_state.values.size() < size) {
+ shared_state.values.resize(size);
+ }
- {
- SCOPED_TIMER(_hash_table_iterate_timer);
- while (iter !=
shared_state.aggregate_data_container->end() &&
- num_rows < state->batch_size()) {
- keys[num_rows] = iter.template get_key<KeyType>();
- shared_state.values[num_rows] =
iter.get_aggregate_data();
- ++iter;
- ++num_rows;
- }
- }
+ size_t num_rows = 0;
+ shared_state.aggregate_data_container->init_once();
+ auto& iter =
shared_state.aggregate_data_container->iterator;
+
+ {
+ SCOPED_TIMER(_hash_table_iterate_timer);
+ while (iter !=
shared_state.aggregate_data_container->end() &&
+ num_rows < state->batch_size()) {
+ keys[num_rows] = iter.template
get_key<KeyType>();
+ shared_state.values[num_rows] =
iter.get_aggregate_data();
+ ++iter;
+ ++num_rows;
+ }
+ }
- {
- SCOPED_TIMER(_insert_keys_to_column_timer);
- agg_method.insert_keys_into_columns(keys, key_columns,
num_rows);
- }
+ {
+ SCOPED_TIMER(_insert_keys_to_column_timer);
+ agg_method.insert_keys_into_columns(keys,
key_columns, num_rows);
+ }
- for (size_t i = 0; i <
shared_state.aggregate_evaluators.size(); ++i) {
-
shared_state.aggregate_evaluators[i]->insert_result_info_vec(
- shared_state.values,
shared_state.offsets_of_aggregate_states[i],
- value_columns[i].get(), num_rows);
- }
+ for (size_t i = 0; i <
shared_state.aggregate_evaluators.size(); ++i) {
+
shared_state.aggregate_evaluators[i]->insert_result_info_vec(
+ shared_state.values,
+
shared_state.offsets_of_aggregate_states[i],
+ value_columns[i].get(), num_rows);
+ }
- if (iter == shared_state.aggregate_data_container->end()) {
- if (agg_method.hash_table->has_null_key_data()) {
- // only one key of group by support wrap null key
- // here need additional processing logic on the null
key / value
- DCHECK(key_columns.size() == 1);
- DCHECK(key_columns[0]->is_nullable());
- if (key_columns[0]->size() < state->batch_size()) {
- key_columns[0]->insert_data(nullptr, 0);
- auto mapped = agg_method.hash_table->template
get_null_key_data<
- vectorized::AggregateDataPtr>();
- for (size_t i = 0; i <
shared_state.aggregate_evaluators.size(); ++i)
-
shared_state.aggregate_evaluators[i]->insert_result_info(
- mapped +
shared_state.offsets_of_aggregate_states[i],
- value_columns[i].get());
- *eos = true;
+ if (iter ==
shared_state.aggregate_data_container->end()) {
+ if (agg_method.hash_table->has_null_key_data()) {
+ // only one key of group by support wrap null
key
+ // here need additional processing logic on
the null key / value
+ DCHECK(key_columns.size() == 1);
+ DCHECK(key_columns[0]->is_nullable());
+ if (key_columns[0]->size() <
state->batch_size()) {
+ key_columns[0]->insert_data(nullptr, 0);
+ auto mapped =
agg_method.hash_table->template get_null_key_data<
+ vectorized::AggregateDataPtr>();
+ for (size_t i = 0; i <
shared_state.aggregate_evaluators.size();
+ ++i)
Review Comment:
warning: statement should be inside braces
[readability-braces-around-statements]
```suggestion
++i) {
```
be/src/pipeline/exec/aggregation_source_operator.cpp:310:
```diff
- value_columns[i].get());
+ value_columns[i].get());
+ }
```
--
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]