Coverage Report

Created: 2026-03-19 03:31

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
#include "common/compile_check_begin.h"
37
class Arena;
38
class BufferReadable;
39
class BufferWritable;
40
template <PrimitiveType T>
41
class ColumnDecimal;
42
template <PrimitiveType T>
43
class ColumnVector;
44
45
template <PrimitiveType T, bool is_stddev>
46
struct BaseData {
47
10.9k
    BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EEC2Ev
Line
Count
Source
47
5.74k
    BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EEC2Ev
Line
Count
Source
47
5.15k
    BaseData() = default;
48
10.8k
    virtual ~BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EED2Ev
Line
Count
Source
48
5.74k
    virtual ~BaseData() = default;
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EED2Ev
Line
Count
Source
48
5.15k
    virtual ~BaseData() = default;
49
50
4.03k
    void write(BufferWritable& buf) const {
51
4.03k
        buf.write_binary(mean);
52
4.03k
        buf.write_binary(m2);
53
4.03k
        buf.write_binary(count);
54
4.03k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5writeERNS_14BufferWritableE
Line
Count
Source
50
2.13k
    void write(BufferWritable& buf) const {
51
2.13k
        buf.write_binary(mean);
52
2.13k
        buf.write_binary(m2);
53
2.13k
        buf.write_binary(count);
54
2.13k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5writeERNS_14BufferWritableE
Line
Count
Source
50
1.89k
    void write(BufferWritable& buf) const {
51
1.89k
        buf.write_binary(mean);
52
1.89k
        buf.write_binary(m2);
53
1.89k
        buf.write_binary(count);
54
1.89k
    }
55
56
3.91k
    void read(BufferReadable& buf) {
57
3.91k
        buf.read_binary(mean);
58
3.91k
        buf.read_binary(m2);
59
3.91k
        buf.read_binary(count);
60
3.91k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE4readERNS_14BufferReadableE
Line
Count
Source
56
2.08k
    void read(BufferReadable& buf) {
57
2.08k
        buf.read_binary(mean);
58
2.08k
        buf.read_binary(m2);
59
2.08k
        buf.read_binary(count);
60
2.08k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE4readERNS_14BufferReadableE
Line
Count
Source
56
1.82k
    void read(BufferReadable& buf) {
57
1.82k
        buf.read_binary(mean);
58
1.82k
        buf.read_binary(m2);
59
1.82k
        buf.read_binary(count);
60
1.82k
    }
61
62
1.04k
    void reset() {
63
1.04k
        mean = 0.0;
64
1.04k
        m2 = 0.0;
65
1.04k
        count = 0;
66
1.04k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5resetEv
Line
Count
Source
62
534
    void reset() {
63
534
        mean = 0.0;
64
534
        m2 = 0.0;
65
534
        count = 0;
66
534
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5resetEv
Line
Count
Source
62
510
    void reset() {
63
510
        mean = 0.0;
64
510
        m2 = 0.0;
65
510
        count = 0;
66
510
    }
67
68
1.65k
    double get_result(double res) const {
69
1.65k
        auto inf_to_nan = [](double val) {
70
            // This function performs squaring operations, and due to differences in computation order,
71
            // it might produce different values such as inf and nan.
72
            // In MySQL, this will directly result in an error due to exceeding the double range.
73
            // For performance reasons, we are uniformly changing it to nan
74
1.65k
            if (std::isinf(val)) {
75
0
                return std::nan("");
76
0
            }
77
1.65k
            return val;
78
1.65k
        };
_ZZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE10get_resultEdENKUldE_clEd
Line
Count
Source
69
839
        auto inf_to_nan = [](double val) {
70
            // This function performs squaring operations, and due to differences in computation order,
71
            // it might produce different values such as inf and nan.
72
            // In MySQL, this will directly result in an error due to exceeding the double range.
73
            // For performance reasons, we are uniformly changing it to nan
74
839
            if (std::isinf(val)) {
75
0
                return std::nan("");
76
0
            }
77
839
            return val;
78
839
        };
_ZZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE10get_resultEdENKUldE_clEd
Line
Count
Source
69
815
        auto inf_to_nan = [](double val) {
70
            // This function performs squaring operations, and due to differences in computation order,
71
            // it might produce different values such as inf and nan.
72
            // In MySQL, this will directly result in an error due to exceeding the double range.
73
            // For performance reasons, we are uniformly changing it to nan
74
815
            if (std::isinf(val)) {
75
0
                return std::nan("");
76
0
            }
77
815
            return val;
78
815
        };
79
1.65k
        if constexpr (is_stddev) {
80
815
            return inf_to_nan(std::sqrt(res));
81
839
        } else {
82
839
            return inf_to_nan(res);
83
839
        }
84
1.65k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE10get_resultEd
Line
Count
Source
68
839
    double get_result(double res) const {
69
839
        auto inf_to_nan = [](double val) {
70
            // This function performs squaring operations, and due to differences in computation order,
71
            // it might produce different values such as inf and nan.
72
            // In MySQL, this will directly result in an error due to exceeding the double range.
73
            // For performance reasons, we are uniformly changing it to nan
74
839
            if (std::isinf(val)) {
75
839
                return std::nan("");
76
839
            }
77
839
            return val;
78
839
        };
79
        if constexpr (is_stddev) {
80
            return inf_to_nan(std::sqrt(res));
81
839
        } else {
82
839
            return inf_to_nan(res);
83
839
        }
84
839
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE10get_resultEd
Line
Count
Source
68
815
    double get_result(double res) const {
69
815
        auto inf_to_nan = [](double val) {
70
            // This function performs squaring operations, and due to differences in computation order,
71
            // it might produce different values such as inf and nan.
72
            // In MySQL, this will directly result in an error due to exceeding the double range.
73
            // For performance reasons, we are uniformly changing it to nan
74
815
            if (std::isinf(val)) {
75
815
                return std::nan("");
76
815
            }
77
815
            return val;
78
815
        };
79
815
        if constexpr (is_stddev) {
80
815
            return inf_to_nan(std::sqrt(res));
81
        } else {
82
            return inf_to_nan(res);
83
        }
84
815
    }
85
86
1.37k
    double get_pop_result() const {
87
1.37k
        if (count == 1) {
88
524
            return 0.0;
89
524
        }
90
854
        double res = m2 / (double)count;
91
854
        return get_result(res);
92
1.37k
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE14get_pop_resultEv
Line
Count
Source
86
692
    double get_pop_result() const {
87
692
        if (count == 1) {
88
261
            return 0.0;
89
261
        }
90
431
        double res = m2 / (double)count;
91
431
        return get_result(res);
92
692
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE14get_pop_resultEv
Line
Count
Source
86
686
    double get_pop_result() const {
87
686
        if (count == 1) {
88
263
            return 0.0;
89
263
        }
90
423
        double res = m2 / (double)count;
91
423
        return get_result(res);
92
686
    }
93
94
800
    double get_samp_result() const {
95
800
        double res = m2 / double(count - 1);
96
800
        return get_result(res);
97
800
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE15get_samp_resultEv
Line
Count
Source
94
408
    double get_samp_result() const {
95
408
        double res = m2 / double(count - 1);
96
408
        return get_result(res);
97
408
    }
_ZNK5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE15get_samp_resultEv
Line
Count
Source
94
392
    double get_samp_result() const {
95
392
        double res = m2 / double(count - 1);
96
392
        return get_result(res);
97
392
    }
98
99
3.91k
    void merge(const BaseData& rhs) {
100
3.91k
        if (rhs.count == 0) {
101
102
            return;
102
102
        }
103
3.80k
        double delta = mean - rhs.mean;
104
3.80k
        double sum_count = double(count + rhs.count);
105
3.80k
        mean = rhs.mean + delta * (double)count / sum_count;
106
3.80k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
107
3.80k
        count = int64_t(sum_count);
108
3.80k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE5mergeERKS2_
Line
Count
Source
99
2.08k
    void merge(const BaseData& rhs) {
100
2.08k
        if (rhs.count == 0) {
101
53
            return;
102
53
        }
103
2.03k
        double delta = mean - rhs.mean;
104
2.03k
        double sum_count = double(count + rhs.count);
105
2.03k
        mean = rhs.mean + delta * (double)count / sum_count;
106
2.03k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
107
2.03k
        count = int64_t(sum_count);
108
2.03k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE5mergeERKS2_
Line
Count
Source
99
1.82k
    void merge(const BaseData& rhs) {
100
1.82k
        if (rhs.count == 0) {
101
49
            return;
102
49
        }
103
1.77k
        double delta = mean - rhs.mean;
104
1.77k
        double sum_count = double(count + rhs.count);
105
1.77k
        mean = rhs.mean + delta * (double)count / sum_count;
106
1.77k
        m2 = rhs.m2 + m2 + (delta * delta) * (double)rhs.count * (double)count / sum_count;
107
1.77k
        count = int64_t(sum_count);
108
1.77k
    }
109
110
7.19k
    void add(const IColumn* column, size_t row_num) {
111
7.19k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
112
7.19k
                                          TypeCheckOnRelease::DISABLE>(*column);
113
7.19k
        double source_data = (double)sources.get_data()[row_num];
114
115
7.19k
        double delta = source_data - mean;
116
7.19k
        double r = delta / double(1 + count);
117
7.19k
        mean += r;
118
7.19k
        m2 += (double)count * delta * r;
119
7.19k
        count += 1;
120
7.19k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb0EE3addEPKNS_7IColumnEm
Line
Count
Source
110
3.70k
    void add(const IColumn* column, size_t row_num) {
111
3.70k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
112
3.70k
                                          TypeCheckOnRelease::DISABLE>(*column);
113
3.70k
        double source_data = (double)sources.get_data()[row_num];
114
115
3.70k
        double delta = source_data - mean;
116
3.70k
        double r = delta / double(1 + count);
117
3.70k
        mean += r;
118
3.70k
        m2 += (double)count * delta * r;
119
3.70k
        count += 1;
120
3.70k
    }
_ZN5doris8BaseDataILNS_13PrimitiveTypeE9ELb1EE3addEPKNS_7IColumnEm
Line
Count
Source
110
3.49k
    void add(const IColumn* column, size_t row_num) {
111
3.49k
        const auto& sources = assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
112
3.49k
                                          TypeCheckOnRelease::DISABLE>(*column);
113
3.49k
        double source_data = (double)sources.get_data()[row_num];
114
115
3.49k
        double delta = source_data - mean;
116
3.49k
        double r = delta / double(1 + count);
117
3.49k
        mean += r;
118
3.49k
        m2 += (double)count * delta * r;
119
3.49k
        count += 1;
120
3.49k
    }
121
122
    double mean {};
123
    double m2 {};
124
    int64_t count {};
125
};
126
127
template <PrimitiveType T, typename Name, bool is_stddev>
128
struct PopData : BaseData<T, is_stddev>, Name {
129
    using ColVecResult = std::conditional_t<is_decimal(T), ColumnDecimal128V2, ColumnFloat64>;
130
1.37k
    void insert_result_into(IColumn& to) const {
131
1.37k
        auto& col = assert_cast<ColVecResult&>(to);
132
        if constexpr (is_decimal(T)) {
133
            col.get_data().push_back(this->get_pop_result().value());
134
1.37k
        } else {
135
1.37k
            col.get_data().push_back(this->get_pop_result());
136
1.37k
        }
137
1.37k
    }
_ZNK5doris7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
130
692
    void insert_result_into(IColumn& to) const {
131
692
        auto& col = assert_cast<ColVecResult&>(to);
132
        if constexpr (is_decimal(T)) {
133
            col.get_data().push_back(this->get_pop_result().value());
134
692
        } else {
135
692
            col.get_data().push_back(this->get_pop_result());
136
692
        }
137
692
    }
_ZNK5doris7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
130
686
    void insert_result_into(IColumn& to) const {
131
686
        auto& col = assert_cast<ColVecResult&>(to);
132
        if constexpr (is_decimal(T)) {
133
            col.get_data().push_back(this->get_pop_result().value());
134
686
        } else {
135
686
            col.get_data().push_back(this->get_pop_result());
136
686
        }
137
686
    }
138
139
1.10k
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EE15get_return_typeEv
Line
Count
Source
139
589
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EE15get_return_typeEv
Line
Count
Source
139
512
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
140
};
141
142
// For this series of functions, the Decimal type is not supported
143
// because the operations involve squaring,
144
// which can easily exceed the range of the Decimal type.
145
146
template <PrimitiveType T, typename Name, bool is_stddev>
147
struct SampData : BaseData<T, is_stddev>, Name {
148
    using ColVecResult = std::conditional_t<is_decimal(T), ColumnDecimal128V2, ColumnFloat64>;
149
1.32k
    void insert_result_into(IColumn& to) const {
150
1.32k
        auto& col = assert_cast<ColVecResult&>(to);
151
1.32k
        if (this->count == 1 || this->count == 0) {
152
525
            col.insert_default();
153
800
        } else {
154
            if constexpr (is_decimal(T)) {
155
                col.get_data().push_back(this->get_samp_result().value());
156
800
            } else {
157
800
                col.get_data().push_back(this->get_samp_result());
158
800
            }
159
800
        }
160
1.32k
    }
_ZNK5doris8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
149
673
    void insert_result_into(IColumn& to) const {
150
673
        auto& col = assert_cast<ColVecResult&>(to);
151
673
        if (this->count == 1 || this->count == 0) {
152
265
            col.insert_default();
153
408
        } else {
154
            if constexpr (is_decimal(T)) {
155
                col.get_data().push_back(this->get_samp_result().value());
156
408
            } else {
157
408
                col.get_data().push_back(this->get_samp_result());
158
408
            }
159
408
        }
160
673
    }
_ZNK5doris8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EE18insert_result_intoERNS_7IColumnE
Line
Count
Source
149
652
    void insert_result_into(IColumn& to) const {
150
652
        auto& col = assert_cast<ColVecResult&>(to);
151
652
        if (this->count == 1 || this->count == 0) {
152
260
            col.insert_default();
153
392
        } else {
154
            if constexpr (is_decimal(T)) {
155
                col.get_data().push_back(this->get_samp_result().value());
156
392
            } else {
157
392
                col.get_data().push_back(this->get_samp_result());
158
392
            }
159
392
        }
160
652
    }
161
162
956
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EE15get_return_typeEv
Line
Count
Source
162
487
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
_ZN5doris8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EE15get_return_typeEv
Line
Count
Source
162
469
    static DataTypePtr get_return_type() { return std::make_shared<DataTypeFloat64>(); }
163
};
164
165
struct StddevName {
166
176
    static const char* name() { return "stddev"; }
167
};
168
struct VarianceName {
169
172
    static const char* name() { return "variance"; }
170
};
171
struct VarianceSampName {
172
177
    static const char* name() { return "variance_samp"; }
173
};
174
struct StddevSampName {
175
157
    static const char* name() { return "stddev_samp"; }
176
};
177
178
template <typename Data>
179
class AggregateFunctionSampVariance
180
        : public IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>,
181
          UnaryExpression,
182
          NullableAggregateFunction {
183
public:
184
    AggregateFunctionSampVariance(const DataTypes& argument_types_)
185
3.92k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
186
3.92k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
185
1.07k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
186
1.07k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
185
1.13k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
186
1.13k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
185
1.09k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
186
1.09k
                      argument_types_) {}
_ZN5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
185
617
            : IAggregateFunctionDataHelper<Data, AggregateFunctionSampVariance<Data>>(
186
617
                      argument_types_) {}
187
188
682
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
188
177
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE8get_nameB5cxx11Ev
Line
Count
Source
188
172
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
188
176
    String get_name() const override { return Data::name(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE8get_nameB5cxx11Ev
Line
Count
Source
188
157
    String get_name() const override { return Data::name(); }
189
190
2.05k
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE15get_return_typeEv
Line
Count
Source
190
487
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE15get_return_typeEv
Line
Count
Source
190
589
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE15get_return_typeEv
Line
Count
Source
190
512
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE15get_return_typeEv
Line
Count
Source
190
469
    DataTypePtr get_return_type() const override { return Data::get_return_type(); }
191
192
    void add(AggregateDataPtr __restrict place, const IColumn** columns, ssize_t row_num,
193
7.19k
             Arena&) const override {
194
7.19k
        this->data(place).add(columns[0], row_num);
195
7.19k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
193
1.72k
             Arena&) const override {
194
1.72k
        this->data(place).add(columns[0], row_num);
195
1.72k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
193
1.97k
             Arena&) const override {
194
1.97k
        this->data(place).add(columns[0], row_num);
195
1.97k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
193
1.81k
             Arena&) const override {
194
1.81k
        this->data(place).add(columns[0], row_num);
195
1.81k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
193
1.67k
             Arena&) const override {
194
1.67k
        this->data(place).add(columns[0], row_num);
195
1.67k
    }
196
197
1.04k
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE5resetEPc
Line
Count
Source
197
268
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE5resetEPc
Line
Count
Source
197
266
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE5resetEPc
Line
Count
Source
197
268
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE5resetEPc
Line
Count
Source
197
242
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
198
199
    void merge(AggregateDataPtr __restrict place, ConstAggregateDataPtr rhs,
200
3.91k
               Arena&) const override {
201
3.91k
        this->data(place).merge(this->data(rhs));
202
3.91k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
200
964
               Arena&) const override {
201
964
        this->data(place).merge(this->data(rhs));
202
964
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
200
1.12k
               Arena&) const override {
201
1.12k
        this->data(place).merge(this->data(rhs));
202
1.12k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
200
988
               Arena&) const override {
201
988
        this->data(place).merge(this->data(rhs));
202
988
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
200
838
               Arena&) const override {
201
838
        this->data(place).merge(this->data(rhs));
202
838
    }
203
204
4.03k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
205
4.03k
        this->data(place).write(buf);
206
4.03k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
204
989
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
205
989
        this->data(place).write(buf);
206
989
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
204
1.14k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
205
1.14k
        this->data(place).write(buf);
206
1.14k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
204
1.01k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
205
1.01k
        this->data(place).write(buf);
206
1.01k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
204
888
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
205
888
        this->data(place).write(buf);
206
888
    }
207
208
    void deserialize(AggregateDataPtr __restrict place, BufferReadable& buf,
209
3.90k
                     Arena&) const override {
210
3.90k
        this->data(place).read(buf);
211
3.90k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
209
964
                     Arena&) const override {
210
964
        this->data(place).read(buf);
211
964
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
209
1.12k
                     Arena&) const override {
210
1.12k
        this->data(place).read(buf);
211
1.12k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
209
987
                     Arena&) const override {
210
987
        this->data(place).read(buf);
211
987
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
209
838
                     Arena&) const override {
210
838
        this->data(place).read(buf);
211
838
    }
212
213
2.70k
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
214
2.70k
        this->data(place).insert_result_into(to);
215
2.70k
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_16VarianceSampNameELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
213
673
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
214
673
        this->data(place).insert_result_into(to);
215
673
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_12VarianceNameELb0EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
213
692
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
214
692
        this->data(place).insert_result_into(to);
215
692
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_7PopDataILNS_13PrimitiveTypeE9ENS_10StddevNameELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
213
686
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
214
686
        this->data(place).insert_result_into(to);
215
686
    }
_ZNK5doris29AggregateFunctionSampVarianceINS_8SampDataILNS_13PrimitiveTypeE9ENS_14StddevSampNameELb1EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
213
652
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
214
652
        this->data(place).insert_result_into(to);
215
652
    }
216
};
217
218
} // namespace doris
219
220
#include "common/compile_check_end.h"