You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/07/30 11:18:03 UTC

[doris] 02/02: [Bug][Function] core dump on sum(distinct) (#11308)

This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch dev-1.1.2
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 9d65a64a02e40cdf4267693e534d2751cbafca7f
Author: Pxl <95...@qq.com>
AuthorDate: Sat Jul 30 10:24:48 2022 +0800

    [Bug][Function] core dump on sum(distinct) (#11308)
    
    * fix align size calculate for distinct combinator
---
 be/src/vec/aggregate_functions/aggregate_function_distinct.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/be/src/vec/aggregate_functions/aggregate_function_distinct.h b/be/src/vec/aggregate_functions/aggregate_function_distinct.h
index 820759a7ff..f37f3f3efa 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_distinct.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_distinct.h
@@ -154,7 +154,7 @@ template <typename Data>
 class AggregateFunctionDistinct
         : public IAggregateFunctionDataHelper<Data, AggregateFunctionDistinct<Data>> {
 private:
-    static constexpr auto prefix_size = sizeof(Data);
+    size_t prefix_size;
     AggregateFunctionPtr nested_func;
     size_t arguments_num;
 
@@ -171,7 +171,11 @@ public:
             : IAggregateFunctionDataHelper<Data, AggregateFunctionDistinct>(
                       arguments, nested_func_->get_parameters()),
               nested_func(nested_func_),
-              arguments_num(arguments.size()) {}
+              arguments_num(arguments.size()) {
+        size_t nested_size = nested_func->align_of_data();
+        CHECK_GT(nested_size, 0);
+        prefix_size = (sizeof(Data) + nested_size - 1) / nested_size * nested_size;
+    }
 
     void add(AggregateDataPtr __restrict place, const IColumn** columns, size_t row_num,
              Arena* arena) const override {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org