Coverage Report

Created: 2026-06-08 17:51

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
17.3k
    MinMaxFuncBase(bool null_aware) : FilterBase(null_aware) {}
33
    virtual void insert_fixed_len(const ColumnPtr& column, size_t start) = 0;
34
    virtual void* get_max() = 0;
35
    virtual void* get_min() = 0;
36
    // assign minmax data
37
    virtual Status assign(void* min_data, void* max_data) = 0;
38
    // merge from other minmax_func
39
    virtual Status merge(MinMaxFuncBase* minmax_func) = 0;
40
17.3k
    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
17.3k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIhLb1ELb1EEC2Eb
Line
Count
Source
49
17
    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
2.15k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIsLb1ELb1EEC2Eb
Line
Count
Source
49
1.40k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIiLb1ELb1EEC2Eb
Line
Count
Source
49
7.73k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIlLb1ELb1EEC2Eb
Line
Count
Source
49
3.93k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncInLb1ELb1EEC2Eb
Line
Count
Source
49
113
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIfLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIdLb1ELb1EEC2Eb
Line
Count
Source
49
29
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EEC2Eb
Line
Count
Source
49
40
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
698
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
262
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EEC2Eb
Line
Count
Source
49
457
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EEC2Eb
Line
Count
Source
49
188
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EEC2Eb
Line
Count
Source
49
80
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EEC2Eb
Line
Count
Source
49
197
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EEC2Eb
Line
Count
Source
49
30
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIjLb1ELb1EEC2Eb
Line
Count
Source
49
6
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIoLb1ELb1EEC2Eb
Line
Count
Source
49
2
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
50
457
    ~MinMaxNumFunc() override = default;
51
52
6.52k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
6.52k
        if (column->is_nullable()) {
54
4.27k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
4.27k
            const auto& col = nullable->get_nested_column_ptr();
56
4.27k
            const auto& nullmap = nullable->get_null_map_data();
57
4.27k
            if (nullable->has_null()) {
58
3.90k
                _update_batch(col, nullmap, start);
59
3.90k
                _contain_null = true;
60
3.90k
            } else {
61
378
                _update_batch(col, start);
62
378
            }
63
4.27k
        } else {
64
2.24k
            _update_batch(column, start);
65
2.24k
        }
66
6.52k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
3
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
3
        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
0
            _update_batch(column, start);
65
0
        }
66
3
    }
_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
869
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
869
        if (column->is_nullable()) {
54
862
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
862
            const auto& col = nullable->get_nested_column_ptr();
56
862
            const auto& nullmap = nullable->get_null_map_data();
57
862
            if (nullable->has_null()) {
58
682
                _update_batch(col, nullmap, start);
59
682
                _contain_null = true;
60
682
            } else {
61
180
                _update_batch(col, start);
62
180
            }
63
862
        } else {
64
7
            _update_batch(column, start);
65
7
        }
66
869
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
510
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
510
        if (column->is_nullable()) {
54
508
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
508
            const auto& col = nullable->get_nested_column_ptr();
56
508
            const auto& nullmap = nullable->get_null_map_data();
57
508
            if (nullable->has_null()) {
58
506
                _update_batch(col, nullmap, start);
59
506
                _contain_null = true;
60
506
            } else {
61
2
                _update_batch(col, start);
62
2
            }
63
508
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
510
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
3.34k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
3.34k
        if (column->is_nullable()) {
54
1.58k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
1.58k
            const auto& col = nullable->get_nested_column_ptr();
56
1.58k
            const auto& nullmap = nullable->get_null_map_data();
57
1.58k
            if (nullable->has_null()) {
58
1.45k
                _update_batch(col, nullmap, start);
59
1.45k
                _contain_null = true;
60
1.45k
            } else {
61
129
                _update_batch(col, start);
62
129
            }
63
1.75k
        } else {
64
1.75k
            _update_batch(column, start);
65
1.75k
        }
66
3.34k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1.01k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1.01k
        if (column->is_nullable()) {
54
899
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
899
            const auto& col = nullable->get_nested_column_ptr();
56
899
            const auto& nullmap = nullable->get_null_map_data();
57
899
            if (nullable->has_null()) {
58
853
                _update_batch(col, nullmap, start);
59
853
                _contain_null = true;
60
853
            } else {
61
46
                _update_batch(col, start);
62
46
            }
63
899
        } else {
64
120
            _update_batch(column, start);
65
120
        }
66
1.01k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
70
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
70
        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
70
        } else {
64
70
            _update_batch(column, start);
65
70
        }
