Coverage Report

Created: 2026-03-25 10:06

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
64.6k
    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
64.8k
    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
64.6k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIhLb1ELb1EEC2Eb
Line
Count
Source
49
217
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIaLb1ELb1EEC2Eb
Line
Count
Source
49
1.85k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIsLb1ELb1EEC2Eb
Line
Count
Source
49
742
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIiLb1ELb1EEC2Eb
Line
Count
Source
49
12.2k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIlLb1ELb1EEC2Eb
Line
Count
Source
49
45.1k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncInLb1ELb1EEC2Eb
Line
Count
Source
49
216
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIfLb1ELb1EEC2Eb
Line
Count
Source
49
290
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIdLb1ELb1EEC2Eb
Line
Count
Source
49
8
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EEC2Eb
Line
Count
Source
49
4
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
1.10k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
861
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EEC2Eb
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EEC2Eb
Line
Count
Source
49
1.08k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EEC2Eb
Line
Count
Source
49
69
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EEC2Eb
Line
Count
Source
49
543
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EEC2Eb
Line
Count
Source
49
219
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EEC2Eb
Line
Count
Source
49
85
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIjLb1ELb1EEC2Eb
Line
Count
Source
49
10
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIoLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
50
1.08k
    ~MinMaxNumFunc() override = default;
51
52
5.69k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
5.69k
        if (column->is_nullable()) {
54
3.59k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
3.59k
            const auto& col = nullable->get_nested_column_ptr();
56
3.59k
            const auto& nullmap = nullable->get_null_map_data();
57
3.59k
            if (nullable->has_null()) {
58
3.41k
                _update_batch(col, nullmap, start);
59
3.41k
                _contain_null = true;
60
3.41k
            } else {
61
183
                _update_batch(col, start);
62
183
            }
63
3.59k
        } else {
64
2.09k
            _update_batch(column, start);
65
2.09k
        }
66
5.69k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
24
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
24
        if (column->is_nullable()) {
54
24
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
24
            const auto& col = nullable->get_nested_column_ptr();
56
24
            const auto& nullmap = nullable->get_null_map_data();
57
24
            if (nullable->has_null()) {
58
24
                _update_batch(col, nullmap, start);
59
24
                _contain_null = true;
60
24
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
24
        } else {
64
0
            _update_batch(column, start);
65
0
        }
66
24
    }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
