Coverage Report

Created: 2026-09-02 08:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/minmax_predicate.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 <gen_cpp/internal_service.pb.h>
21
22
#include "core/column/column_nullable.h"
23
#include "core/column/column_string.h"
24
#include "core/type_limit.h"
25
#include "exprs/filter_base.h"
26
27
namespace doris {
28
29
// only used in Runtime Filter
30
class MinMaxFuncBase : public FilterBase {
31
public:
32
21.3k
    MinMaxFuncBase(bool null_aware) : FilterBase(null_aware) {}
33
    virtual void insert_fixed_len(const ColumnPtr& column, size_t start) = 0;
34
    virtual void* get_max() = 0;
35
    virtual void* get_min() = 0;
36
    // assign minmax data
37
    virtual Status assign(void* min_data, void* max_data) = 0;
38
    // merge from other minmax_func
39
    virtual Status merge(MinMaxFuncBase* minmax_func) = 0;
40
21.5k
    virtual ~MinMaxFuncBase() = default;
41
42
    virtual void to_pb(PMinMaxFilter* filter) = 0;
43
};
44
45
template <class T, bool NeedMax = true, bool NeedMin = true>
46
class MinMaxNumFunc : public MinMaxFuncBase {
47
public:
48
    static constexpr bool IsStringValue = std::is_same_v<T, std::string>;
49
21.4k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIhLb1ELb1EEC2Eb
Line
Count
Source
49
10
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EEC2Eb
Line
Count
Source
49
6
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIaLb1ELb1EEC2Eb
Line
Count
Source
49
438
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIsLb1ELb1EEC2Eb
Line
Count
Source
49
236
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIiLb1ELb1EEC2Eb
Line
Count
Source
49
12.0k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIlLb1ELb1EEC2Eb
Line
Count
Source
49
4.23k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncInLb1ELb1EEC2Eb
Line
Count
Source
49
184
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIfLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIdLb1ELb1EEC2Eb
Line
Count
Source
49
125
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EEC2Eb
Line
Count
Source
49
63
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
472
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
2.38k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EEC2Eb
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EEC2Eb
Line
Count
Source
49
552
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EEC2Eb
Line
Count
Source
49
6
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EEC2Eb
Line
Count
Source
49
378
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EEC2Eb
Line
Count
Source
49
277
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EEC2Eb
Line
Count
Source
49
26
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIjLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIoLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
50
552
    ~MinMaxNumFunc() override = default;
51
52
5.77k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
5.77k
        if (is_column_nullable(*column)) {
54
3.72k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
3.72k
            const auto& col = nullable->get_nested_column_ptr();
56
3.72k
            const auto& nullmap = nullable->get_null_map_data();
57
3.72k
            if (nullable->has_null()) {
58
2.95k
                _update_batch(col, nullmap, start);
59
2.95k
                _contain_null = true;
60
2.95k
            } else {
61
770
                _update_batch(col, start);
62
770
            }
63
3.72k
        } else {
64
2.04k
            _update_batch(column, start);
65
2.04k
        }
66
5.77k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
2
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
2
        if (is_column_nullable(*column)) {
54
2
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
2
            const auto& col = nullable->get_nested_column_ptr();
56
2
            const auto& nullmap = nullable->get_null_map_data();
57
2
            if (nullable->has_null()) {
58
2
                _update_batch(col, nullmap, start);
59
2
                _contain_null = true;
60
2
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
2
        } else {
64
0
            _update_batch(column, start);
65
0
        }
66
2
    }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
3
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
3
        if (is_column_nullable(*column)) {
54
2
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
2
            const auto& col = nullable->get_nested_column_ptr();
56
2
            const auto& nullmap = nullable->get_null_map_data();
57
2
            if (nullable->has_null()) {
58
2
                _update_batch(col, nullmap, start);
59
2
                _contain_null = true;
60
2
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
2
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
3
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
185
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
185
        if (is_column_nullable(*column)) {
54
164
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
164
            const auto& col = nullable->get_nested_column_ptr();
56
164
            const auto& nullmap = nullable->get_null_map_data();
57
164
            if (nullable->has_null()) {
58
138
                _update_batch(col, nullmap, start);
59
138
                _contain_null = true;
60
138
            } else {
61
26
                _update_batch(col, start);
62
26
            }
63
164
        } else {
64
21
            _update_batch(column, start);
65
21
        }
66
185
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
52
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
52
        if (is_column_nullable(*column)) {
54
51
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
51
            const auto& col = nullable->get_nested_column_ptr();
56
51
            const auto& nullmap = nullable->get_null_map_data();
57
51
            if (nullable->has_null()) {
58
51
                _update_batch(col, nullmap, start);
59
51
                _contain_null = true;
60
51
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
51
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
52
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
3.28k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
3.28k
        if (is_column_nullable(*column)) {
54
1.82k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
1.82k
            const auto& col = nullable->get_nested_column_ptr();
56
1.82k
            const auto& nullmap = nullable->get_null_map_data();
57
1.82k
            if (nullable->has_null()) {
58
1.20k
                _update_batch(col, nullmap, start);
59
1.20k
                _contain_null = true;
60
1.20k
            } else {
61
616
                _update_batch(col, start);
62
616
            }
63
1.82k
        } else {
64
1.45k
            _update_batch(column, start);
65
1.45k
        }
66
3.28k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1.00k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1.00k
        if (is_column_nullable(*column)) {
54
860
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
860
            const auto& col = nullable->get_nested_column_ptr();
56
860
            const auto& nullmap = nullable->get_null_map_data();
57
860
            if (nullable->has_null()) {
58
815
                _update_batch(col, nullmap, start);
59
815
                _contain_null = true;
60
815
            } else {
61
45
                _update_batch(col, start);
62
45
            }
63
860
        } else {
64
146
            _update_batch(column, start);
65
146
        }
66
1.00k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
97
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
97
        if (is_column_nullable(*column)) {
54
0
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
0
            const auto& col = nullable->get_nested_column_ptr();
56
0
            const auto& nullmap = nullable->get_null_map_data();
57
0
            if (nullable->has_null()) {
58
0
                _update_batch(col, nullmap, start);
59
0
                _contain_null = true;
60
0
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
97
        } else {
64
97
            _update_batch(column, start);
65
97
        }
66
97
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1
        if (is_column_nullable(*column)) {
54
0
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
0
            const auto& col = nullable->get_nested_column_ptr();
56
0
            const auto& nullmap = nullable->get_null_map_data();
57
0
            if (nullable->has_null()) {
58
0
                _update_batch(col, nullmap, start);
59
0
                _contain_null = true;
60
0
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
1
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
1
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
114
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
114
        if (is_column_nullable(*column)) {
54
113
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
113
            const auto& col = nullable->get_nested_column_ptr();
56
113
            const auto& nullmap = nullable->get_null_map_data();
57
113
            if (nullable->has_null()) {
58
97
                _update_batch(col, nullmap, start);
59
97
                _contain_null = true;
60
97
            } else {
61
16
                _update_batch(col, start);
62
16
            }
63
113
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
114
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
7
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
7
        if (is_column_nullable(*column)) {
54
5
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
5
            const auto& col = nullable->get_nested_column_ptr();
56
5
            const auto& nullmap = nullable->get_null_map_data();
57
5
            if (nullable->has_null()) {
58
5
                _update_batch(col, nullmap, start);
59
5
                _contain_null = true;
60
5
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
5
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
7
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
169
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
169
        if (is_column_nullable(*column)) {
54
12
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
12
            const auto& col = nullable->get_nested_column_ptr();
56
12
            const auto& nullmap = nullable->get_null_map_data();
57
12
            if (nullable->has_null()) {
58
12
                _update_batch(col, nullmap, start);
59
12
                _contain_null = true;
60
12
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
157
        } else {
64
157
            _update_batch(column, start);
65
157
        }
66
169
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
333
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
333
        if (is_column_nullable(*column)) {
54
264
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
264
            const auto& col = nullable->get_nested_column_ptr();
56
264
            const auto& nullmap = nullable->get_null_map_data();
57
264
            if (nullable->has_null()) {
58
264
                _update_batch(col, nullmap, start);
59
264
                _contain_null = true;
60
264
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
264
        } else {
64
69
            _update_batch(column, start);
65
69
        }
66
333
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
52
284
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
284
        if (is_column_nullable(*column)) {
54
242
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
242
            const auto& col = nullable->get_nested_column_ptr();
56
242
            const auto& nullmap = nullable->get_null_map_data();
57
242
            if (nullable->has_null()) {
58
184
                _update_batch(col, nullmap, start);
59
184
                _contain_null = true;
60
184
            } else {
61
58
                _update_batch(col, start);
62
58
            }
63
242
        } else {
64
42
            _update_batch(column, start);
65
42
        }
66
284
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
2
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
2
        if (is_column_nullable(*column)) {
54
1
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
1
            const auto& col = nullable->get_nested_column_ptr();
56
1
            const auto& nullmap = nullable->get_null_map_data();
57
1
            if (nullable->has_null()) {
58
1
                _update_batch(col, nullmap, start);
59
1
                _contain_null = true;
60
1
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
1
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
2
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
168
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
168
        if (is_column_nullable(*column)) {
54
141
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
141
            const auto& col = nullable->get_nested_column_ptr();
56
141
            const auto& nullmap = nullable->get_null_map_data();
57
141
            if (nullable->has_null()) {
58
141
                _update_batch(col, nullmap, start);
59
141
                _contain_null = true;
60
141
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
141
        } else {
64
27
            _update_batch(column, start);
65
27
        }
66
168
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
59
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
59
        if (is_column_nullable(*column)) {
54
43
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
43
            const auto& col = nullable->get_nested_column_ptr();
56
43
            const auto& nullmap = nullable->get_null_map_data();
57
43
            if (nullable->has_null()) {
58
34
                _update_batch(col, nullmap, start);
59
34
                _contain_null = true;
60
34
            } else {
61
9
                _update_batch(col, start);
62
9
            }
63
43
        } else {
64
16
            _update_batch(column, start);
65
16
        }
66
59
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EEm
Line
Count
Source
52
4
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
4
        if (is_column_nullable(*column)) {
54
3
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
3
            const auto& col = nullable->get_nested_column_ptr();
56
3
            const auto& nullmap = nullable->get_null_map_data();
57
3
            if (nullable->has_null()) {
58
3
                _update_batch(col, nullmap, start);
59
3
                _contain_null = true;
60
3
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
3
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
4
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1
        if (is_column_nullable(*column)) {
54
0
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
0
            const auto& col = nullable->get_nested_column_ptr();
56
0
            const auto& nullmap = nullable->get_null_map_data();
57
0
            if (nullable->has_null()) {
58
0
                _update_batch(col, nullmap, start);
59
0
                _contain_null = true;
60
0
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
1
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
1
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1
        if (is_column_nullable(*column)) {
54
0
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
0
            const auto& col = nullable->get_nested_column_ptr();
56
0
            const auto& nullmap = nullable->get_null_map_data();
57
0
            if (nullable->has_null()) {
58
0
                _update_batch(col, nullmap, start);
59
0
                _contain_null = true;
60
0
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
1
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
1
    }
67
68
11.0k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
11.0k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
11.0k
        if constexpr (NeedMin) {
71
11.0k
            if constexpr (IsStringValue) {
72
117
                if (other_minmax->_min < _min || !_min_value_set) {
73
26
                    _min = other_minmax->_min;
74
26
                    _min_value_set = true;
75
26
                }
76
10.8k
            } else if (other_minmax->_min < _min) {
77
770
                _min = other_minmax->_min;
78
770
            }
79
11.0k
        }
80
11.0k
        if constexpr (NeedMax) {
81
11.0k
            if (other_minmax->_max > _max) {
82
844
                _max = other_minmax->_max;
83
844
            }
84
11.0k
        }
85
86
11.0k
        _contain_null |= minmax_func->contain_null();
87
11.0k
        return Status::OK();
88
11.0k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
6
    Status merge(MinMaxFuncBase* minmax_func) override {
69
6
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
6
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
6
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
6
        }
80
6
        if constexpr (NeedMax) {
81
6
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
6
        }
85
86
6
        _contain_null |= minmax_func->contain_null();
87
6
        return Status::OK();
88
6
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
97
    Status merge(MinMaxFuncBase* minmax_func) override {
69
97
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
97
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
97
            } else if (other_minmax->_min < _min) {
77
6
                _min = other_minmax->_min;
78
6
            }
79
97
        }
80
97
        if constexpr (NeedMax) {
81
97
            if (other_minmax->_max > _max) {
82
4
                _max = other_minmax->_max;
83
4
            }
84
97
        }
85
86
97
        _contain_null |= minmax_func->contain_null();
87
97
        return Status::OK();
88
97
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
61
    Status merge(MinMaxFuncBase* minmax_func) override {
69
61
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
61
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
61
            } else if (other_minmax->_min < _min) {
77
10
                _min = other_minmax->_min;
78
10
            }
79
61
        }
80
61
        if constexpr (NeedMax) {
81
61
            if (other_minmax->_max > _max) {
82
12
                _max = other_minmax->_max;
83
12
            }
84
61
        }
85
86
61
        _contain_null |= minmax_func->contain_null();
87
61
        return Status::OK();
88
61
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
7.12k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
7.12k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
7.12k
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
7.12k
            } else if (other_minmax->_min < _min) {
77
506
                _min = other_minmax->_min;
78
506
            }
79
7.12k
        }
80
7.12k
        if constexpr (NeedMax) {
81
7.12k
            if (other_minmax->_max > _max) {
82
533
                _max = other_minmax->_max;
83
533
            }
84
7.12k
        }
85
86
7.12k
        _contain_null |= minmax_func->contain_null();
87
7.12k
        return Status::OK();
88
7.12k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
922
    Status merge(MinMaxFuncBase* minmax_func) override {
69
922
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
922
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
922
            } else if (other_minmax->_min < _min) {
77
79
                _min = other_minmax->_min;
78
79
            }
79
922
        }
80
922
        if constexpr (NeedMax) {
81
922
            if (other_minmax->_max > _max) {
82
81
                _max = other_minmax->_max;
83
81
            }
84
922
        }
85
86
922
        _contain_null |= minmax_func->contain_null();
87
922
        return Status::OK();
88
922
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
79
    Status merge(MinMaxFuncBase* minmax_func) override {
69
79
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
79
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
79
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
79
        }
80
79
        if constexpr (NeedMax) {
81
79
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
79
        }
85
86
79
        _contain_null |= minmax_func->contain_null();
87
79
        return Status::OK();
88
79
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
106
    Status merge(MinMaxFuncBase* minmax_func) override {
69
106
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
106
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
106
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
106
        }
80
106
        if constexpr (NeedMax) {
81
106
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
106
        }
85
86
106
        _contain_null |= minmax_func->contain_null();
87
106
        return Status::OK();
88
106
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
45
    Status merge(MinMaxFuncBase* minmax_func) override {
69
45
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
45
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
45
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
45
        }
80
45
        if constexpr (NeedMax) {
81
45
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
45
        }
85
86
45
        _contain_null |= minmax_func->contain_null();
87
45
        return Status::OK();
88
45
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
236
    Status merge(MinMaxFuncBase* minmax_func) override {
69
236
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
236
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
236
            } else if (other_minmax->_min < _min) {
77
37
                _min = other_minmax->_min;
78
37
            }
79
236
        }
80
236
        if constexpr (NeedMax) {
81
236
            if (other_minmax->_max > _max) {
82
42
                _max = other_minmax->_max;
83
42
            }
84
236
        }
85
86
236
        _contain_null |= minmax_func->contain_null();
87
236
        return Status::OK();
88
236
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
2.08k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
2.08k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
2.08k
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
2.08k
            } else if (other_minmax->_min < _min) {
77
103
                _min = other_minmax->_min;
78
103
            }
79
2.08k
        }
80
2.08k
        if constexpr (NeedMax) {
81
2.08k
            if (other_minmax->_max > _max) {
82
127
                _max = other_minmax->_max;
83
127
            }
84
2.08k
        }
85
86
2.08k
        _contain_null |= minmax_func->contain_null();
87
2.08k
        return Status::OK();
88
2.08k
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
117
    Status merge(MinMaxFuncBase* minmax_func) override {
69
117
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
117
        if constexpr (NeedMin) {
71
117
            if constexpr (IsStringValue) {
72
117
                if (other_minmax->_min < _min || !_min_value_set) {
73
26
                    _min = other_minmax->_min;
74
26
                    _min_value_set = true;
75
26
                }
76
            } else if (other_minmax->_min < _min) {
77
                _min = other_minmax->_min;
78
            }
79
117
        }
80
117
        if constexpr (NeedMax) {
81
117
            if (other_minmax->_max > _max) {
82
19
                _max = other_minmax->_max;
83
19
            }
84
117
        }
85
86
117
        _contain_null |= minmax_func->contain_null();
87
117
        return Status::OK();
88
117
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
26
    Status merge(MinMaxFuncBase* minmax_func) override {
69
26
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
26
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
26
            } else if (other_minmax->_min < _min) {
77
9
                _min = other_minmax->_min;
78
9
            }
79
26
        }
80
26
        if constexpr (NeedMax) {
81
26
            if (other_minmax->_max > _max) {
82
6
                _max = other_minmax->_max;
83
6
            }
84
26
        }
85
86
26
        _contain_null |= minmax_func->contain_null();
87
26
        return Status::OK();
88
26
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
96
    Status merge(MinMaxFuncBase* minmax_func) override {
69
96
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
96
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
96
            } else if (other_minmax->_min < _min) {
77
18
                _min = other_minmax->_min;
78
18
            }
79
96
        }
80
96
        if constexpr (NeedMax) {
81
96
            if (other_minmax->_max > _max) {
82
18
                _max = other_minmax->_max;
83
18
            }
84
96
        }
85
86
96
        _contain_null |= minmax_func->contain_null();
87
96
        return Status::OK();
88
96
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
9
    Status merge(MinMaxFuncBase* minmax_func) override {
69
9
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
9
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
9
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
9
        }
80
9
        if constexpr (NeedMax) {
81
9
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
9
        }
85
86
9
        _contain_null |= minmax_func->contain_null();
87
9
        return Status::OK();
88
9
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
89
90
5.12k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
4
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_maxEv
Line
Count
Source
90
171
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_maxEv
Line
Count
Source
90
83
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_maxEv
Line
Count
Source
90
2.36k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_maxEv
Line
Count
Source
90
1.63k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_maxEv
Line
Count
Source
90
52
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_maxEv
Line
Count
Source
90
11
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
11
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
110
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
180
    void* get_max() override { return &_max; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_maxEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
211
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_maxEv
Line
Count
Source
90
4
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_maxEv
Line
Count
Source
90
180
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_maxEv
Line
Count
Source
90
84
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
13
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
91
92
5.15k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_minEv
Line
Count
Source
92
170
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_minEv
Line
Count
Source
92
83
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_minEv
Line
Count
Source
92
2.36k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_minEv
Line
Count
Source
92
1.66k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_minEv
Line
Count
Source
92
55
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_minEv
Line
Count
Source
92
11
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
111
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
182
    void* get_min() override { return &_min; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_minEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_minEv
Line
Count
Source
92
217
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_minEv
Line
Count
Source
92
180
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_minEv
Line
Count
Source
92
90
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_minEv
Line
Count
Source
92
14
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
93
94
1.29k
    Status assign(void* min_data, void* max_data) override {
95
1.29k
        if constexpr (IsStringValue) {
96
53
            _min_value_set = true;
97
53
        }
98
1.29k
        _min = *(T*)min_data;
99
1.29k
        _max = *(T*)max_data;
100
1.29k
        return Status::OK();
101
1.29k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
3
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
3
        _min = *(T*)min_data;
99
3
        _max = *(T*)max_data;
100
3
        return Status::OK();
101
3
    }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
7
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
7
        _min = *(T*)min_data;
99
7
        _max = *(T*)max_data;
100
7
        return Status::OK();
101
7
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
55
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
55
        _min = *(T*)min_data;
99
55
        _max = *(T*)max_data;
100
55
        return Status::OK();
101
55
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
780
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
780
        _min = *(T*)min_data;
99
780
        _max = *(T*)max_data;
100
780
        return Status::OK();
101
780
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
177
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
177
        _min = *(T*)min_data;
99
177
        _max = *(T*)max_data;
100
177
        return Status::OK();
101
177
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
2
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
2
        _min = *(T*)min_data;
99
2
        _max = *(T*)max_data;
100
2
        return Status::OK();
101
2
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE6assignEPvS5_
Line
Count
Source
94
57
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
57
        _min = *(T*)min_data;
99
57
        _max = *(T*)max_data;
100
57
        return Status::OK();
101
57
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE6assignEPvS5_
Line
Count
Source
94
109
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
109
        _min = *(T*)min_data;
99
109
        _max = *(T*)max_data;
100
109
        return Status::OK();
101
109
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE6assignEPvS3_
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE6assignEPvS8_
Line
Count
Source
94
53
    Status assign(void* min_data, void* max_data) override {
95
53
        if constexpr (IsStringValue) {
96
53
            _min_value_set = true;
97
53
        }
98
53
        _min = *(T*)min_data;
99
53
        _max = *(T*)max_data;
100
53
        return Status::OK();
101
53
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
5
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
5
        _min = *(T*)min_data;
99
5
        _max = *(T*)max_data;
100
5
        return Status::OK();
101
5
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
39
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
39
        _min = *(T*)min_data;
99
39
        _max = *(T*)max_data;
100
39
        return Status::OK();
101
39
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE6assignEPvS7_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
102
103
1.48k
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
2
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
6
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
57
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
918
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
234
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncInLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIdLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
56
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
108
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
54
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
4
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
49
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
104
105
private:
106
1.48k
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
1.48k
        if constexpr (NeedMin) {
108
1.48k
            f(filter->mutable_min_val(), _min);
109
1.48k
        }
110
1.48k
        if constexpr (NeedMax) {
111
1.48k
            f(filter->mutable_max_val(), _max);
112
1.48k
        }
113
1.48k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7_set_pbIZNS_13get_convertorIhEEDavEUlPNS_12PColumnValueERKhE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
2
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
2
        if constexpr (NeedMin) {
108
2
            f(filter->mutable_min_val(), _min);
109
2
        }
110
2
        if constexpr (NeedMax) {
111
2
            f(filter->mutable_max_val(), _max);
112
2
        }
113
2
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7_set_pbIZNS_13get_convertorIaEEDavEUlPNS_12PColumnValueERKaE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
6
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
6
        if constexpr (NeedMin) {
108
6
            f(filter->mutable_min_val(), _min);
109
6
        }
110
6
        if constexpr (NeedMax) {
111
6
            f(filter->mutable_max_val(), _max);
112
6
        }
113
6
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7_set_pbIZNS_13get_convertorIsEEDavEUlPNS_12PColumnValueERKsE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
57
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
57
        if constexpr (NeedMin) {
108
57
            f(filter->mutable_min_val(), _min);
109
57
        }
110
57
        if constexpr (NeedMax) {
111
57
            f(filter->mutable_max_val(), _max);
112
57
        }
113
57
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7_set_pbIZNS_13get_convertorIiEEDavEUlPNS_12PColumnValueERKiE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
918
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
918
        if constexpr (NeedMin) {
108
918
            f(filter->mutable_min_val(), _min);
109
918
        }
110
918
        if constexpr (NeedMax) {
111
918
            f(filter->mutable_max_val(), _max);
112
918
        }
113
918
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7_set_pbIZNS_13get_convertorIlEEDavEUlPNS_12PColumnValueERKlE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
234
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
234
        if constexpr (NeedMin) {
108
234
            f(filter->mutable_min_val(), _min);
109
234
        }
110
234
        if constexpr (NeedMax) {
111
234
            f(filter->mutable_max_val(), _max);
112
234
        }
113
234
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncInLb1ELb1EE7_set_pbIZNS_13get_convertorInEEDavEUlPNS_12PColumnValueERKnE_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE7_set_pbIZNS_13get_convertorIfEEDavEUlPNS_12PColumnValueERKfE_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIdLb1ELb1EE7_set_pbIZNS_13get_convertorIdEEDavEUlPNS_12PColumnValueERKdE_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS3_EEDavEUlPNS_12PColumnValueERKS3_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
56
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
56
        if constexpr (NeedMin) {
108
56
            f(filter->mutable_min_val(), _min);
109
56
        }
110
56
        if constexpr (NeedMax) {
111
56
            f(filter->mutable_max_val(), _max);
112
56
        }
113
56
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS3_EEDavEUlPNS_12PColumnValueERKS3_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
108
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
108
        if constexpr (NeedMin) {
108
108
            f(filter->mutable_min_val(), _min);
109
108
        }
110
108
        if constexpr (NeedMax) {
111
108
            f(filter->mutable_max_val(), _max);
112
108
        }
113
108
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS6_EEDavEUlPNS_12PColumnValueERKS6_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
54
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
54
        if constexpr (NeedMin) {
108
54
            f(filter->mutable_min_val(), _min);
109
54
        }
110
54
        if constexpr (NeedMax) {
111
54
            f(filter->mutable_max_val(), _max);
112
54
        }
113
54
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
4
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
4
        if constexpr (NeedMin) {
108
4
            f(filter->mutable_min_val(), _min);
109
4
        }
110
4
        if constexpr (NeedMax) {
111
4
            f(filter->mutable_max_val(), _max);
112
4
        }
113
4
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
49
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
49
        if constexpr (NeedMin) {
108
49
            f(filter->mutable_min_val(), _min);
109
49
        }
110
49
        if constexpr (NeedMax) {
111
49
            f(filter->mutable_max_val(), _max);
112
49
        }
113
49
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS5_EEDavEUlPNS_12PColumnValueERKS5_E_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE7_set_pbIZNS_13get_convertorIjEEDavEUlPNS_12PColumnValueERKjE_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE7_set_pbIZNS_13get_convertorIoEEDavEUlPNS_12PColumnValueERKoE_EEvPNS_13PMinMaxFilterET_
114
115
    void _update_batch_string(const auto& column_string, const uint8_t* __restrict nullmap,
116
284
                              size_t start, size_t size) {
117
1.02k
        for (size_t i = start; i < size; i++) {
118
741
            if (nullmap == nullptr || !nullmap[i]) {
119
715
                if constexpr (NeedMin) {
120
715
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
280
                        _min = column_string.get_data_at(i).to_string();
122
280
                        _min_value_set = true;
123
280
                    }
124
715
                }
125
715
                if constexpr (NeedMax) {
126
715
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
334
                        _max = column_string.get_data_at(i).to_string();
128
334
                    }
129
715
                }
130
715
            }
131
741
        }
132
284
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrImEEEEvRKT_PKhmm
Line
Count
Source
116
1
                              size_t start, size_t size) {
117
9
        for (size_t i = start; i < size; i++) {
118
8
            if (nullmap == nullptr || !nullmap[i]) {
119
8
                if constexpr (NeedMin) {
120
8
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
1
                        _min = column_string.get_data_at(i).to_string();
122
1
                        _min_value_set = true;
123
1
                    }
124
8
                }
125
8
                if constexpr (NeedMax) {
126
8
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
8
                        _max = column_string.get_data_at(i).to_string();
128
8
                    }
129
8
                }
130
8
            }
131
8
        }
132
1
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrIjEEEEvRKT_PKhmm
Line
Count
Source
116
283
                              size_t start, size_t size) {
117
1.01k
        for (size_t i = start; i < size; i++) {
118
733
            if (nullmap == nullptr || !nullmap[i]) {
119
707
                if constexpr (NeedMin) {
120
707
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
279
                        _min = column_string.get_data_at(i).to_string();
122
279
                        _min_value_set = true;
123
279
                    }
124
707
                }
125
707
                if constexpr (NeedMax) {
126
707
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
326
                        _max = column_string.get_data_at(i).to_string();
128
326
                    }
129
707
                }
130
707
            }
131
733
        }
132
283
    }
133
134
2.81k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
2.81k
        const auto size = column->size();
136
2.81k
        if constexpr (std::is_same_v<T, std::string>) {
137
100
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
99
            } else {
141
99
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
99
                                     size);
143
99
            }
144
2.71k
        } else {
145
2.71k
            const T* data = (T*)column->get_raw_data().data;
146
766k
            for (size_t i = start; i < size; i++) {
147
763k
                if constexpr (NeedMin) {
148
763k
                    _min = std::min(_min, *(data + i));
149
763k
                }
150
763k
                if constexpr (NeedMax) {
151
763k
                    _max = std::max(_max, *(data + i));
152
763k
                }
153
763k
            }
154
2.71k
        }
155
2.81k
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIhLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
47
    void _update_batch(const ColumnPtr& column, size_t start) {
135
47
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
47
        } else {
145
47
            const T* data = (T*)column->get_raw_data().data;
146
206
            for (size_t i = start; i < size; i++) {
147
159
                if constexpr (NeedMin) {
148
159
                    _min = std::min(_min, *(data + i));
149
159
                }
150
159
                if constexpr (NeedMax) {
151
159
                    _max = std::max(_max, *(data + i));
152
159
                }
153
159
            }
154
47
        }
155
47
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
2.07k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
2.07k
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
2.07k
        } else {
145
2.07k
            const T* data = (T*)column->get_raw_data().data;
146
751k
            for (size_t i = start; i < size; i++) {
147
749k
                if constexpr (NeedMin) {
148
749k
                    _min = std::min(_min, *(data + i));
149
749k
                }
150
749k
                if constexpr (NeedMax) {
151
749k
                    _max = std::max(_max, *(data + i));
152
749k
                }
153
749k
            }
154
2.07k
        }
155
2.07k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
191
    void _update_batch(const ColumnPtr& column, size_t start) {
135
191
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
191
        } else {
145
191
            const T* data = (T*)column->get_raw_data().data;
146
1.09k
            for (size_t i = start; i < size; i++) {
147
905
                if constexpr (NeedMin) {
148
905
                    _min = std::min(_min, *(data + i));
149
905
                }
150
905
                if constexpr (NeedMax) {
151
905
                    _max = std::max(_max, *(data + i));
152
905
                }
153
905
            }
154
191
        }
155
191
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
97
    void _update_batch(const ColumnPtr& column, size_t start) {
135
97
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
97
        } else {
145
97
            const T* data = (T*)column->get_raw_data().data;
146
305
            for (size_t i = start; i < size; i++) {
147
208
                if constexpr (NeedMin) {
148
208
                    _min = std::min(_min, *(data + i));
149
208
                }
150
208
                if constexpr (NeedMax) {
151
208
                    _max = std::max(_max, *(data + i));
152
208
                }
153
208
            }
154
97
        }
155
97
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
17
    void _update_batch(const ColumnPtr& column, size_t start) {
135
17
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
17
        } else {
145
17
            const T* data = (T*)column->get_raw_data().data;
146
36
            for (size_t i = start; i < size; i++) {
147
19
                if constexpr (NeedMin) {
148
19
                    _min = std::min(_min, *(data + i));
149
19
                }
150
19
                if constexpr (NeedMax) {
151
19
                    _max = std::max(_max, *(data + i));
152
19
                }
153
19
            }
154
17
        }
155
17
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
2
    void _update_batch(const ColumnPtr& column, size_t start) {
135
2
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
2
        } else {
145
2
            const T* data = (T*)column->get_raw_data().data;
146
8
            for (size_t i = start; i < size; i++) {
147
6
                if constexpr (NeedMin) {
148
6
                    _min = std::min(_min, *(data + i));
149
6
                }
150
6
                if constexpr (NeedMax) {
151
6
                    _max = std::max(_max, *(data + i));
152
6
                }
153
6
            }
154
2
        }
155
2
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
134
157
    void _update_batch(const ColumnPtr& column, size_t start) {
135
157
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
157
        } else {
145
157
            const T* data = (T*)column->get_raw_data().data;
146
624
            for (size_t i = start; i < size; i++) {
147
467
                if constexpr (NeedMin) {
148
467
                    _min = std::min(_min, *(data + i));
149
467
                }
150
467
                if constexpr (NeedMax) {
151
467
                    _max = std::max(_max, *(data + i));
152
467
                }
153
467
            }
154
157
        }
155
157
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
134
69
    void _update_batch(const ColumnPtr& column, size_t start) {
135
69
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
69
        } else {
145
69
            const T* data = (T*)column->get_raw_data().data;
146
294
            for (size_t i = start; i < size; i++) {
147
225
                if constexpr (NeedMin) {
148
225
                    _min = std::min(_min, *(data + i));
149
225
                }
150
225
                if constexpr (NeedMax) {
151
225
                    _max = std::max(_max, *(data + i));
152
225
                }
153
225
            }
154
69
        }
155
69
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
134
100
    void _update_batch(const ColumnPtr& column, size_t start) {
135
100
        const auto size = column->size();
136
100
        if constexpr (std::is_same_v<T, std::string>) {
137
100
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
99
            } else {
141
99
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
99
                                     size);
143
99
            }
144
        } else {
145
            const T* data = (T*)column->get_raw_data().data;
146
            for (size_t i = start; i < size; i++) {
147
                if constexpr (NeedMin) {
148
                    _min = std::min(_min, *(data + i));
149
                }
150
                if constexpr (NeedMax) {
151
                    _max = std::max(_max, *(data + i));
152
                }
153
            }
154
        }
155
100
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
134
27
    void _update_batch(const ColumnPtr& column, size_t start) {
135
27
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
27
        } else {
145
27
            const T* data = (T*)column->get_raw_data().data;
146
12.1k
            for (size_t i = start; i < size; i++) {
147
12.0k
                if constexpr (NeedMin) {
148
12.0k
                    _min = std::min(_min, *(data + i));
149
12.0k
                }
150
12.0k
                if constexpr (NeedMax) {
151
12.0k
                    _max = std::max(_max, *(data + i));
152
12.0k
                }
153
12.0k
            }
154
27
        }
155
27
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
26
    void _update_batch(const ColumnPtr& column, size_t start) {
135
26
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
26
        } else {
145
26
            const T* data = (T*)column->get_raw_data().data;
146
66
            for (size_t i = start; i < size; i++) {
147
40
                if constexpr (NeedMin) {
148
40
                    _min = std::min(_min, *(data + i));
149
40
                }
150
40
                if constexpr (NeedMax) {
151
40
                    _max = std::max(_max, *(data + i));
152
40
                }
153
40
            }
154
26
        }
155
26
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
156
157
2.95k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
2.95k
        const auto size = column->size();
159
2.95k
        if constexpr (std::is_same_v<T, std::string>) {
160
184
            if (column->is_column_string64()) {
161
0
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
0
                                     start, size);
163
184
            } else {
164
184
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
184
                                     start, size);
166
184
            }
167
2.77k
        } else {
168
2.77k
            const T* data = (T*)column->get_raw_data().data;
169
2.55M
            for (size_t i = start; i < size; i++) {
170
2.54M
                if (!nullmap[i]) {
171
2.52M
                    if constexpr (NeedMin) {
172
2.52M
                        _min = std::min(_min, *(data + i));
173
2.52M
                    }
174
2.52M
                    if constexpr (NeedMax) {
175
2.52M
                        _max = std::max(_max, *(data + i));
176
2.52M
                    }
177
2.52M
                }
178
2.54M
            }
179
2.77k
        }
180
2.95k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
2
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
2
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
2
        } else {
168
2
            const T* data = (T*)column->get_raw_data().data;
169
5
            for (size_t i = start; i < size; i++) {
170
3
                if (!nullmap[i]) {
171
2
                    if constexpr (NeedMin) {
172
2
                        _min = std::min(_min, *(data + i));
173
2
                    }
174
2
                    if constexpr (NeedMax) {
175
2
                        _max = std::max(_max, *(data + i));
176
2
                    }
177
2
                }
178
3
            }
179
2
        }
180
2
    }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
2
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
2
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
2
        } else {
168
2
            const T* data = (T*)column->get_raw_data().data;
169
8
            for (size_t i = start; i < size; i++) {
170
6
                if (!nullmap[i]) {
171
6
                    if constexpr (NeedMin) {
172
6
                        _min = std::min(_min, *(data + i));
173
6
                    }
174
6
                    if constexpr (NeedMax) {
175
6
                        _max = std::max(_max, *(data + i));
176
6
                    }
177
6
                }
178
6
            }
179
2
        }
180
2
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
138
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
138
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
138
        } else {
168
138
            const T* data = (T*)column->get_raw_data().data;
169
399
            for (size_t i = start; i < size; i++) {
170
261
                if (!nullmap[i]) {
171
255
                    if constexpr (NeedMin) {
172
255
                        _min = std::min(_min, *(data + i));
173
255
                    }
174
255
                    if constexpr (NeedMax) {
175
255
                        _max = std::max(_max, *(data + i));
176
255
                    }
177
255
                }
178
261
            }
179
138
        }