66
70
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1
        if (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
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
20
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
20
        if (column->is_nullable()) {
54
19
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
19
            const auto& col = nullable->get_nested_column_ptr();
56
19
            const auto& nullmap = nullable->get_null_map_data();
57
19
            if (nullable->has_null()) {
58
17
                _update_batch(col, nullmap, start);
59
17
                _contain_null = true;
60
17
            } else {
61
2
                _update_batch(col, start);
62
2
            }
63
19
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
20
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
26
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
26
        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
2
            _update_batch(column, start);
65
2
        }
66
26
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
274
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
274
        if (column->is_nullable()) {
54
85
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
85
            const auto& col = nullable->get_nested_column_ptr();
56
85
            const auto& nullmap = nullable->get_null_map_data();
57
85
            if (nullable->has_null()) {
58
85
                _update_batch(col, nullmap, start);
59
85
                _contain_null = true;
60
85
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
189
        } else {
64
189
            _update_batch(column, start);
65
189
        }
66
274
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
97
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
97
        if (column->is_nullable()) {
54
64
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
64
            const auto& col = nullable->get_nested_column_ptr();
56
64
            const auto& nullmap = nullable->get_null_map_data();
57
64
            if (nullable->has_null()) {
58
64
                _update_batch(col, nullmap, start);
59
64
                _contain_null = true;
60
64
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
64
        } else {
64
33
            _update_batch(column, start);
65
33
        }
66
97
    }
_ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE16insert_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
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
0
            _update_batch(column, start);
65
0
        }
66
1
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
52
155
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
155
        if (column->is_nullable()) {
54
126
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
126
            const auto& col = nullable->get_nested_column_ptr();
56
126
            const auto& nullmap = nullable->get_null_map_data();
57
126
            if (nullable->has_null()) {
58
115
                _update_batch(col, nullmap, start);
59
115
                _contain_null = true;
60
115
            } else {
61
11
                _update_batch(col, start);
62
11
            }
63
126
        } else {
64
29
            _update_batch(column, start);
65
29
        }
66
155
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
82
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
82
        if (column->is_nullable()) {
54
80
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
80
            const auto& col = nullable->get_nested_column_ptr();
56
80
            const auto& nullmap = nullable->get_null_map_data();
57
81
            if (nullable->has_null()) {
58
81
                _update_batch(col, nullmap, start);
59
81
                _contain_null = true;
60
18.4E
            } else {
61
18.4E
                _update_batch(col, start);
62
18.4E
            }
63
80
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
82
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
11
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
11
        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
10
        } else {
64
10
            _update_batch(column, start);
65
10
        }
66
11
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
36
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
36
        if (column->is_nullable()) {
54
20
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
20
            const auto& col = nullable->get_nested_column_ptr();
56
20
            const auto& nullmap = nullable->get_null_map_data();
57
20
            if (nullable->has_null()) {
58
11
                _update_batch(col, nullmap, start);
59
11
                _contain_null = true;
60
11
            } else {
61
9
                _update_batch(col, start);
62
9
            }
63
20
        } else {
64
16
            _update_batch(column, start);
65
16
        }
66
36
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EEm
Line
Count
Source
52
5
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
5
        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
4
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
5
    }
_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
4.66k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
4.66k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
4.66k
        if constexpr (NeedMin) {
71
4.66k
            if constexpr (IsStringValue) {
72
134
                if (other_minmax->_min < _min || !_min_value_set) {
73
37
                    _min = other_minmax->_min;
74
37
                    _min_value_set = true;
75
37
                }
76
4.52k
            } else if (other_minmax->_min < _min) {
77
546
                _min = other_minmax->_min;
78
546
            }
79
4.66k
        }
80
4.66k
        if constexpr (NeedMax) {
81
4.66k
            if (other_minmax->_max > _max) {
82
547
                _max = other_minmax->_max;
83
547
            }
84
4.66k
        }
85
86
4.66k
        _contain_null |= minmax_func->contain_null();
87
4.66k
        return Status::OK();
88
4.66k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
10
    Status merge(MinMaxFuncBase* minmax_func) override {
69
10
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
10
        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
10
            } else if (other_minmax->_min < _min) {
77
2
                _min = other_minmax->_min;
78
2
            }
79
10
        }
80
10
        if constexpr (NeedMax) {
81
10
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
10
        }
85
86
10
        _contain_null |= minmax_func->contain_null();
87
10
        return Status::OK();
88
10
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
69
    Status merge(MinMaxFuncBase* minmax_func) override {
69
69
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
69
        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
69
            } else if (other_minmax->_min < _min) {
77
11
                _min = other_minmax->_min;
78
11
            }
79
69
        }
80
69
        if constexpr (NeedMax) {
81
69
            if (other_minmax->_max > _max) {
82
12
                _max = other_minmax->_max;
83
12
            }
84
69
        }
85
86
69
        _contain_null |= minmax_func->contain_null();
87
69
        return Status::OK();
88
69
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
243
    Status merge(MinMaxFuncBase* minmax_func) override {
69
243
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
243
        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
243
            } else if (other_minmax->_min < _min) {
77
39
                _min = other_minmax->_min;
78
39
            }
79
243
        }