1
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1
        if (column->is_nullable()) {
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
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
506
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
506
        if (column->is_nullable()) {
54
504
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
504
            const auto& col = nullable->get_nested_column_ptr();
56
504
            const auto& nullmap = nullable->get_null_map_data();
57
504
            if (nullable->has_null()) {
58
452
                _update_batch(col, nullmap, start);
59
452
                _contain_null = true;
60
452
            } else {
61
52
                _update_batch(col, start);
62
52
            }
63
504
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
506
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
247
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
247
        if (column->is_nullable()) {
54
246
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
246
            const auto& col = nullable->get_nested_column_ptr();
56
246
            const auto& nullmap = nullable->get_null_map_data();
57
246
            if (nullable->has_null()) {
58
246
                _update_batch(col, nullmap, start);
59
246
                _contain_null = true;
60
246
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
246
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
247
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
2.95k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
2.95k
        if (column->is_nullable()) {
54
1.35k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
1.35k
            const auto& col = nullable->get_nested_column_ptr();
56
1.35k
            const auto& nullmap = nullable->get_null_map_data();
57
1.35k
            if (nullable->has_null()) {
58
1.32k
                _update_batch(col, nullmap, start);
59
1.32k
                _contain_null = true;
60
1.32k
            } else {
61
37
                _update_batch(col, start);
62
37
            }
63
1.60k
        } else {
64
1.60k
            _update_batch(column, start);
65
1.60k
        }
66
2.95k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
932
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
932
        if (column->is_nullable()) {
54
835
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
835
            const auto& col = nullable->get_nested_column_ptr();
56
835
            const auto& nullmap = nullable->get_null_map_data();
57
835
            if (nullable->has_null()) {
58
831
                _update_batch(col, nullmap, start);
59
831
                _contain_null = true;
60
831
            } else {
61
4
                _update_batch(col, start);
62
4
            }
63
835
        } else {
64
97
            _update_batch(column, start);
65
97
        }
66
932
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
118
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
118
        if (column->is_nullable()) {
54
4
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
4
            const auto& col = nullable->get_nested_column_ptr();
56
4
            const auto& nullmap = nullable->get_null_map_data();
57
4
            if (nullable->has_null()) {
58
4
                _update_batch(col, nullmap, start);
59
4
                _contain_null = true;
60
4
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
114
        } else {
64
114
            _update_batch(column, start);
65
114
        }
66
118
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
33
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
33
        if (column->is_nullable()) {
54
32
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
32
            const auto& col = nullable->get_nested_column_ptr();
56
32
            const auto& nullmap = nullable->get_null_map_data();
57
32
            if (nullable->has_null()) {
58
32
                _update_batch(col, nullmap, start);
59
32
                _contain_null = true;
60
32
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
32
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
33
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
4
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
4
        if (column->is_nullable()) {
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
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
2
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
2
        if (column->is_nullable()) {
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
2
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
2
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
295
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
295
        if (column->is_nullable()) {
54
83
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
83
            const auto& col = nullable->get_nested_column_ptr();
56
83
            const auto& nullmap = nullable->get_null_map_data();
57
83
            if (nullable->has_null()) {
58
81
                _update_batch(col, nullmap, start);
59
81
                _contain_null = true;
60
81
            } else {
61
2
                _update_batch(col, start);
62
2
            }
63
212
        } else {
64
212
            _update_batch(column, start);
65
212
        }
66
295
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
127
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
127
        if (column->is_nullable()) {
54
112
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
112
            const auto& col = nullable->get_nested_column_ptr();
56
112
            const auto& nullmap = nullable->get_null_map_data();
57
112
            if (nullable->has_null()) {
58
112
                _update_batch(col, nullmap, start);
59
112
                _contain_null = true;
60
112
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
112
        } else {
64
15
            _update_batch(column, start);
65
15
        }
66
127
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
52
261
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
261
        if (column->is_nullable()) {
54
220
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
220
            const auto& col = nullable->get_nested_column_ptr();
56
220
            const auto& nullmap = nullable->get_null_map_data();
57
220
            if (nullable->has_null()) {
58
168
                _update_batch(col, nullmap, start);
59
168
                _contain_null = true;
60
168
            } else {
61
52
                _update_batch(col, start);
62
52
            }
63
220
        } else {
64
41
            _update_batch(column, start);
65
41
        }
66
261
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
32
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
32
        if (column->is_nullable()) {
54
31
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
31
            const auto& col = nullable->get_nested_column_ptr();
56
31
            const auto& nullmap = nullable->get_null_map_data();
57
31
            if (nullable->has_null()) {
58
31
                _update_batch(col, nullmap, start);
59
31
                _contain_null = true;
60
31
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
31
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
32
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
56
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
56
        if (column->is_nullable()) {
54
52
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
52
            const auto& col = nullable->get_nested_column_ptr();
56
52
            const auto& nullmap = nullable->get_null_map_data();
57
52
            if (nullable->has_null()) {
58
52
                _update_batch(col, nullmap, start);
59
52
                _contain_null = true;
60
52
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
52
        } else {
64
4
            _update_batch(column, start);
65
4
        }
66
56
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
89
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
89
        if (column->is_nullable()) {
54
88
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
88
            const auto& col = nullable->get_nested_column_ptr();
56
88
            const auto& nullmap = nullable->get_null_map_data();
57
88
            if (nullable->has_null()) {
58
52
                _update_batch(col, nullmap, start);
59
52
                _contain_null = true;
60
52
            } else {
61
36
                _update_batch(col, start);
62
36
            }
63
88
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
89
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EEm
Line
Count
Source
52
8
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
8
        if (column->is_nullable()) {
54
7
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
7
            const auto& col = nullable->get_nested_column_ptr();
56
7
            const auto& nullmap = nullable->get_null_map_data();
57
7
            if (nullable->has_null()) {
58
7
                _update_batch(col, nullmap, start);
59
7
                _contain_null = true;
60
7
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
7
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
8
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE16insert_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 (column->is_nullable()) {
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
    }
_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 (column->is_nullable()) {
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
8.66k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
8.66k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
8.66k
        if constexpr (NeedMin) {
71
8.66k
            if constexpr (IsStringValue) {
72
679
                if (other_minmax->_min < _min || !_min_value_set) {
73
34
                    _min = other_minmax->_min;
74
34
                    _min_value_set = true;
75
34
                }
76
7.98k
            } else if (other_minmax->_min < _min) {
77
354
                _min = other_minmax->_min;
78
354
            }
79
8.66k
        }
80
8.66k
        if constexpr (NeedMax) {
81
8.66k
            if (other_minmax->_max > _max) {
82
364
                _max = other_minmax->_max;
83
364
            }
84
8.66k
        }
85
86
8.66k
        _contain_null |= minmax_func->contain_null();
87
8.66k
        return Status::OK();
88
8.66k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
168
    Status merge(MinMaxFuncBase* minmax_func) override {
69
168
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
168
        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
168
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
168
        }
80
168
        if constexpr (NeedMax) {
81
168
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
168
        }
85
86
168
        _contain_null |= minmax_func->contain_null();
87
168
        return Status::OK();
88
168
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
25
    Status merge(MinMaxFuncBase* minmax_func) override {
69
25
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
25
        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
25
            } else if (other_minmax->_min < _min) {
77
4
                _min = other_minmax->_min;
78
4
            }
79
25
        }
80
25
        if constexpr (NeedMax) {
81
25
            if (other_minmax->_max > _max) {
82
4
                _max = other_minmax->_max;
83
4
            }
84
25
        }
85
86
25
        _contain_null |= minmax_func->contain_null();
87
25
        return Status::OK();
88
25
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
64
    Status merge(MinMaxFuncBase* minmax_func) override {
69
64
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
64
        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
64
            } else if (other_minmax->_min < _min) {
77
14
                _min = other_minmax->_min;
78
14
            }
79
64
        }
80
64
        if constexpr (NeedMax) {
81
64
            if (other_minmax->_max > _max) {
82
19
                _max = other_minmax->_max;
83
19
            }
84
64
        }
85
86
64
        _contain_null |= minmax_func->contain_null();
87
64
        return Status::OK();
88
64
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
3.24k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
3.24k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
3.24k
        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
3.24k
            } else if (other_minmax->_min < _min) {
77
216
                _min = other_minmax->_min;
78
216
            }
79
3.24k
        }
80
3.24k
        if constexpr (NeedMax) {
81
3.24k
            if (other_minmax->_max > _max) {
82
202
                _max = other_minmax->_max;
83
202
            }
84
3.24k
        }
85
86
3.24k
        _contain_null |= minmax_func->contain_null();
87
3.24k
        return Status::OK();
88
3.24k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
2.49k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
2.49k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
2.49k
        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.49k
            } else if (other_minmax->_min < _min) {
77
46
                _min = other_minmax->_min;
78
46
            }
79
2.49k
        }
80
2.49k
        if constexpr (NeedMax) {
81
2.49k
            if (other_minmax->_max > _max) {
82
43
                _max = other_minmax->_max;
83
43
            }
84
2.49k
        }
85
86
2.49k
        _contain_null |= minmax_func->contain_null();
87
2.49k
        return Status::OK();
88
2.49k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
114
    Status merge(MinMaxFuncBase* minmax_func) override {
69
114
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
114
        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
114
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
114
        }
80
114
        if constexpr (NeedMax) {
81
114
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
114
        }
85
86
114
        _contain_null |= minmax_func->contain_null();
87
114
        return Status::OK();
88
114
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
224
    Status merge(MinMaxFuncBase* minmax_func) override {
69
224
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
224
        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
224
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
224
        }
80
224
        if constexpr (NeedMax) {
81
224
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
224
        }
85
86
224
        _contain_null |= minmax_func->contain_null();
87
224
        return Status::OK();
88
224
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIdLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
585
    Status merge(MinMaxFuncBase* minmax_func) override {
69
585
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
585
        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
585
            } else if (other_minmax->_min < _min) {
77
57
                _min = other_minmax->_min;
78
57
            }
79
585
        }
80
585
        if constexpr (NeedMax) {
81
585
            if (other_minmax->_max > _max) {
82
55
                _max = other_minmax->_max;
83
55
            }
84
585
        }
85
86
585
        _contain_null |= minmax_func->contain_null();
87
585
        return Status::OK();
88
585
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
594
    Status merge(MinMaxFuncBase* minmax_func) override {
69
594
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
594
        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
594
            } else if (other_minmax->_min < _min) {
77
2
                _min = other_minmax->_min;
78
2
            }
79
594
        }
80
594
        if constexpr (NeedMax) {
81
594
            if (other_minmax->_max > _max) {
82
3
                _max = other_minmax->_max;
83
3
            }
84
594
        }
85
86
594
        _contain_null |= minmax_func->contain_null();
87
594
        return Status::OK();
88
594
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
679
    Status merge(MinMaxFuncBase* minmax_func) override {
69
679
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
679
        if constexpr (NeedMin) {
71
679
            if constexpr (IsStringValue) {
72
679
                if (other_minmax->_min < _min || !_min_value_set) {
73
34
                    _min = other_minmax->_min;
74
34
                    _min_value_set = true;
75
34
                }
76
            } else if (other_minmax->_min < _min) {
77
                _min = other_minmax->_min;
78
            }
79
679
        }
80
679
        if constexpr (NeedMax) {
81
679
            if (other_minmax->_max > _max) {
82
21
                _max = other_minmax->_max;
83
21
            }
84
679
        }
85
86
679
        _contain_null |= minmax_func->contain_null();
87
679
        return Status::OK();
88
679
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
4
    Status merge(MinMaxFuncBase* minmax_func) override {
69
4
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
4
        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
4
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
4
        }
80
4
        if constexpr (NeedMax) {
81
4
            if (other_minmax->_max > _max) {
82
3
                _max = other_minmax->_max;
83
3
            }
84
4
        }
85
86
4
        _contain_null |= minmax_func->contain_null();
87
4
        return Status::OK();
88
4
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
323
    Status merge(MinMaxFuncBase* minmax_func) override {
69
323
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
323
        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
323
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
323
        }
80
323
        if constexpr (NeedMax) {
81
323
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
323
        }
85
86
323
        _contain_null |= minmax_func->contain_null();
87
323
        return Status::OK();
88
323
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
94
    Status merge(MinMaxFuncBase* minmax_func) override {
69
94
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
94
        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
94
            } else if (other_minmax->_min < _min) {
77
12
                _min = other_minmax->_min;
78
12
            }
79
94
        }
80
94
        if constexpr (NeedMax) {
81
94
            if (other_minmax->_max > _max) {
82
12
                _max = other_minmax->_max;
83
12
            }
84
94
        }
85
86
94
        _contain_null |= minmax_func->contain_null();
87
94
        return Status::OK();
88
94
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE5mergeEPNS_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
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
89
90
27.0k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_maxEv
Line
Count
Source
90
25
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_maxEv
Line
Count
Source
90
891
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_maxEv
Line
Count
Source
90
275
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_maxEv
Line
Count
Source
90
3.18k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_maxEv
Line
Count
Source
90
21.8k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_maxEv
Line
Count
Source
90
51
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_maxEv
Line
Count
Source
90
34
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_maxEv
Line
Count
Source
90
5
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
4
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
229
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
132
    void* get_max() override { return &_max; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_maxEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
188
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_maxEv
Line
Count
Source
90
31
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_maxEv
Line
Count
Source
90
109
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_maxEv
Line
Count
Source
90
48
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
21
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_maxEv
Line
Count
Source
90
6
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
91
92
27.0k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_minEv
Line
Count
Source
92
25
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_minEv
Line
Count
Source
92
874
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_minEv
Line
Count
Source
92
275
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_minEv
Line
Count
Source
92
3.18k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_minEv
Line
Count
Source
92
21.8k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_minEv
Line
Count
Source
92
46
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_minEv
Line
Count
Source
92
34
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_minEv
Line
Count
Source
92
5
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
229
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
132
    void* get_min() override { return &_min; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_minEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_minEv
Line
Count
Source
92
184
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_minEv
Line
Count
Source
92
31
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_minEv
Line
Count
Source
92
111
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_minEv
Line
Count
Source
92
56
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_minEv
Line
Count
Source
92
21
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_minEv
Line
Count
Source
92
6
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
93
94
1.10k
    Status assign(void* min_data, void* max_data) override {
95
1.10k
        if constexpr (IsStringValue) {
96
53
            _min_value_set = true;
97
53
        }
98
1.10k
        _min = *(T*)min_data;
99
1.10k
        _max = *(T*)max_data;
100
1.10k
        return Status::OK();
101
1.10k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE6assignEPvS2_
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_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
81
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
81
        _min = *(T*)min_data;
99
81
        _max = *(T*)max_data;
100
81
        return Status::OK();
101
81
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
196
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
196
        _min = *(T*)min_data;
99
196
        _max = *(T*)max_data;
100
196
        return Status::OK();
101
196
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
538
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
538
        _min = *(T*)min_data;
99
538
        _max = *(T*)max_data;
100
538
        return Status::OK();
101
538
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
77
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
77
        _min = *(T*)min_data;
99
77
        _max = *(T*)max_data;
100
77
        return Status::OK();
101
77
    }
_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
93
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
93
        _min = *(T*)min_data;
99
93
        _max = *(T*)max_data;
100
93
        return Status::OK();
101
93
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE6assignEPvS5_
Line
Count
Source
94
11
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
11
        _min = *(T*)min_data;
99
11
        _max = *(T*)max_data;
100
11
        return Status::OK();
101
11
    }
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
11
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
11
        _min = *(T*)min_data;
99
11
        _max = *(T*)max_data;
100
11
        return Status::OK();
101
11
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE6assignEPvS4_
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_12Decimal128V3ELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
31
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
31
        _min = *(T*)min_data;
99
31
        _max = *(T*)max_data;
100
31
        return Status::OK();
101
31
    }
_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.34k
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIhLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
94
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
228
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
735
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
76
    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
92
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
10
    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
60
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
10
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
40
    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.34k
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
1.34k
        if constexpr (NeedMin) {
108
1.34k
            f(filter->mutable_min_val(), _min);
109
1.34k
        }
110
1.34k
        if constexpr (NeedMax) {
111
1.34k
            f(filter->mutable_max_val(), _max);
112
1.34k
        }
113
1.34k
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIhLb1ELb1EE7_set_pbIZNS_13get_convertorIhEEDavEUlPNS_12PColumnValueERKhE_EEvPNS_13PMinMaxFilterET_
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
94
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
94
        if constexpr (NeedMin) {
108
94
            f(filter->mutable_min_val(), _min);
109
94
        }
110
94
        if constexpr (NeedMax) {
111
94
            f(filter->mutable_max_val(), _max);
112
94
        }
113
94
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7_set_pbIZNS_13get_convertorIsEEDavEUlPNS_12PColumnValueERKsE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
228
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
228
        if constexpr (NeedMin) {
108
228
            f(filter->mutable_min_val(), _min);
109
228
        }
110
228
        if constexpr (NeedMax) {
111
228
            f(filter->mutable_max_val(), _max);
112
228
        }
113
228
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7_set_pbIZNS_13get_convertorIiEEDavEUlPNS_12PColumnValueERKiE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
735
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
735
        if constexpr (NeedMin) {
108
735
            f(filter->mutable_min_val(), _min);
109
735
        }
110
735
        if constexpr (NeedMax) {
111
735
            f(filter->mutable_max_val(), _max);
112
735
        }
113
735
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7_set_pbIZNS_13get_convertorIlEEDavEUlPNS_12PColumnValueERKlE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
76
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
76
        if constexpr (NeedMin) {
108
76
            f(filter->mutable_min_val(), _min);
109
76
        }
110
76
        if constexpr (NeedMax) {
111
76
            f(filter->mutable_max_val(), _max);
112
76
        }
113
76
    }
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
92
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
92
        if constexpr (NeedMin) {
108
92
            f(filter->mutable_min_val(), _min);
109
92
        }
110
92
        if constexpr (NeedMax) {
111
92
            f(filter->mutable_max_val(), _max);
112
92
        }
113
92
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS3_EEDavEUlPNS_12PColumnValueERKS3_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
10
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
10
        if constexpr (NeedMin) {
108
10
            f(filter->mutable_min_val(), _min);
109
10
        }
110
10
        if constexpr (NeedMax) {
111
10
            f(filter->mutable_max_val(), _max);
112
10
        }
113
10
    }
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
60
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
60
        if constexpr (NeedMin) {
108
60
            f(filter->mutable_min_val(), _min);
109
60
        }
110
60
        if constexpr (NeedMax) {
111
60
            f(filter->mutable_max_val(), _max);
112
60
        }
113
60
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
10
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
10
        if constexpr (NeedMin) {
108
10
            f(filter->mutable_min_val(), _min);
109
10
        }
110
10
        if constexpr (NeedMax) {
111
10
            f(filter->mutable_max_val(), _max);
112
10
        }
113
10
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
40
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
40
        if constexpr (NeedMin) {
108
40
            f(filter->mutable_min_val(), _min);
109
40
        }
110
40
        if constexpr (NeedMax) {
111
40
            f(filter->mutable_max_val(), _max);
112
40
        }
113
40
    }
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
261
                              size_t start, size_t size) {
117
1.17k
        for (size_t i = start; i < size; i++) {
118
918
            if (nullmap == nullptr || !nullmap[i]) {
119
881
                if constexpr (NeedMin) {
120
881
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
269
                        _min = column_string.get_data_at(i).to_string();
122
269
                        _min_value_set = true;
123
269
                    }
124
881
                }
125
881
                if constexpr (NeedMax) {
126
881
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
419
                        _max = column_string.get_data_at(i).to_string();
128
419
                    }
129
881
                }
130
881
            }
131
918
        }
132
261
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrImEEEEvRKT_PKhmm
Line
Count
Source
116
37
                              size_t start, size_t size) {
117
137
        for (size_t i = start; i < size; i++) {
118
100
            if (nullmap == nullptr || !nullmap[i]) {
119
100
                if constexpr (NeedMin) {
120
100
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
57
                        _min = column_string.get_data_at(i).to_string();
122
57
                        _min_value_set = true;
123
57
                    }
124
100
                }
125
100
                if constexpr (NeedMax) {
126
100
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
44
                        _max = column_string.get_data_at(i).to_string();
128
44
                    }
129
100
                }
130
100
            }
131
100
        }
132
37
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrIjEEEEvRKT_PKhmm
Line
Count
Source
116
224
                              size_t start, size_t size) {
117
1.04k
        for (size_t i = start; i < size; i++) {
118
818
            if (nullmap == nullptr || !nullmap[i]) {
119
781
                if constexpr (NeedMin) {
120
781
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
212
                        _min = column_string.get_data_at(i).to_string();
122
212
                        _min_value_set = true;
123
212
                    }
124
781
                }
125
781
                if constexpr (NeedMax) {
126
781
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
375
                        _max = column_string.get_data_at(i).to_string();
128
375
                    }
129
781
                }
130
781
            }
131
818
        }