180
138
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
51
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
51
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
51
        } else {
168
51
            const T* data = (T*)column->get_raw_data().data;
169
260
            for (size_t i = start; i < size; i++) {
170
209
                if (!nullmap[i]) {
171
207
                    if constexpr (NeedMin) {
172
207
                        _min = std::min(_min, *(data + i));
173
207
                    }
174
207
                    if constexpr (NeedMax) {
175
207
                        _max = std::max(_max, *(data + i));
176
207
                    }
177
207
                }
178
209
            }
179
51
        }
180
51
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1.20k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1.20k
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
1.20k
        } else {
168
1.20k
            const T* data = (T*)column->get_raw_data().data;
169
2.54M
            for (size_t i = start; i < size; i++) {
170
2.54M
                if (!nullmap[i]) {
171
2.51M
                    if constexpr (NeedMin) {
172
2.51M
                        _min = std::min(_min, *(data + i));
173
2.51M
                    }
174
2.51M
                    if constexpr (NeedMax) {
175
2.51M
                        _max = std::max(_max, *(data + i));
176
2.51M
                    }
177
2.51M
                }
178
2.54M
            }
179
1.20k
        }
180
1.20k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
815
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
815
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
815
        } else {
168
815
            const T* data = (T*)column->get_raw_data().data;
169
3.77k
            for (size_t i = start; i < size; i++) {
170
2.95k
                if (!nullmap[i]) {
171
2.55k
                    if constexpr (NeedMin) {
172
2.55k
                        _min = std::min(_min, *(data + i));
173
2.55k
                    }
174
2.55k
                    if constexpr (NeedMax) {
175
2.55k
                        _max = std::max(_max, *(data + i));
176
2.55k
                    }
177
2.55k
                }
178
2.95k
            }
179
815
        }