80
243
        if constexpr (NeedMax) {
81
243
            if (other_minmax->_max > _max) {
82
49
                _max = other_minmax->_max;
83
49
            }
84
243
        }
85
86
243
        _contain_null |= minmax_func->contain_null();
87
243
        return Status::OK();
88
243
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
2.43k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
2.43k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
2.43k
        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.43k
            } else if (other_minmax->_min < _min) {
77
248
                _min = other_minmax->_min;
78
248
            }
79
2.43k
        }
80
2.43k
        if constexpr (NeedMax) {
81
2.43k
            if (other_minmax->_max > _max) {
82
234
                _max = other_minmax->_max;
83
234
            }
84
2.43k
        }
85
86
2.43k
        _contain_null |= minmax_func->contain_null();
87
2.43k
        return Status::OK();
88
2.43k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
1.20k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
1.20k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
1.20k
        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
1.20k
            } else if (other_minmax->_min < _min) {
77
148
                _min = other_minmax->_min;
78
148
            }
79
1.20k
        }
80
1.20k
        if constexpr (NeedMax) {
81
1.20k
            if (other_minmax->_max > _max) {
82
135
                _max = other_minmax->_max;
83
135
            }
84
1.20k
        }
85
86
1.20k
        _contain_null |= minmax_func->contain_null();
87
1.20k
        return Status::OK();
88
1.20k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
71
    Status merge(MinMaxFuncBase* minmax_func) override {
69
71
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
71
        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
71
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
71
        }
80
71
        if constexpr (NeedMax) {
81
71
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
71
        }
85
86
71
        _contain_null |= minmax_func->contain_null();
87
71
        return Status::OK();
88
71
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
11
    Status merge(MinMaxFuncBase* minmax_func) override {
69
11
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
11
        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
11
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
11
        }
80
11
        if constexpr (NeedMax) {
81
11
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
11
        }
85
86
11
        _contain_null |= minmax_func->contain_null();
87
11
        return Status::OK();
88
11
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
12
    Status merge(MinMaxFuncBase* minmax_func) override {
69
12
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
12
        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
12
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
12
        }
80
12
        if constexpr (NeedMax) {
81
12
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
12
        }
85
86
12
        _contain_null |= minmax_func->contain_null();
87
12
        return Status::OK();
88
12
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
321
    Status merge(MinMaxFuncBase* minmax_func) override {
69
321
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
321
        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
321
            } else if (other_minmax->_min < _min) {
77
67
                _min = other_minmax->_min;
78
67
            }
79
321
        }
80
321
        if constexpr (NeedMax) {
81
321
            if (other_minmax->_max > _max) {
82
58
                _max = other_minmax->_max;
83
58
            }
84
321
        }
85
86
321
        _contain_null |= minmax_func->contain_null();
87
321
        return Status::OK();
88
321
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
35
    Status merge(MinMaxFuncBase* minmax_func) override {
69
35
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
35
        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
35
            } else if (other_minmax->_min < _min) {
77
12
                _min = other_minmax->_min;
78
12
            }
79
35
        }
80
35
        if constexpr (NeedMax) {
81
35
            if (other_minmax->_max > _max) {
82
16
                _max = other_minmax->_max;
83
16
            }
84
35
        }
85
86
35
        _contain_null |= minmax_func->contain_null();
87
35
        return Status::OK();
88
35
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
134
    Status merge(MinMaxFuncBase* minmax_func) override {
69
134
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
134
        if constexpr (NeedMin) {
71
134
            if constexpr (IsStringValue) {
72
134
                if (other_minmax->_min < _min || !_min_value_set) {
73
37
                    _min = other_minmax->_min;
74
37
                    _min_value_set = true;
75
37
                }
76
            } else if (other_minmax->_min < _min) {
77
                _min = other_minmax->_min;
78
            }
79
134
        }
80
134
        if constexpr (NeedMax) {
81
134
            if (other_minmax->_max > _max) {
82
19
                _max = other_minmax->_max;
83
19
            }
84
134
        }
85
86
134
        _contain_null |= minmax_func->contain_null();
87
134
        return Status::OK();
88
134
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
41
    Status merge(MinMaxFuncBase* minmax_func) override {
69
41
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
41
        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
41
            } else if (other_minmax->_min < _min) {
77
12
                _min = other_minmax->_min;
78
12
            }
79
41
        }
80
41
        if constexpr (NeedMax) {
81
41
            if (other_minmax->_max > _max) {
82
12
                _max = other_minmax->_max;
83
12
            }
84
41
        }
85
86
41
        _contain_null |= minmax_func->contain_null();
87
41
        return Status::OK();
88
41
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
10
    Status merge(MinMaxFuncBase* minmax_func) override {
69
10
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
10
        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
10
            } else if (other_minmax->_min < _min) {
77
2
                _min = other_minmax->_min;
78
2
            }
79
10
        }