132
224
    }
133
134
2.28k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
2.28k
        const auto size = column->size();
136
2.28k
        if constexpr (std::is_same_v<T, std::string>) {
137
93
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
92
            } else {
141
92
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
92
                                     size);
143
92
            }
144
2.18k
        } else {
145
2.18k
            const T* data = (T*)column->get_raw_data().data;
146
2.19M
            for (size_t i = start; i < size; i++) {
147
2.19M
                if constexpr (NeedMin) {
148
2.19M
                    _min = std::min(_min, *(data + i));
149
2.19M
                }
150
2.19M
                if constexpr (NeedMax) {
151
2.19M
                    _max = std::max(_max, *(data + i));
152
2.19M
                }
153
2.19M
            }
154
2.18k
        }
155
2.28k
    }
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
56
    void _update_batch(const ColumnPtr& column, size_t start) {
135
56
        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
56
        } else {
145
56
            const T* data = (T*)column->get_raw_data().data;
146
194
            for (size_t i = start; i < size; i++) {
147
138
                if constexpr (NeedMin) {
148
138
                    _min = std::min(_min, *(data + i));
149
138
                }
150
138
                if constexpr (NeedMax) {
151
138
                    _max = std::max(_max, *(data + i));
152
138
                }
153
138
            }
154
56
        }
