Coverage Report

Created: 2026-08-28 08:48

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/aggregate/aggregate_function_stddev.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#pragma once
19
20
#include <boost/iterator/iterator_facade.hpp>
21
#include <cmath>
22
#include <cstddef>
23
#include <cstdint>
24
#include <memory>
25
#include <type_traits>
26
27
#include "core/assert_cast.h"
28
#include "core/column/column.h"
29
#include "core/column/column_nullable.h"
30
#include "core/data_type/data_type_decimal.h"
31
#include "core/data_type/data_type_number.h"
32
#include "core/types.h"
33
#include "exprs/aggregate/aggregate_function.h"
34
35
namespace doris {
36
class Arena;
37
class BufferReadable;
38
class BufferWritable;
39
template <PrimitiveType T>
40
class ColumnDecimal;
41
template <PrimitiveType T>
42
class ColumnVector;
43
44
template <PrimitiveType T, bool is_stddev>
45
struct BaseData {
46
8.48k
    BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EEC2Ev
Line
Count
Source
46
4.07k
    BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EEC2Ev
Line
Count
Source
46
4.40k
    BaseData() = default;
47
8.47k
    virtual ~BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EED2Ev
Line
Count
Source
47
4.07k
    virtual ~BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EED2Ev
Line
Count
Source
47
4.40k
    virtual ~BaseData() = default;
48
49
3.47k
    void write(BufferWritable& buf) const {
50
3.47k
        buf.write_binary(mean);
51
3.47k
        buf.write_binary(m2);
52
3.47k
        buf.write_binary(count);
53
3.47k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5writeERNS_14BufferWritableE
Line
Count
Source
49
1.65k
    void write(BufferWritable& buf) const {
50
1.65k
        buf.write_binary(mean);
51
1.65k
        buf.write_binary(m2);
52
1.65k
        buf.write_binary(count);
53
1.65k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5writeERNS_14BufferWritableE
Line
Count
Source
49
1.82k
    void write(BufferWritable& buf) const {
50
1.82k
        buf.write_binary(mean);
51
1.82k
        buf.write_binary(m2);
52
1.82k
        buf.write_binary(count);
53
1.82k
    }
54
55
3.35k
    void read(BufferReadable& buf) {
56
3.35k
        buf.read_binary(mean);
57
3.35k
        buf.read_binary(m2);
58
3.35k
        buf.read_binary(count);
59
3.35k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE4readERNS_14BufferReadableE
Line
Count
Source
55
1.60k
    void read(BufferReadable& buf) {
56
1.60k
        buf.read_binary(mean);
57
1.60k
        buf.read_binary(m2);
58
1.60k
        buf.read_binary(count);
59
1.60k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE4readERNS_14BufferReadableE
Line
Count
Source
55
1.74k
    void read(BufferReadable& buf) {
56
1.74k
        buf.read_binary(mean);
57
1.74k
        buf.read_binary(m2);
58
1.74k
        buf.read_binary(count);
59
1.74k
    }
60
61
854
    void reset() {
62
854
        mean = 0.0;
63
854
        m2 = 0.0;
64
854
        count = 0;
65
854
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5resetEv
Line
Count
Source
61
440
    void reset() {
62
440
        mean = 0.0;
63
440
        m2 = 0.0;
64
440
        count = 0;
65
440
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5resetEv
Line
Count
Source
61
414
    void reset() {
62
414
        mean = 0.0;
63
414
        m2 = 0.0;
64
414
        count = 0;
65
414
    }
66
67
1.35k
    double get_result(double res) const {
68
1.35k
        auto inf_to_nan = [](double val) {
69
            // This function performs squaring operations, and due to differences in computation order,
70
            // it might produce different values such as inf and nan.
71
            // In MySQL, this will directly result in an error due to exceeding the double range.
72
            // For performance reasons, we are uniformly changing it to nan
73
1.35k
            if (std::isinf(val)) {
74
0
                return std::nan("");
75
0
            }
76
1.35k
            return val;
77
1.35k
        };
_ZZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE10get_resultEdENKUldE_clEd
Line
Count
Source
68
687
        auto inf_to_nan = [](double val) {
69
            // This function performs squaring operations, and due to differences in computation order,
70
            // it might produce different values such as inf and nan.
71
            // In MySQL, this will directly result in an error due to exceeding the double range.
72
            // For performance reasons, we are uniformly changing it to nan
73
687
            if (std::isinf(val)) {
74
0
                return std::nan("");
75
0
            }
76
687
            return val;
77
687
        };
_ZZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE10get_resultEdENKUldE_clEd
Line
Count
Source
68
669
        auto inf_to_nan = [](double val) {
69
            // This function performs squaring operations, and due to differences in computation order,
70
            // it might produce different values such as inf and nan.
71
            // In MySQL, this will directly result in an error due to exceeding the double range.
72
            // For performance reasons, we are uniformly changing it to nan
73
669
            if (std::isinf(val)) {
74
0
                return std::nan("");
75
0
            }
76
669
            return val;
77
669
        };
78
1.35k
        if constexpr (is_stddev) {
79
669
            return inf_to_nan(std::sqrt(res));
80
687
        } else {
81
687
            return inf_to_nan(res);
82
687
        }
83
1.35k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE10get_resultEd
Line
Count
Source
67
687
    double get_result(double res) const {
68
687
        auto inf_to_nan = [](double val) {
69
            // This function performs squaring operations, and due to differences in computation order,
70
            // it might produce different values such as inf and nan.
71
            // In MySQL, this will directly result in an error due to exceeding the double range.
72
            // For performance reasons, we are uniformly changing it to nan
73
687
            if (std::isinf(val)) {
74
687
                return std::nan("");
75
687
            }
76
687
            return val;
77
687
        };
78
        if constexpr (is_stddev) {
79
            return inf_to_nan(std::sqrt(res));
80
687
        } else {
81
687
            return inf_to_nan(res);
82
687
        }
83
687
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE10get_resultEd
Line
Count
Source
67
669
    double get_result(double res) const {
68
669
        auto inf_to_nan = [](double val) {
69
            // This function performs squaring operations, and due to differences in computation order,
70
            // it might produce different values such as inf and nan.
71
            // In MySQL, this will directly result in an error due to exceeding the double range.
72
            // For performance reasons, we are uniformly changing it to nan
73
669
            if (std::isinf(val)) {
74
669
                return std::nan("");
75
669
            }
76
669
            return val;
77
669
        };
78
669
        if constexpr (is_stddev) {
79
669
            return inf_to_nan(std::sqrt(res));
80
        } else {
81
            return inf_to_nan(res);
82
        }
83
669
    }
84
85
1.19k
    double get_pop_result() const {
86
1.19k
        if (count == 1) {
87
484
            return 0.0;
88
484
        }
89
709
        double res = m2 / (double)count;
90
709
        return get_result(res);
91
1.19k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE14get_pop_resultEv
Line
Count
Source
85
600
    double get_pop_result() const {
86
600
        if (count == 1) {
87
242
            return 0.0;
88
242
        }
89
358
        double res = m2 / (double)count;
90
358
        return get_result(res);
91
600
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE14get_pop_resultEv
Line
Count
Source
85
593
    double get_pop_result() const {
86
593
        if (count == 1) {
87
242
            return 0.0;
88
242
        }
89
351
        double res = m2 / (double)count;
90
351
        return get_result(res);
91
593
    }
92
93
647
    double get_samp_result() const {
94
647
        double res = m2 / double(count - 1);
95
647
        return get_result(res);
96
647
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE15get_samp_resultEv
Line
Count
Source
93
329
    double get_samp_result() const {
94
329
        double res = m2 / double(count - 1);
95
329
        return get_result(res);
96
329
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE15get_samp_resultEv
Line
Count
Source
93
318
    double get_samp_result() const {
94
318
        double res = m2 / double(count - 1);
95
318
        return get_result(res);
96
318
    }
97
98
3.34k
    void merge(const BaseData& rhs) {
99
3.34k
        if (rhs.count == 0) {
100
92
            return;
101
92
        }
102
3.25k
        double delta = mean - rhs.mean;
103
3.25k
        double sum_count = double(count + rhs.count);
104
3.25k
        mean = rhs.mean + delta * (double)count / sum_count;
105
3.25k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
106
3.25k
        count = int64_t(sum_count);
107
3.25k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5mergeERKS2_
Line
Count
Source
98
1.60k
    void merge(const BaseData& rhs) {
99
1.60k
        if (rhs.count == 0) {
100
47
            return;
101
47
        }
102
1.55k
        double delta = mean - rhs.mean;
103
1.55k
        double sum_count = double(count + rhs.count);
104
1.55k
        mean = rhs.mean + delta * (double)count / sum_count;
105
1.55k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
106
1.55k
        count = int64_t(sum_count);
107
1.55k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5mergeERKS2_
Line
Count
Source
98
1.74k
    void merge(const BaseData& rhs) {
99
1.74k
        if (rhs.count == 0) {
100
45
            return;
101
45
        }
102
1.69k
        double delta = mean - rhs.mean;
103
1.69k
        double sum_count = double(count + rhs.count);
104
1.69k
        mean = rhs.mean + delta * (double)count / sum_count;
105
1.69k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
106
1.69k
        count = int64_t(sum_count);
107
1.69k
    }
108
109
6.88k
    void add(const IColumn* column, size_t row_num) {
110
6.88k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
111
6.88k
                                          TypeCheckOnRelease::DISABLE>(*column);
112
6.88k
        double source_data = (double)sources.get_data()[row_num];
113
114
6.88k
        double delta = source_data - mean;
115
6.88k
        double r = delta / double(1 + count);
116
6.88k
        mean += r;
117
6.88k
        m2 += (double)count * delta * r;
118
6.88k
        count += 1;
119
6.88k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE3addEPKNS_7IColumnEm
Line
Count
Source
109
3.16k
    void add(const IColumn* column, size_t row_num) {
110
3.16k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
111
3.16k
                                          TypeCheckOnRelease::DISABLE>(*column);
112
3.16k
        double source_data = (double)sources.get_data()[row_num];
113
114
3.16k
        double delta = source_data - mean;
115
3.16k
        double r = delta / double(1 + count);
116
3.16k
        mean += r;
117
3.16k
        m2 += (double)count * delta * r;
118
3.16k
        count += 1;
119
3.16k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE3addEPKNS_7IColumnEm
Line
Count
Source
109
3.71k
    void add(const IColumn* column, size_t row_num) {
110
3.71k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
111
3.71k
                                          TypeCheckOnRelease::DISABLE>(*column);
112
3.71k
        double source_data = (double)sources.get_data()[row_num];
113
114
3.71k
        double delta = source_data - mean;
115
3.71k
        double r = delta / double(1 + count);
116
3.71k
        mean += r;
117
3.71k
        m2 += (double)count * delta * r;
118
3.71k
        count += 1;
119
3.71k
    }
120
121
    double mean {};
122
    double m2 {};
123
    int64_t count {};
124
};
125
126
template <PrimitiveType T, typename Name, bool is_stddev>
127
struct PopData : BaseData<T, is_stddev>, Name {
128
    using ColVecResult = std::conditional_t<is_decimal(T), ColumnDecimal128V2, ColumnFloat64>;
129
1.19k
    void insert_result_into(IColumn& to) const {
130
1.19k
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
131
        if constexpr (is_decimal(T)) {
132
            col.get_data().push_back(this->get_pop_result().value());
133
1.19k
        } else {
134
1.19k
            col.get_data().push_back(this->get_pop_result());
135
1.19k
        }
136
1.19k
    }
_ZNK5doris7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
129
600
    void insert_result_into(IColumn& to) const {
130
600
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
131
        if constexpr (is_decimal(T)) {
132
            col.get_data().push_back(this->get_pop_result().value());
133
600
        } else {
134
600
            col.get_data().push_back(this->get_pop_result());
135
600
        }
136
600
    }
_ZNK5doris7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
129
593
    void insert_result_into(IColumn& to) const {
130
593
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
131
        if constexpr (is_decimal(T)) {
132
            col.get_data().push_back(this->get_pop_result().value());
133
593
        } else {
134
593
            col.get_data().push_back(this->get_pop_result());
135
593
        }
136
593
    }
137
138
2.86k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EE15get_return_typeEv
Line
Count
Source
138
1.44k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EE15get_return_typeEv
Line
Count
Source
138
1.42k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
139
};
140
141
// For this series of functions, the Decimal type is not supported
142
// because the operations involve squaring,
143
// which can easily exceed the range of the Decimal type.
144
145
template <PrimitiveType T, typename Name, bool is_stddev>
146
struct SampData : BaseData<T, is_stddev>, Name {
147
    using ColVecResult = std::conditional_t<is_decimal(T), ColumnDecimal128V2, ColumnFloat64>;
148
1.13k
    void insert_result_into(IColumn& to) const {
149
1.13k
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
150
1.13k
        if (this->count == 1 || this->count == 0) {
151
483
            col.insert_default();
152
647
        } else {
153
            if constexpr (is_decimal(T)) {
154
                col.get_data().push_back(this->get_samp_result().value());
155
647
            } else {
156
647
                col.get_data().push_back(this->get_samp_result());
157
647
            }
158
647
        }
159
1.13k
    }
_ZNK5doris8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
148
573
    void insert_result_into(IColumn& to) const {
149
573
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
150
573
        if (this->count == 1 || this->count == 0) {
151
244
            col.insert_default();
152
329
        } else {
153
            if constexpr (is_decimal(T)) {
154
                col.get_data().push_back(this->get_samp_result().value());
155
329
            } else {
156
329
                col.get_data().push_back(this->get_samp_result());
157
329
            }
158
329
        }
159
573
    }
_ZNK5doris8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
148
557
    void insert_result_into(IColumn& to) const {
149
557
        auto& col = assert_cast<ColVecResult&, TypeCheckOnRelease::DISABLE>(to);
150
557
        if (this->count == 1 || this->count == 0) {
151
239
            col.insert_default();
152
318
        } else {
153
            if constexpr (is_decimal(T)) {
154
                col.get_data().push_back(this->get_samp_result().value());
155
318
            } else {
156
318
                col.get_data().push_back(this->get_samp_result());
157
318
            }
158
318
        }
159
557
    }
160
161
2.54k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EE15get_return_typeEv
Line
Count
Source
161
1.29k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EE15get_return_typeEv
Line
Count
Source
161
1.25k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
162
};
163
164
struct StddevName {
165
106
    static const char* name() { return "stddev"; }
166
};
167
struct VarianceName {
168
107
    static const char* name() { return "variance"; }
169
};
170
struct VarianceSampName {
171
108
    static const char* name() { return "variance_samp"; }
172
};
173
struct StddevSampName {
174
85
    static const char* name() { return "stddev_samp"; }
175
};
176
177
template <typename Data>
178
class AggregateFunctionSampVariance final
179
        : public IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>,
180
          UnaryExpression,
181
          NullableAggregateFunction {
182
public:
183
    AggregateFunctionSampVariance(const DataTypes& argument_types_)
184
3.52k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
185
3.52k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
184
961
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
185
961
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
184
1.00k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
185
1.00k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
184
994
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
185
994
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
184
562
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
185
562
                      argument_types_) {}
186
187
405
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
187
108
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
187
105
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
187
107
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
187
85
    String get_name() const override { return Data::name(); }
188
189
5.41k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE15get_return_typeEv
Line
Count
Source
189
1.29k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE15get_return_typeEv
Line
Count
Source
189
1.44k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE15get_return_typeEv
Line
Count
Source
189
1.42k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE15get_return_typeEv
Line
Count
Source
189
1.25k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
190
191
    void add(AggregateDataPtr __restrict place, const IColumn** columns, ssize_t row_num,
192
6.88k
             Arena&) const override {
193
6.88k
        this->data(place).add(columns[0], row_num);
194
6.88k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
192
1.48k
             Arena&) const override {
193
1.48k
        this->data(place).add(columns[0], row_num);
194
1.48k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
192
1.68k
             Arena&) const override {
193
1.68k
        this->data(place).add(columns[0], row_num);
194
1.68k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
192
2.24k
             Arena&) const override {
193
2.24k
        this->data(place).add(columns[0], row_num);
194
2.24k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
192
1.46k
             Arena&) const override {
193
1.46k
        this->data(place).add(columns[0], row_num);
194
1.46k
    }
195
196
854
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE5resetEPc
Line
Count
Source
196
220
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE5resetEPc
Line
Count
Source
196
220
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE5resetEPc
Line
Count
Source
196
220
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE5resetEPc
Line
Count
Source
196
194
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
197
198
    void merge(AggregateDataPtr __restrict place, ConstAggregateDataPtr rhs,
199
3.35k
               Arena&) const override {
200
3.35k
        this->data(place).merge(this->data(rhs));
201
3.35k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
199
753
               Arena&) const override {
200
753
        this->data(place).merge(this->data(rhs));
201
753
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
199
852
               Arena&) const override {
200
852
        this->data(place).merge(this->data(rhs));
201
852
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
199
1.10k
               Arena&) const override {
200
1.10k
        this->data(place).merge(this->data(rhs));
201
1.10k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
199
641
               Arena&) const override {
200
641
        this->data(place).merge(this->data(rhs));
201
641
    }
202
203
3.47k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
204
3.47k
        this->data(place).write(buf);
205
3.47k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
203
777
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
204
777
        this->data(place).write(buf);
205
777
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
203
876
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
204
876
        this->data(place).write(buf);
205
876
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
203
1.13k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
204
1.13k
        this->data(place).write(buf);
205
1.13k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
203
689
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
204
689
        this->data(place).write(buf);
205
689
    }
206
207
    void deserialize(AggregateDataPtr __restrict place, BufferReadable& buf,
208
3.35k
                     Arena&) const override {
209
3.35k
        this->data(place).read(buf);
210
3.35k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
208
753
                     Arena&) const override {
209
753
        this->data(place).read(buf);
210
753
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
208
853
                     Arena&) const override {
209
853
        this->data(place).read(buf);
210
853
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
208
1.10k
                     Arena&) const override {
209
1.10k
        this->data(place).read(buf);
210
1.10k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
208
641
                     Arena&) const override {
209
641
        this->data(place).read(buf);
210
641
    }
211
212
2.32k
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
213
2.32k
        this->data(place).insert_result_into(to);
214
2.32k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
212
573
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
213
573
        this->data(place).insert_result_into(to);
214
573
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
212
600
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
213
600
        this->data(place).insert_result_into(to);
214
600
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
212
593
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
213
593
        this->data(place).insert_result_into(to);
214
593
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
212
557
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
213
557
        this->data(place).insert_result_into(to);
214
557
    }
215
};
216
217
} // namespace doris