80
10
        if constexpr (NeedMax) {
81
10
            if (other_minmax->_max > _max) {
82
4
                _max = other_minmax->_max;
83
4
            }
84
10
        }
85
86
10
        _contain_null |= minmax_func->contain_null();
87
10
        return Status::OK();
88
10
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
63
    Status merge(MinMaxFuncBase* minmax_func) override {
69
63
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
63
        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
63
            } else if (other_minmax->_min < _min) {
77
5
                _min = other_minmax->_min;
78
5
            }
79
63
        }
80
63
        if constexpr (NeedMax) {
81
63
            if (other_minmax->_max > _max) {
82
7
                _max = other_minmax->_max;
83
7
            }
84
63
        }
85
86
63
        _contain_null |= minmax_func->contain_null();
87
63
        return Status::OK();
88
63
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
89
90
5.88k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_maxEv
Line
Count
Source
90
1.03k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_maxEv
Line
Count
Source
90
543
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_maxEv
Line
Count
Source
90
2.21k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_maxEv
Line
Count
Source
90
1.35k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_maxEv
Line
Count
Source
90
15
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_maxEv
Line
Count
Source
90
10
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
16
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
172
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
124
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
1
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
204
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_maxEv
Line
Count
Source
90
82
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_maxEv
Line
Count
Source
90
40
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_maxEv
Line
Count
Source
90
58
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
16
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_maxEv
Line
Count
Source
90
4
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
91
92
5.83k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_minEv
Line
Count
Source
92
974
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_minEv
Line
Count
Source
92
549
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_minEv
Line
Count
Source
92
2.20k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_minEv
Line
Count
Source
92
1.35k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_minEv
Line
Count
Source
92
22
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_minEv
Line
Count
Source
92
3
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_minEv
Line
Count
Source
92
16
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
173
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
123
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_minEv
Line
Count
Source
92
1
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_minEv
Line
Count
Source
92
205
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_minEv
Line
Count
Source
92
80
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_minEv
Line
Count
Source
92
40
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_minEv
Line
Count
Source
92
59
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_minEv
Line
Count
Source
92
16
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
93
94
1.16k
    Status assign(void* min_data, void* max_data) override {
95
1.16k
        if constexpr (IsStringValue) {
96
49
            _min_value_set = true;
97
49
        }
98
1.16k
        _min = *(T*)min_data;
99
1.16k
        _max = *(T*)max_data;
100
1.16k
        return Status::OK();
101
1.16k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
5
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
5
        _min = *(T*)min_data;
99
5
        _max = *(T*)max_data;
100
5
        return Status::OK();
101
5
    }
_ZN5doris13MinMaxNumFuncINS_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
59
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
59
        _min = *(T*)min_data;
99
59
        _max = *(T*)max_data;
100
59
        return Status::OK();
101
59
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
151
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
151
        _min = *(T*)min_data;
99
151
        _max = *(T*)max_data;
100
151
        return Status::OK();
101
151
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
509
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
509
        _min = *(T*)min_data;
99
509
        _max = *(T*)max_data;
100
509
        return Status::OK();
101
509
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
229
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
229
        _min = *(T*)min_data;
99
229
        _max = *(T*)max_data;
100
229
        return Status::OK();
101
229
    }
_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
91
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
91
        _min = *(T*)min_data;
99
91
        _max = *(T*)max_data;
100
91
        return Status::OK();
101
91
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE6assignEPvS5_
Line
Count
Source
94
25
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
25
        _min = *(T*)min_data;
99
25
        _max = *(T*)max_data;
100
25
        return Status::OK();
101
25
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE6assignEPvS3_
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE6assignEPvS8_
Line
Count
Source
94
49
    Status assign(void* min_data, void* max_data) override {
95
49
        if constexpr (IsStringValue) {
96
49
            _min_value_set = true;
97
49
        }
98
49
        _min = *(T*)min_data;
99
49
        _max = *(T*)max_data;
100
49
        return Status::OK();
101
49
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
21
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
21
        _min = *(T*)min_data;
99
21
        _max = *(T*)max_data;
100
21
        return Status::OK();
101
21
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
5
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
5
        _min = *(T*)min_data;
99
5
        _max = *(T*)max_data;
100
5
        return Status::OK();
101
5
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
13
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
13
        _min = *(T*)min_data;
99
13
        _max = *(T*)max_data;
100
13
        return Status::OK();
101
13
    }
_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.81k
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
4
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
138
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
256
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
925
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
279
    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
90
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
24
    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
46
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
20
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
4
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
24
    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.81k
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
1.81k
        if constexpr (NeedMin) {
108
1.81k
            f(filter->mutable_min_val(), _min);
109
1.81k
        }
110
1.81k
        if constexpr (NeedMax) {
111
1.81k
            f(filter->mutable_max_val(), _max);
112
1.81k
        }