180
815
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
97
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
97
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
97
        } else {
168
97
            const T* data = (T*)column->get_raw_data().data;
169
194
            for (size_t i = start; i < size; i++) {
170
97
                if (!nullmap[i]) {
171
0
                    if constexpr (NeedMin) {
172
0
                        _min = std::min(_min, *(data + i));
173
0
                    }
174
0
                    if constexpr (NeedMax) {
175
0
                        _max = std::max(_max, *(data + i));
176
0
                    }
177
0
                }
178
97
            }
179
97
        }
180
97
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
5
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
5
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
5
        } else {
168
5
            const T* data = (T*)column->get_raw_data().data;
169
35
            for (size_t i = start; i < size; i++) {
170
30
                if (!nullmap[i]) {
171
30
                    if constexpr (NeedMin) {
172
30
                        _min = std::min(_min, *(data + i));
173
30
                    }
174
30
                    if constexpr (NeedMax) {
175
30
                        _max = std::max(_max, *(data + i));
176
30
                    }
177
30
                }
178
30
            }
179
5
        }
180
5
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
12
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
12
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
12
        } else {
168
12
            const T* data = (T*)column->get_raw_data().data;
169
266
            for (size_t i = start; i < size; i++) {
170
254
                if (!nullmap[i]) {
171
218
                    if constexpr (NeedMin) {
172
218
                        _min = std::min(_min, *(data + i));
173
218
                    }
174
218
                    if constexpr (NeedMax) {
175
218
                        _max = std::max(_max, *(data + i));
176
218
                    }
177
218
                }
178
254
            }
179
12
        }