155
56
    }
_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
1.63k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1.63k
        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.63k
        } else {
145
1.63k
            const T* data = (T*)column->get_raw_data().data;
146
2.16M
            for (size_t i = start; i < size; i++) {
147
2.15M
                if constexpr (NeedMin) {
148
2.15M
                    _min = std::min(_min, *(data + i));
149
2.15M
                }
150
2.15M
                if constexpr (NeedMax) {
151
2.15M
                    _max = std::max(_max, *(data + i));
152
2.15M
                }
153
2.15M
            }
154
1.63k
        }
155
1.63k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
101
    void _update_batch(const ColumnPtr& column, size_t start) {
135
101
        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
101
        } else {
145
101
            const T* data = (T*)column->get_raw_data().data;
146
36.1k
            for (size_t i = start; i < size; i++) {
147
36.0k
                if constexpr (NeedMin) {
148
36.0k
                    _min = std::min(_min, *(data + i));
149
36.0k
                }
150
36.0k
                if constexpr (NeedMax) {
151
36.0k
                    _max = std::max(_max, *(data + i));
152
36.0k
                }
153
36.0k
            }
154
101
        }
155
101
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
114
    void _update_batch(const ColumnPtr& column, size_t start) {
135
114
        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
114
        } else {
145
114
            const T* data = (T*)column->get_raw_data().data;
146
253
            for (size_t i = start; i < size; i++) {
147
139
                if constexpr (NeedMin) {
148
139
                    _min = std::min(_min, *(data + i));
149
139
                }
150
139
                if constexpr (NeedMax) {
151
139
                    _max = std::max(_max, *(data + i));
152
139
                }
153
139
            }
154
114
        }