113
1.81k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7_set_pbIZNS_13get_convertorIhEEDavEUlPNS_12PColumnValueERKhE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
4
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
4
        if constexpr (NeedMin) {
108
4
            f(filter->mutable_min_val(), _min);
109
4
        }
110
4
        if constexpr (NeedMax) {
111
4
            f(filter->mutable_max_val(), _max);
112
4
        }
113
4
    }
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
138
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
138
        if constexpr (NeedMin) {
108
138
            f(filter->mutable_min_val(), _min);
109
138
        }
110
138
        if constexpr (NeedMax) {
111
138
            f(filter->mutable_max_val(), _max);
112
138
        }
113
138
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7_set_pbIZNS_13get_convertorIsEEDavEUlPNS_12PColumnValueERKsE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
256
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
256
        if constexpr (NeedMin) {
108
256
            f(filter->mutable_min_val(), _min);
109
256
        }
110
256
        if constexpr (NeedMax) {
111
256
            f(filter->mutable_max_val(), _max);
112
256
        }
113
256
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7_set_pbIZNS_13get_convertorIiEEDavEUlPNS_12PColumnValueERKiE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
925
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
925
        if constexpr (NeedMin) {
108
925
            f(filter->mutable_min_val(), _min);
109
925
        }
110
925
        if constexpr (NeedMax) {
111
925
            f(filter->mutable_max_val(), _max);
112
925
        }
113
925
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7_set_pbIZNS_13get_convertorIlEEDavEUlPNS_12PColumnValueERKlE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
279
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
279
        if constexpr (NeedMin) {
108
279
            f(filter->mutable_min_val(), _min);
109
279
        }
110
279
        if constexpr (NeedMax) {
111
279
            f(filter->mutable_max_val(), _max);
112
279
        }
113
279
    }
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
90
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
90
        if constexpr (NeedMin) {
108
90
            f(filter->mutable_min_val(), _min);
109
90
        }
110
90
        if constexpr (NeedMax) {
111
90
            f(filter->mutable_max_val(), _max);
112
90
        }
113
90
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS3_EEDavEUlPNS_12PColumnValueERKS3_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
24
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
24
        if constexpr (NeedMin) {
108
24
            f(filter->mutable_min_val(), _min);
109
24
        }
110
24
        if constexpr (NeedMax) {
111
24
            f(filter->mutable_max_val(), _max);
112
24
        }
113
24
    }
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
46
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
46
        if constexpr (NeedMin) {
108
46
            f(filter->mutable_min_val(), _min);
109
46
        }
110
46
        if constexpr (NeedMax) {
111
46
            f(filter->mutable_max_val(), _max);
112
46
        }
113
46
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
20
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
20
        if constexpr (NeedMin) {
108
20
            f(filter->mutable_min_val(), _min);
109
20
        }
110
20
        if constexpr (NeedMax) {
111
20
            f(filter->mutable_max_val(), _max);
112
20
        }
113
20
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
4
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
4
        if constexpr (NeedMin) {
108
4
            f(filter->mutable_min_val(), _min);
109
4
        }
110
4
        if constexpr (NeedMax) {
111
4
            f(filter->mutable_max_val(), _max);
112
4
        }
113
4
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
24
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
24
        if constexpr (NeedMin) {
108
24
            f(filter->mutable_min_val(), _min);
109
24
        }
110
24
        if constexpr (NeedMax) {
111
24
            f(filter->mutable_max_val(), _max);
112
24
        }
113
24
    }
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
155
                              size_t start, size_t size) {
117
645
        for (size_t i = start; i < size; i++) {
118
490
            if (nullmap == nullptr || !nullmap[i]) {
119
484
                if constexpr (NeedMin) {
120
484
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
182
                        _min = column_string.get_data_at(i).to_string();
122
182
                        _min_value_set = true;
123
182
                    }
124
484
                }
125
484
                if constexpr (NeedMax) {
126
484
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
355
                        _max = column_string.get_data_at(i).to_string();
128
355
                    }
129
484
                }
130
484
            }
131
490
        }
132
155
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrImEEEEvRKT_PKhmm
Line
Count
Source
116
1
                              size_t start, size_t size) {
117
9
        for (size_t i = start; i < size; i++) {
118
8
            if (nullmap == nullptr || !nullmap[i]) {
119
8
                if constexpr (NeedMin) {
120
8
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
1
                        _min = column_string.get_data_at(i).to_string();
122
1
                        _min_value_set = true;
123
1
                    }
124
8
                }
125
8
                if constexpr (NeedMax) {
126
8
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
8
                        _max = column_string.get_data_at(i).to_string();
128
8
                    }
129
8
                }
130
8
            }
131
8
        }
