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]

Reply via email to