155
114
    }
_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
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_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
214
    void _update_batch(const ColumnPtr& column, size_t start) {
135
214
        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
214
        } else {
145
214
            const T* data = (T*)column->get_raw_data().data;
146
624
            for (size_t i = start; i < size; i++) {
147
410
                if constexpr (NeedMin) {
148
410
                    _min = std::min(_min, *(data + i));
149
410
                }
150
410
                if constexpr (NeedMax) {
151
410
                    _max = std::max(_max, *(data + i));
152
410
                }
153
410
            }
154
214
        }
155
214
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
134
15
    void _update_batch(const ColumnPtr& column, size_t start) {
135
15
        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
15
        } else {
145
15
            const T* data = (T*)column->get_raw_data().data;
146
57
            for (size_t i = start; i < size; i++) {
147
42
                if constexpr (NeedMin) {
148
42
                    _min = std::min(_min, *(data + i));
149
42
                }
150
42
                if constexpr (NeedMax) {
151
42
                    _max = std::max(_max, *(data + i));
152
42
                }
153
42
            }
154
15
        }
155
15
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
134
93
    void _update_batch(const ColumnPtr& column, size_t start) {
135
93
        const auto size = column->size();
136
93
        if constexpr (std::is_same_v<T, std::string>) {
137
93
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
92
            } else {
141
92
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
92
                                     size);
143
92
            }
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
93
    }