132
1
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrIjEEEEvRKT_PKhmm
Line
Count
Source
116
154
                              size_t start, size_t size) {
117
636
        for (size_t i = start; i < size; i++) {
118
482
            if (nullmap == nullptr || !nullmap[i]) {
119
476
                if constexpr (NeedMin) {
120
476
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
181
                        _min = column_string.get_data_at(i).to_string();
122
181
                        _min_value_set = true;
123
181
                    }
124
476
                }
125
476
                if constexpr (NeedMax) {
126
476
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
347
                        _max = column_string.get_data_at(i).to_string();
128
347
                    }
129
476
                }
130
476
            }
131
482
        }
132
154
    }
133
134
2.62k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
2.62k
        const auto size = column->size();
136
2.62k
        if constexpr (std::is_same_v<T, std::string>) {
137
40
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
39
            } else {
141
39
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
39
                                     size);
143
39
            }
144
2.58k
        } else {
145
2.58k
            const T* data = (T*)column->get_raw_data().data;
146
3.75M
            for (size_t i = start; i < size; i++) {
147
3.75M
                if constexpr (NeedMin) {
148
3.75M
                    _min = std::min(_min, *(data + i));
149
3.75M
                }
150
3.75M
                if constexpr (NeedMax) {
151
3.75M
                    _max = std::max(_max, *(data + i));
152
3.75M
                }
153
3.75M
            }
154
2.58k
        }
155
2.62k
    }
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
185
    void _update_batch(const ColumnPtr& column, size_t start) {
135
185
        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
185
        } else {
145
185
            const T* data = (T*)column->get_raw_data().data;
146
568
            for (size_t i = start; i < size; i++) {
147
383
                if constexpr (NeedMin) {
148
383
                    _min = std::min(_min, *(data + i));
149
383
                }
150
383
                if constexpr (NeedMax) {
151
383
                    _max = std::max(_max, *(data + i));
152
383
                }
153
383
            }
154
185
        }
155
185
    }
_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.89k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1.89k
        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.89k
        } else {
145
1.89k
            const T* data = (T*)column->get_raw_data().data;
146
3.75M
            for (size_t i = start; i < size; i++) {
147
3.75M
                if constexpr (NeedMin) {
148
3.75M
                    _min = std::min(_min, *(data + i));
149
3.75M
                }
150
3.75M
                if constexpr (NeedMax) {
151
3.75M
                    _max = std::max(_max, *(data + i));
152
3.75M
                }
153
3.75M
            }
154
1.89k
        }
155
1.89k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
166
    void _update_batch(const ColumnPtr& column, size_t start) {
135
166
        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
166
        } else {
145
166
            const T* data = (T*)column->get_raw_data().data;
146
868
            for (size_t i = start; i < size; i++) {
147
702
                if constexpr (NeedMin) {
148
702
                    _min = std::min(_min, *(data + i));
149
702
                }
150
702
                if constexpr (NeedMax) {
151
702
                    _max = std::max(_max, *(data + i));
152
702
                }
153
702
            }
154
166
        }
155
166
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
70
    void _update_batch(const ColumnPtr& column, size_t start) {
135
70
        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
70
        } else {
145
70
            const T* data = (T*)column->get_raw_data().data;
146
155
            for (size_t i = start; i < size; i++) {
147
85
                if constexpr (NeedMin) {
148
85
                    _min = std::min(_min, *(data + i));
149
85
                }
150
85
                if constexpr (NeedMax) {
151
85
                    _max = std::max(_max, *(data + i));
152
85
                }
153
85
            }
154
70
        }
155
70
    }
_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
3
    void _update_batch(const ColumnPtr& column, size_t start) {
135
3
        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
3
        } else {
145
3
            const T* data = (T*)column->get_raw_data().data;
146
8
            for (size_t i = start; i < size; i++) {
147
5
                if constexpr (NeedMin) {
148
5
                    _min = std::min(_min, *(data + i));
149
5
                }
150
5
                if constexpr (NeedMax) {
151
5
                    _max = std::max(_max, *(data + i));
152
5
                }
153
5
            }
154
3
        }
155
3
    }
_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
189
    void _update_batch(const ColumnPtr& column, size_t start) {
135
189
        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
189
        } else {
145
189
            const T* data = (T*)column->get_raw_data().data;
146
520
            for (size_t i = start; i < size; i++) {
147
331
                if constexpr (NeedMin) {
148
331
                    _min = std::min(_min, *(data + i));
149
331
                }
150
331
                if constexpr (NeedMax) {
151
331
                    _max = std::max(_max, *(data + i));
152
331
                }
153
331
            }
154
189
        }
155
189
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
134
33
    void _update_batch(const ColumnPtr& column, size_t start) {
135
33
        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
33
        } else {
145
33
            const T* data = (T*)column->get_raw_data().data;
146
136
            for (size_t i = start; i < size; i++) {
147
103
                if constexpr (NeedMin) {
148
103
                    _min = std::min(_min, *(data + i));
149
103
                }
150
103
                if constexpr (NeedMax) {
151
103
                    _max = std::max(_max, *(data + i));
152
103
                }
153
103
            }
154
33
        }
