This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit 0b7257b5519329d59e13ab1a88e477460c475ab3 Author: zhangstar333 <[email protected]> AuthorDate: Tue Jan 3 16:03:43 2023 +0800 [vectorized](udaf) fix udaf result is null when has multiple aggs (#15554) --- .../vec/aggregate_functions/aggregate_function_java_udaf.h | 4 ++-- regression-test/data/javaudf_p0/test_javaudaf_mysum_int.out | 12 ++++++++++++ .../suites/javaudf_p0/test_javaudaf_mysum_int.groovy | 4 ++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/be/src/vec/aggregate_functions/aggregate_function_java_udaf.h b/be/src/vec/aggregate_functions/aggregate_function_java_udaf.h index 113277498c..0671f716e1 100644 --- a/be/src/vec/aggregate_functions/aggregate_function_java_udaf.h +++ b/be/src/vec/aggregate_functions/aggregate_function_java_udaf.h @@ -348,11 +348,11 @@ public: << _fn.name.function_name; } - void add_batch(size_t batch_size, AggregateDataPtr* places, size_t /*place_offset*/, + void add_batch(size_t batch_size, AggregateDataPtr* places, size_t place_offset, const IColumn** columns, Arena* /*arena*/, bool /*agg_many*/) const override { int64_t places_address[batch_size]; for (size_t i = 0; i < batch_size; ++i) { - places_address[i] = reinterpret_cast<int64_t>(places[i]); + places_address[i] = reinterpret_cast<int64_t>(places[i] + place_offset); } this->data(_exec_place).add(places_address, false, columns, 0, batch_size, argument_types); } diff --git a/regression-test/data/javaudf_p0/test_javaudaf_mysum_int.out b/regression-test/data/javaudf_p0/test_javaudaf_mysum_int.out index 11092feaae..47c14ac114 100644 --- a/regression-test/data/javaudf_p0/test_javaudaf_mysum_int.out +++ b/regression-test/data/javaudf_p0/test_javaudaf_mysum_int.out @@ -19,3 +19,15 @@ 2 6 9 9 +-- !select3 -- +0 0 0 +1 3 3 +2 6 6 +9 9 9 + +-- !select4 -- +0 0 0 +1 3 3 +2 6 6 +9 9 9 + diff --git a/regression-test/suites/javaudf_p0/test_javaudaf_mysum_int.groovy b/regression-test/suites/javaudf_p0/test_javaudaf_mysum_int.groovy index fd9af7eb61..cd7ee3779f 100644 --- a/regression-test/suites/javaudf_p0/test_javaudaf_mysum_int.groovy +++ b/regression-test/suites/javaudf_p0/test_javaudaf_mysum_int.groovy @@ -67,6 +67,10 @@ suite("test_javaudaf_mysum_int") { qt_select1 """ SELECT udaf_my_sum_int(user_id) result FROM ${tableName}; """ qt_select2 """ select user_id, udaf_my_sum_int(user_id) from ${tableName} group by user_id order by user_id; """ + + qt_select3 """ select user_id, sum(user_id), udaf_my_sum_int(user_id) from ${tableName} group by user_id order by user_id; """ + + qt_select4 """ select user_id, udaf_my_sum_int(user_id), sum(user_id) from ${tableName} group by user_id order by user_id; """ sql """ DROP FUNCTION udaf_my_sum_int(int); """ } finally { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