_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
4
    void _update_batch(const ColumnPtr& column, size_t start) {
135
4
        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
4
        } else {
145
4
            const T* data = (T*)column->get_raw_data().data;
146
51
            for (size_t i = start; i < size; i++) {
147
47
                if constexpr (NeedMin) {
148
47
                    _min = std::min(_min, *(data + i));
149
47
                }
150
47
                if constexpr (NeedMax) {
151
47
                    _max = std::max(_max, *(data + i));
152
47
                }
153
47
            }
154
4
        }
155
4
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
37
    void _update_batch(const ColumnPtr& column, size_t start) {
135
37
        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
37
        } else {
145
37
            const T* data = (T*)column->get_raw_data().data;
146
76
            for (size_t i = start; i < size; i++) {
147
39
                if constexpr (NeedMin) {
148
39
                    _min = std::min(_min, *(data + i));
149
39
                }
150
39
                if constexpr (NeedMax) {
151
39
                    _max = std::max(_max, *(data + i));
152
39
                }
153
39
            }
154
37
        }
155
37
    }
_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
3.41k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
3.41k
        const auto size = column->size();
159
3.41k
        if constexpr (std::is_same_v<T, std::string>) {
160
168
            if (column->is_column_string64()) {
161
36
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
36
                                     start, size);
163
132
            } else {
164
132
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
132
                                     start, size);