155
33
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
134
40
    void _update_batch(const ColumnPtr& column, size_t start) {
135
40
        const auto size = column->size();
136
40
        if constexpr (std::is_same_v<T, std::string>) {
137
40
            if (column->is_column_string64()) {
138
1
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
1
                                     size);
140
39
            } else {
141
39
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
39
                                     size);
143
39
            }
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
40
    }
_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
10
    void _update_batch(const ColumnPtr& column, size_t start) {
135
10
        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
10
        } else {
145
10
            const T* data = (T*)column->get_raw_data().data;
146
72
            for (size_t i = start; i < size; i++) {
147
62
                if constexpr (NeedMin) {
148
62
                    _min = std::min(_min, *(data + i));
149
62
                }
150
62
                if constexpr (NeedMax) {
151
62
                    _max = std::max(_max, *(data + i));
152
62
                }
153
62
            }
154
10
        }
155
10
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
25
    void _update_batch(const ColumnPtr& column, size_t start) {
135
25
        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
25
        } else {
145
25
            const T* data = (T*)column->get_raw_data().data;
146
58
            for (size_t i = start; i < size; i++) {
147
33
                if constexpr (NeedMin) {
148
33
                    _min = std::min(_min, *(data + i));
149
33
                }
150
33
                if constexpr (NeedMax) {
151
33
                    _max = std::max(_max, *(data + i));
152
33
                }
153
33
            }
154
25
        }
155
25
    }
_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.90k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
3.90k
        const auto size = column->size();
159
3.90k
        if constexpr (std::is_same_v<T, std::string>) {
160
115
            if (column->is_column_string64()) {
161
0
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
0
                                     start, size);
163
115
            } else {
164
115
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
115
                                     start, size);
166
115
            }
167
3.78k
        } else {
168
3.78k
            const T* data = (T*)column->get_raw_data().data;
169
4.58M
            for (size_t i = start; i < size; i++) {
170
4.58M
                if (!nullmap[i]) {
171
4.58M
                    if constexpr (NeedMin) {
172
4.58M
                        _min = std::min(_min, *(data + i));
173
4.58M
                    }
174
4.58M
                    if constexpr (NeedMax) {
175
4.58M
                        _max = std::max(_max, *(data + i));
176
4.58M
                    }
177
4.58M
                }
178
4.57M
            }
179
3.78k
        }
180
3.90k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE13_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
7
            for (size_t i = start; i < size; i++) {
170
4
                if (!nullmap[i]) {
171
3
                    if constexpr (NeedMin) {
172
3
                        _min = std::min(_min, *(data + i));
173
3
                    }
174
3
                    if constexpr (NeedMax) {
175
3
                        _max = std::max(_max, *(data + i));
176
3
                    }
177
3
                }
178
4
            }
179
3
        }
180
3
    }
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
684
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
684
        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
684
        } else {
168
684
            const T* data = (T*)column->get_raw_data().data;
169
2.33k
            for (size_t i = start; i < size; i++) {
170
1.65k
                if (!nullmap[i]) {
171
1.63k
                    if constexpr (NeedMin) {
172
1.63k
                        _min = std::min(_min, *(data + i));
173
1.63k
                    }
174
1.63k
                    if constexpr (NeedMax) {
175
1.63k
                        _max = std::max(_max, *(data + i));
176
1.63k
                    }
177
1.63k
                }
178
1.65k
            }
179
684
        }
180
684
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
508
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
508
        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
508
        } else {
168
508
            const T* data = (T*)column->get_raw_data().data;
169
2.75k
            for (size_t i = start; i < size; i++) {
170
2.24k
                if (!nullmap[i]) {
171
2.09k
                    if constexpr (NeedMin) {
172
2.09k
                        _min = std::min(_min, *(data + i));
173
2.09k
                    }
174
2.09k
                    if constexpr (NeedMax) {
175
2.09k
                        _max = std::max(_max, *(data + i));
176
2.09k
                    }
177
2.09k
                }
178
2.24k
            }
179
508
        }
180
508
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1.45k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1.45k
        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.45k
        } else {
168
1.45k
            const T* data = (T*)column->get_raw_data().data;
169
4.57M
            for (size_t i = start; i < size; i++) {
170
4.57M
                if (!nullmap[i]) {
171
4.57M
                    if constexpr (NeedMin) {
172
4.57M
                        _min = std::min(_min, *(data + i));
173
4.57M
                    }
174
4.57M
                    if constexpr (NeedMax) {
175
4.57M
                        _max = std::max(_max, *(data + i));
176
4.57M
                    }
177
4.57M
                }
178
4.56M
            }
179
1.45k
        }
180
1.45k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
853
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
853
        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