180
12
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
264
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
264
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
264
        } else {
168
264
            const T* data = (T*)column->get_raw_data().data;
169
545
            for (size_t i = start; i < size; i++) {
170
281
                if (!nullmap[i]) {
171
281
                    if constexpr (NeedMin) {
172
281
                        _min = std::min(_min, *(data + i));
173
281
                    }
174
281
                    if constexpr (NeedMax) {
175
281
                        _max = std::max(_max, *(data + i));
176
281
                    }
177
281
                }
178
281
            }
179
264
        }
180
264
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
184
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
184
        const auto size = column->size();
159
184
        if constexpr (std::is_same_v<T, std::string>) {
160
184
            if (column->is_column_string64()) {
161
0
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
0
                                     start, size);
163
184
            } else {
164
184
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
184
                                     start, size);
166
184
            }
167
        } else {
168
            const T* data = (T*)column->get_raw_data().data;
169
            for (size_t i = start; i < size; i++) {
170
                if (!nullmap[i]) {
171
                    if constexpr (NeedMin) {
172
                        _min = std::min(_min, *(data + i));
173
                    }
174
                    if constexpr (NeedMax) {
175
                        _max = std::max(_max, *(data + i));
176
                    }
177
                }
178
            }
179
        }
180
184
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
1
        } else {
168
1
            const T* data = (T*)column->get_raw_data().data;
169
3
            for (size_t i = start; i < size; i++) {
170
2
                if (!nullmap[i]) {
171
2
                    if constexpr (NeedMin) {
172
2
                        _min = std::min(_min, *(data + i));
173
2
                    }
174
2
                    if constexpr (NeedMax) {
175
2
                        _max = std::max(_max, *(data + i));
176
2
                    }
177
2
                }
178
2
            }
179
1
        }