166
132
            }
167
3.24k
        } else {
168
3.24k
            const T* data = (T*)column->get_raw_data().data;
169
520k
            for (size_t i = start; i < size; i++) {
170
517k
                if (!nullmap[i]) {
171
515k
                    if constexpr (NeedMin) {
172
515k
                        _min = std::min(_min, *(data + i));
173
515k
                    }
174
515k
                    if constexpr (NeedMax) {
175
515k
                        _max = std::max(_max, *(data + i));
176
515k
                    }
177
515k
                }
178
517k
            }
179
3.24k
        }
180
3.41k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
24
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
24
        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
24
        } else {
168
24
            const T* data = (T*)column->get_raw_data().data;
169
72
            for (size_t i = start; i < size; i++) {
170
48
                if (!nullmap[i]) {
171
32
                    if constexpr (NeedMin) {
172
32
                        _min = std::min(_min, *(data + i));
173
32
                    }
174
32
                    if constexpr (NeedMax) {
175
32
                        _max = std::max(_max, *(data + i));
176
32
                    }
177
32
                }
178
48
            }
179
24
        }
180
24
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
450
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
450
        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
450
        } else {
168
450
            const T* data = (T*)column->get_raw_data().data;
169
1.39k
            for (size_t i = start; i < size; i++) {
170
942
                if (!nullmap[i]) {
171
930
                    if constexpr (NeedMin) {
172
930
                        _min = std::min(_min, *(data + i));
173
930
                    }
174
930
                    if constexpr (NeedMax) {
175
930
                        _max = std::max(_max, *(data + i));
176
930
                    }
177
930
                }
178
942
            }
179
450
        }
180
450
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
245
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
245
        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
245
        } else {
168
245
            const T* data = (T*)column->get_raw_data().data;
169
1.43k
            for (size_t i = start; i < size; i++) {
170
1.18k
                if (!nullmap[i]) {
171
1.06k
                    if constexpr (NeedMin) {
172
1.06k
                        _min = std::min(_min, *(data + i));
173
1.06k
                    }
174
1.06k
                    if constexpr (NeedMax) {
175
1.06k
                        _max = std::max(_max, *(data + i));
176
1.06k
                    }
177
1.06k
                }
178
1.18k
            }
179
245
        }
180
245
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1.32k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1.32k
        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.32k
        } else {
168
1.32k
            const T* data = (T*)column->get_raw_data().data;
169
513k
            for (size_t i = start; i < size; i++) {
170
511k
                if (!nullmap[i]) {
171
510k
                    if constexpr (NeedMin) {
172
510k
                        _min = std::min(_min, *(data + i));
173
510k
                    }
174
510k
                    if constexpr (NeedMax) {
175
510k
                        _max = std::max(_max, *(data + i));
176
510k
                    }
177
510k
                }
178
511k
            }
179
1.32k
        }
180
1.32k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
831
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
831
        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
831
        } else {
168
831
            const T* data = (T*)column->get_raw_data().data;
169
2.82k
            for (size_t i = start; i < size; i++) {
170
1.99k
                if (!nullmap[i]) {
171
1.77k
                    if constexpr (NeedMin) {
172
1.77k
                        _min = std::min(_min, *(data + i));
173
1.77k
                    }
174
1.77k
                    if constexpr (NeedMax) {
175
1.77k
                        _max = std::max(_max, *(data + i));
176
1.77k
                    }
177
1.77k
                }
178
1.99k
            }
179
831
        }
180
831
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
4
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
4
        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
4
        } else {
168
4
            const T* data = (T*)column->get_raw_data().data;
169
8
            for (size_t i = start; i < size; i++) {
170
4
                if (!nullmap[i]) {
171
4
                    if constexpr (NeedMin) {
172
4
                        _min = std::min(_min, *(data + i));
173
4
                    }
174
4
                    if constexpr (NeedMax) {
175
4
                        _max = std::max(_max, *(data + i));
176
4
                    }
177
4
                }
178
4
            }
179
4
        }
180
4
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
32
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
32
        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