853
        } else {
168
853
            const T* data = (T*)column->get_raw_data().data;
169
4.75k
            for (size_t i = start; i < size; i++) {
170
3.89k
                if (!nullmap[i]) {
171
3.43k
                    if constexpr (NeedMin) {
172
3.43k
                        _min = std::min(_min, *(data + i));
173
3.43k
                    }
174
3.43k
                    if constexpr (NeedMax) {
175
3.43k
                        _max = std::max(_max, *(data + i));
176
3.43k
                    }
177
3.43k
                }
178
3.89k
            }
179
853
        }
180
853
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIfLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
17
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
17
        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
17
        } else {
168
17
            const T* data = (T*)column->get_raw_data().data;
169
49
            for (size_t i = start; i < size; i++) {
170
32
                if (!nullmap[i]) {
171
20
                    if constexpr (NeedMin) {
172
20
                        _min = std::min(_min, *(data + i));
173
20
                    }
174
20
                    if constexpr (NeedMax) {
175
20
                        _max = std::max(_max, *(data + i));
176
20
                    }
177
20
                }
178
32
            }
179
17
        }
180
17
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_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
138
            for (size_t i = start; i < size; i++) {
170
114
                if (!nullmap[i]) {
171
114
                    if constexpr (NeedMin) {
172
114
                        _min = std::min(_min, *(data + i));
173
114
                    }
174
114
                    if constexpr (NeedMax) {
175
114
                        _max = std::max(_max, *(data + i));
176
114
                    }
177
114
                }
178
114
            }
179
24
        }
180
24
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
85
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
85
        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
85
        } else {
168
85
            const T* data = (T*)column->get_raw_data().data;
169
687
            for (size_t i = start; i < size; i++) {
170
602
                if (!nullmap[i]) {
171
559
                    if constexpr (NeedMin) {
172
559
                        _min = std::min(_min, *(data + i));
173
559
                    }
174
559
                    if constexpr (NeedMax) {
175
559
                        _max = std::max(_max, *(data + i));
176
559
                    }
177
559
                }
178
602
            }
179
85
        }
180
85
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
64
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
64
        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
64
        } else {
168
64
            const T* data = (T*)column->get_raw_data().data;
169
232
            for (size_t i = start; i < size; i++) {
170
168
                if (!nullmap[i]) {
171
153
                    if constexpr (NeedMin) {
172
153
                        _min = std::min(_min, *(data + i));
173
153
                    }
174
153
                    if constexpr (NeedMax) {
175
153
                        _max = std::max(_max, *(data + i));
176
153
                    }
177
153
                }
178
168
            }
179
64
        }
180
64
    }
_ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_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
4
            for (size_t i = start; i < size; i++) {
170
3
                if (!nullmap[i]) {
171
3
                    if constexpr (NeedMin) {
172
3
                        _min = std::min(_min, *(data + i));
173
3
                    }
174
3
                    if constexpr (NeedMax) {
175
3
                        _max = std::max(_max, *(data + i));
176
3
                    }
177
3
                }
178
3
            }
179
1
        }
180
1
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
115
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
115
        const auto size = column->size();
159
115
        if constexpr (std::is_same_v<T, std::string>) {
160
115
            if (column->is_column_string64()) {
161
0
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
0
                                     start, size);
163
115
            } else {
164
115
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
115
                                     start, size);
166
115
            }
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
115
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_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
261
            for (size_t i = start; i < size; i++) {
170
180
                if (!nullmap[i]) {
171
136
                    if constexpr (NeedMin) {
172
136
                        _min = std::min(_min, *(data + i));
173
136
                    }
174
136
                    if constexpr (NeedMax) {
175
136
                        _max = std::max(_max, *(data + i));
176
136
                    }
177
136
                }
178
180
            }
179
81
        }
180
81
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
1
        } else {
168
1
            const T* data = (T*)column->get_raw_data().data;
169
6
            for (size_t i = start; i < size; i++) {
170
5
                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
5
            }
179
1
        }
180
1
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
11
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
11
        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
11
        } else {
168
11
            const T* data = (T*)column->get_raw_data().data;
169
43
            for (size_t i = start; i < size; i++) {
170
32
                if (!nullmap[i]) {
171
25
                    if constexpr (NeedMin) {
172
25
                        _min = std::min(_min, *(data + i));
173
25
                    }
174
25
                    if constexpr (NeedMax) {
175
25
                        _max = std::max(_max, *(data + i));
176
25
                    }
177
25
                }
178
32
            }
179
11
        }
180
11
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_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
128
            for (size_t i = start; i < size; i++) {
170
124
                if (!nullmap[i]) {
171
124
                    if constexpr (NeedMin) {
172
124
                        _min = std::min(_min, *(data + i));
173
124
                    }
174
124
                    if constexpr (NeedMax) {
175
124
                        _max = std::max(_max, *(data + i));
176
124
                    }
177
124
                }
178
124
            }
179
4
        }
180
4
    }
_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