180
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
140
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
140
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
140
        } else {
168
140
            const T* data = (T*)column->get_raw_data().data;
169
285
            for (size_t i = start; i < size; i++) {
170
145
                if (!nullmap[i]) {
171
144
                    if constexpr (NeedMin) {
172
144
                        _min = std::min(_min, *(data + i));
173
144
                    }
174
144
                    if constexpr (NeedMax) {
175
144
                        _max = std::max(_max, *(data + i));
176
144
                    }
177
144
                }
178
145
            }
179
140
        }
180
140
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
34
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
34
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
34
        } else {
168
34
            const T* data = (T*)column->get_raw_data().data;
169
114
            for (size_t i = start; i < size; i++) {
170
80
                if (!nullmap[i]) {
171
50
                    if constexpr (NeedMin) {
172
50
                        _min = std::min(_min, *(data + i));
173
50
                    }
174
50
                    if constexpr (NeedMax) {
175
50
                        _max = std::max(_max, *(data + i));
176
50
                    }
177
50
                }
178
80
            }
179
34
        }
180
34
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
3
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
3
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
3
        } else {
168
3
            const T* data = (T*)column->get_raw_data().data;
169
39
            for (size_t i = start; i < size; i++) {
170
36
                if (!nullmap[i]) {
171
36
                    if constexpr (NeedMin) {
172
36
                        _min = std::min(_min, *(data + i));
173
36
                    }
174
36
                    if constexpr (NeedMax) {
175
36
                        _max = std::max(_max, *(data + i));
176
36
                    }
177
36
                }
178
36
            }
179
3
        }
180
3
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
181
182
    T _max = type_limit<T>::min();
183
    T _min = type_limit<T>::max();
184
185
    bool _min_value_set = false;
186
};
187
188
template <class T>
189
using MinNumFunc = MinMaxNumFunc<T, false, true>;
190
191
template <class T>
192
using MaxNumFunc = MinMaxNumFunc<T, true, false>;
193
194
} // namespace doris