32
        } else {
168
32
            const T* data = (T*)column->get_raw_data().data;
169
80
            for (size_t i = start; i < size; i++) {
170
48
                if (!nullmap[i]) {
171
40
                    if constexpr (NeedMin) {
172
40
                        _min = std::min(_min, *(data + i));
173
40
                    }
174
40
                    if constexpr (NeedMax) {
175
40
                        _max = std::max(_max, *(data + i));
176
40
                    }
177
40
                }
178
48
            }
179
32
        }
180
32
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_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
15
            for (size_t i = start; i < size; i++) {
170
12
                if (!nullmap[i]) {
171
12
                    if constexpr (NeedMin) {
172
12
                        _min = std::min(_min, *(data + i));
173
12
                    }
174
12
                    if constexpr (NeedMax) {
175
12
                        _max = std::max(_max, *(data + i));
176
12
                    }
177
12
                }
178
12
            }
179
3
        }
180
3
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
81
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
81
        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
81
        } else {
168
81
            const T* data = (T*)column->get_raw_data().data;
169
941
            for (size_t i = start; i < size; i++) {
170
860
                if (!nullmap[i]) {
171
814
                    if constexpr (NeedMin) {
172
814
                        _min = std::min(_min, *(data + i));
173
814
                    }
174
814
                    if constexpr (NeedMax) {
175
814
                        _max = std::max(_max, *(data + i));
176
814
                    }
177
814
                }
178
860
            }
179
81
        }
180
81
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
112
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
112
        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
112
        } else {
168
112
            const T* data = (T*)column->get_raw_data().data;
169
308
            for (size_t i = start; i < size; i++) {
170
196
                if (!nullmap[i]) {
171
175
                    if constexpr (NeedMin) {
172
175
                        _min = std::min(_min, *(data + i));
173
175
                    }
174
175
                    if constexpr (NeedMax) {
175
175
                        _max = std::max(_max, *(data + i));
176
175
                    }
177
175
                }
178
196
            }
179
112
        }
180
112
    }
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
168
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
168
        const auto size = column->size();
159
168
        if constexpr (std::is_same_v<T, std::string>) {
160
168
            if (column->is_column_string64()) {
161
36
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
36
                                     start, size);
163
132
            } else {
164
132
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
132
                                     start, size);
166
132
            }
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
168
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
31
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
31
        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
31
        } else {
168
31
            const T* data = (T*)column->get_raw_data().data;
169
123
            for (size_t i = start; i < size; i++) {
170
92
                if (!nullmap[i]) {
171
42
                    if constexpr (NeedMin) {
172
42
                        _min = std::min(_min, *(data + i));
173
42
                    }
174
42
                    if constexpr (NeedMax) {
175
42
                        _max = std::max(_max, *(data + i));
176
42
                    }
177
42
                }
178
92
            }
179
31
        }
180
31
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
52
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
52
        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
52
        } else {
168
52
            const T* data = (T*)column->get_raw_data().data;
169
128
            for (size_t i = start; i < size; i++) {
170
76
                if (!nullmap[i]) {
171
68
                    if constexpr (NeedMin) {
172
68
                        _min = std::min(_min, *(data + i));
173
68
                    }
174
68
                    if constexpr (NeedMax) {
175
68
                        _max = std::max(_max, *(data + i));
176
68
                    }
177
68
                }
178
76
            }
179
52
        }
180
52
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
52
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
52
        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
52
        } else {
168
52
            const T* data = (T*)column->get_raw_data().data;
169
170
            for (size_t i = start; i < size; i++) {
170
118
                if (!nullmap[i]) {
171
84
                    if constexpr (NeedMin) {
172
84
                        _min = std::min(_min, *(data + i));
173
84
                    }
174
84
                    if constexpr (NeedMax) {
175
84
                        _max = std::max(_max, *(data + i));
176
84
                    }
177
84
                }
178
118
            }
179
52
        }
180
52
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
7
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
7
        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
7
        } else {
168
7
            const T* data = (T*)column->get_raw_data().data;
169
179
            for (size_t i = start; i < size; i++) {
170
172
                if (!nullmap[i]) {
171
172
                    if constexpr (NeedMin) {
172
172
                        _min = std::min(_min, *(data + i));
173
172
                    }
174
172
                    if constexpr (NeedMax) {
175
172
                        _max = std::max(_max, *(data + i));
176
172
                    }
177
172
                }
178
172
            }
179
7
        }
180
7
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_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
101
            for (size_t i = start; i < size; i++) {
170
100
                if (!nullmap[i]) {
171
91
                    if constexpr (NeedMin) {
172
91
                        _min = std::min(_min, *(data + i));
173
91
                    }
174
91
                    if constexpr (NeedMax) {
175
91
                        _max = std::max(_max, *(data + i));
176
91
                    }
177
91
                }
178
100
            }
179
1
        }
180
1
    }
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