Coverage Report

Created: 2026-03-21 03:59

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
62.8k
    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
63.0k
    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
62.8k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIhLb1ELb1EEC2Eb
Line
Count
Source
49
226
    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
302
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIsLb1ELb1EEC2Eb
Line
Count
Source
49
150
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIiLb1ELb1EEC2Eb
Line
Count
Source
49
12.0k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIlLb1ELb1EEC2Eb
Line
Count
Source
49
45.3k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncInLb1ELb1EEC2Eb
Line
Count
Source
49
110
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIfLb1ELb1EEC2Eb
Line
Count
Source
49
290
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIdLb1ELb1EEC2Eb
Line
Count
Source
49
10
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EEC2Eb
Line
Count
Source
49
8
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
1.06k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EEC2Eb
Line
Count
Source
49
881
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EEC2Eb
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EEC2Eb
Line
Count
Source
49
1.59k
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EEC2Eb
Line
Count
Source
49
6
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EEC2Eb
Line
Count
Source
49
547
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EEC2Eb
Line
Count
Source
49
217
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EEC2Eb
Line
Count
Source
49
35
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIjLb1ELb1EEC2Eb
Line
Count
Source
49
22
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
_ZN5doris13MinMaxNumFuncIoLb1ELb1EEC2Eb
Line
Count
Source
49
10
    MinMaxNumFunc(bool null_aware) : MinMaxFuncBase(null_aware) {}
50
1.59k
    ~MinMaxNumFunc() override = default;
51
52
7.11k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
7.11k
        if (column->is_nullable()) {
54
4.12k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
4.12k
            const auto& col = nullable->get_nested_column_ptr();
56
4.12k
            const auto& nullmap = nullable->get_null_map_data();
57
4.12k
            if (nullable->has_null()) {
58
3.79k
                _update_batch(col, nullmap, start);
59
3.79k
                _contain_null = true;
60
3.79k
            } else {
61
327
                _update_batch(col, start);
62
327
            }
63
4.12k
        } else {
64
2.98k
            _update_batch(column, start);
65
2.98k
        }
66
7.11k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
25
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
25
        if (column->is_nullable()) {
54
25
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
25
            const auto& col = nullable->get_nested_column_ptr();
56
25
            const auto& nullmap = nullable->get_null_map_data();
57
25
            if (nullable->has_null()) {
58
25
                _update_batch(col, nullmap, start);
59
25
                _contain_null = true;
60
25
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
25
        } else {
64
0
            _update_batch(column, start);
65
0
        }
66
25
    }
_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
83
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
83
        if (column->is_nullable()) {
54
82
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
82
            const auto& col = nullable->get_nested_column_ptr();
56
82
            const auto& nullmap = nullable->get_null_map_data();
57
82
            if (nullable->has_null()) {
58
61
                _update_batch(col, nullmap, start);
59
61
                _contain_null = true;
60
61
            } else {
61
21
                _update_batch(col, start);
62
21
            }
63
82
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
83
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
36
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
36
        if (column->is_nullable()) {
54
35
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
35
            const auto& col = nullable->get_nested_column_ptr();
56
35
            const auto& nullmap = nullable->get_null_map_data();
57
35
            if (nullable->has_null()) {
58
35
                _update_batch(col, nullmap, start);
59
35
                _contain_null = true;
60
35
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
35
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
36
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
4.01k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
4.01k
        if (column->is_nullable()) {
54
2.32k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
2.32k
            const auto& col = nullable->get_nested_column_ptr();
56
2.32k
            const auto& nullmap = nullable->get_null_map_data();
57
2.32k
            if (nullable->has_null()) {
58
2.19k
                _update_batch(col, nullmap, start);
59
2.19k
                _contain_null = true;
60
2.19k
            } else {
61
124
                _update_batch(col, start);
62
124
            }
63
2.32k
        } else {
64
1.68k
            _update_batch(column, start);
65
1.68k
        }
66
4.01k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
1.96k
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
1.96k
        if (column->is_nullable()) {
54
1.09k
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
1.09k
            const auto& col = nullable->get_nested_column_ptr();
56
1.09k
            const auto& nullmap = nullable->get_null_map_data();
57
1.09k
            if (nullable->has_null()) {
58
997
                _update_batch(col, nullmap, start);
59
997
                _contain_null = true;
60
997
            } else {
61
98
                _update_batch(col, start);
62
98
            }
63
1.09k
        } else {
64
871
            _update_batch(column, start);
65
871
        }
66
1.96k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
51
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
51
        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
47
        } else {
64
47
            _update_batch(column, start);
65
47
        }
66
51
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
33
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
33
        if (column->is_nullable()) {
54
32
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
32
            const auto& col = nullable->get_nested_column_ptr();
56
32
            const auto& nullmap = nullable->get_null_map_data();
57
32
            if (nullable->has_null()) {
58
32
                _update_batch(col, nullmap, start);
59
32
                _contain_null = true;
60
32
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
32
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
33
    }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
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
0
                _update_batch(col, nullmap, start);
59
0
                _contain_null = true;
60
4
            } else {
61
4
                _update_batch(col, start);
62
4
            }
63
4
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
5
    }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
4
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
4
        if (column->is_nullable()) {
54
2
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
2
            const auto& col = nullable->get_nested_column_ptr();
56
2
            const auto& nullmap = nullable->get_null_map_data();
57
2
            if (nullable->has_null()) {
58
2
                _update_batch(col, nullmap, start);
59
2
                _contain_null = true;
60
2
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
2
        } else {
64
2
            _update_batch(column, start);
65
2
        }
66
4
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
330
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
330
        if (column->is_nullable()) {
54
59
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
59
            const auto& col = nullable->get_nested_column_ptr();
56
59
            const auto& nullmap = nullable->get_null_map_data();
57
59
            if (nullable->has_null()) {
58
57
                _update_batch(col, nullmap, start);
59
57
                _contain_null = true;
60
57
            } else {
61
2
                _update_batch(col, start);
62
2
            }
63
271
        } else {
64
271
            _update_batch(column, start);
65
271
        }
66
330
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
52
151
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
151
        if (column->is_nullable()) {
54
109
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
109
            const auto& col = nullable->get_nested_column_ptr();
56
109
            const auto& nullmap = nullable->get_null_map_data();
57
109
            if (nullable->has_null()) {
58
109
                _update_batch(col, nullmap, start);
59
109
                _contain_null = true;
60
109
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
109
        } else {
64
42
            _update_batch(column, start);
65
42
        }
66
151
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
52
252
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
252
        if (column->is_nullable()) {
54
201
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
201
            const auto& col = nullable->get_nested_column_ptr();
56
201
            const auto& nullmap = nullable->get_null_map_data();
57
201
            if (nullable->has_null()) {
58
154
                _update_batch(col, nullmap, start);
59
154
                _contain_null = true;
60
154
            } else {
61
47
                _update_batch(col, start);
62
47
            }
63
201
        } else {
64
51
            _update_batch(column, start);
65
51
        }
66
252
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
2
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
2
        if (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
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
52
57
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
57
        if (column->is_nullable()) {
54
53
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
53
            const auto& col = nullable->get_nested_column_ptr();
56
53
            const auto& nullmap = nullable->get_null_map_data();
57
53
            if (nullable->has_null()) {
58
53
                _update_batch(col, nullmap, start);
59
53
                _contain_null = true;
60
53
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
53
        } else {
64
4
            _update_batch(column, start);
65
4
        }
66
57
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
52
69
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
69
        if (column->is_nullable()) {
54
66
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
66
            const auto& col = nullable->get_nested_column_ptr();
56
66
            const auto& nullmap = nullable->get_null_map_data();
57
66
            if (nullable->has_null()) {
58
35
                _update_batch(col, nullmap, start);
59
35
                _contain_null = true;
60
35
            } else {
61
31
                _update_batch(col, start);
62
31
            }
63
66
        } else {
64
3
            _update_batch(column, start);
65
3
        }
66
69
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EEm
Line
Count
Source
52
19
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
19
        if (column->is_nullable()) {
54
18
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
18
            const auto& col = nullable->get_nested_column_ptr();
56
18
            const auto& nullmap = nullable->get_null_map_data();
57
18
            if (nullable->has_null()) {
58
18
                _update_batch(col, nullmap, start);
59
18
                _contain_null = true;
60
18
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
18
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
19
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
52
11
    void insert_fixed_len(const ColumnPtr& column, size_t start) override {
53
11
        if (column->is_nullable()) {
54
10
            const auto* nullable = assert_cast<const ColumnNullable*>(column.get());
55
10
            const auto& col = nullable->get_nested_column_ptr();
56
10
            const auto& nullmap = nullable->get_null_map_data();
57
10
            if (nullable->has_null()) {
58
10
                _update_batch(col, nullmap, start);
59
10
                _contain_null = true;
60
10
            } else {
61
0
                _update_batch(col, start);
62
0
            }
63
10
        } else {
64
1
            _update_batch(column, start);
65
1
        }
66
11
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE16insert_fixed_lenERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_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
    }
67
68
9.99k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
9.99k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
9.99k
        if constexpr (NeedMin) {
71
9.99k
            if constexpr (IsStringValue) {
72
868
                if (other_minmax->_min < _min || !_min_value_set) {
73
26
                    _min = other_minmax->_min;
74
26
                    _min_value_set = true;
75
26
                }
76
9.12k
            } else if (other_minmax->_min < _min) {
77
461
                _min = other_minmax->_min;
78
461
            }
79
9.99k
        }
80
9.99k
        if constexpr (NeedMax) {
81
9.99k
            if (other_minmax->_max > _max) {
82
564
                _max = other_minmax->_max;
83
564
            }
84
9.99k
        }
85
86
9.99k
        _contain_null |= minmax_func->contain_null();
87
9.99k
        return Status::OK();
88
9.99k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
171
    Status merge(MinMaxFuncBase* minmax_func) override {
69
171
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
171
        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
171
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
171
        }
80
171
        if constexpr (NeedMax) {
81
171
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
171
        }
85
86
171
        _contain_null |= minmax_func->contain_null();
87
171
        return Status::OK();
88
171
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
6
    Status merge(MinMaxFuncBase* minmax_func) override {
69
6
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
6
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
6
            } else if (other_minmax->_min < _min) {
77
2
                _min = other_minmax->_min;
78
2
            }
79
6
        }
80
6
        if constexpr (NeedMax) {
81
6
            if (other_minmax->_max > _max) {
82
2
                _max = other_minmax->_max;
83
2
            }
84
6
        }
85
86
6
        _contain_null |= minmax_func->contain_null();
87
6
        return Status::OK();
88
6
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
24
    Status merge(MinMaxFuncBase* minmax_func) override {
69
24
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
24
        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
24
            } else if (other_minmax->_min < _min) {
77
4
                _min = other_minmax->_min;
78
4
            }
79
24
        }
80
24
        if constexpr (NeedMax) {
81
24
            if (other_minmax->_max > _max) {
82
4
                _max = other_minmax->_max;
83
4
            }
84
24
        }
85
86
24
        _contain_null |= minmax_func->contain_null();
87
24
        return Status::OK();
88
24
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
4.79k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
4.79k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
4.79k
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
4.79k
            } else if (other_minmax->_min < _min) {
77
335
                _min = other_minmax->_min;
78
335
            }
79
4.79k
        }
80
4.79k
        if constexpr (NeedMax) {
81
4.79k
            if (other_minmax->_max > _max) {
82
421
                _max = other_minmax->_max;
83
421
            }
84
4.79k
        }
85
86
4.79k
        _contain_null |= minmax_func->contain_null();
87
4.79k
        return Status::OK();
88
4.79k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
2.23k
    Status merge(MinMaxFuncBase* minmax_func) override {
69
2.23k
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
2.23k
        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.23k
            } else if (other_minmax->_min < _min) {
77
53
                _min = other_minmax->_min;
78
53
            }
79
2.23k
        }
80
2.23k
        if constexpr (NeedMax) {
81
2.23k
            if (other_minmax->_max > _max) {
82
58
                _max = other_minmax->_max;
83
58
            }
84
2.23k
        }
85
86
2.23k
        _contain_null |= minmax_func->contain_null();
87
2.23k
        return Status::OK();
88
2.23k
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
66
    Status merge(MinMaxFuncBase* minmax_func) override {
69
66
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
66
        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
66
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
66
        }
80
66
        if constexpr (NeedMax) {
81
66
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
66
        }
85
86
66
        _contain_null |= minmax_func->contain_null();
87
66
        return Status::OK();
88
66
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
224
    Status merge(MinMaxFuncBase* minmax_func) override {
69
224
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
224
        if constexpr (NeedMin) {
71
            if constexpr (IsStringValue) {
72
                if (other_minmax->_min < _min || !_min_value_set) {
73
                    _min = other_minmax->_min;
74
                    _min_value_set = true;
75
                }
76
224
            } else if (other_minmax->_min < _min) {
77
0
                _min = other_minmax->_min;
78
0
            }
79
224
        }
80
224
        if constexpr (NeedMax) {
81
224
            if (other_minmax->_max > _max) {
82
0
                _max = other_minmax->_max;
83
0
            }
84
224
        }
85
86
224
        _contain_null |= minmax_func->contain_null();
87
224
        return Status::OK();
88
224
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIdLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
650
    Status merge(MinMaxFuncBase* minmax_func) override {
69
650
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
650
        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
650
            } else if (other_minmax->_min < _min) {
77
59
                _min = other_minmax->_min;
78
59
            }
79
650
        }
80
650
        if constexpr (NeedMax) {
81
650
            if (other_minmax->_max > _max) {
82
46
                _max = other_minmax->_max;
83
46
            }
84
650
        }
85
86
650
        _contain_null |= minmax_func->contain_null();
87
650
        return Status::OK();
88
650
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
608
    Status merge(MinMaxFuncBase* minmax_func) override {
69
608
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
608
        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
608
            } else if (other_minmax->_min < _min) {
77
1
                _min = other_minmax->_min;
78
1
            }
79
608
        }
80
608
        if constexpr (NeedMax) {
81
608
            if (other_minmax->_max > _max) {
82
1
                _max = other_minmax->_max;
83
1
            }
84
608
        }
85
86
608
        _contain_null |= minmax_func->contain_null();
87
608
        return Status::OK();
88
608
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
868
    Status merge(MinMaxFuncBase* minmax_func) override {
69
868
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
868
        if constexpr (NeedMin) {
71
868
            if constexpr (IsStringValue) {
72
868
                if (other_minmax->_min < _min || !_min_value_set) {
73
26
                    _min = other_minmax->_min;
74
26
                    _min_value_set = true;
75
26
                }
76
            } else if (other_minmax->_min < _min) {
77
                _min = other_minmax->_min;
78
            }
79
868
        }
80
868
        if constexpr (NeedMax) {
81
868
            if (other_minmax->_max > _max) {
82
22
                _max = other_minmax->_max;
83
22
            }
84
868
        }
85
86
868
        _contain_null |= minmax_func->contain_null();
87
868
        return Status::OK();
88
868
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
313
    Status merge(MinMaxFuncBase* minmax_func) override {
69
313
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
313
        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
313
            } else if (other_minmax->_min < _min) {
77
2
                _min = other_minmax->_min;
78
2
            }
79
313
        }
80
313
        if constexpr (NeedMax) {
81
313
            if (other_minmax->_max > _max) {
82
3
                _max = other_minmax->_max;
83
3
            }
84
313
        }
85
86
313
        _contain_null |= minmax_func->contain_null();
87
313
        return Status::OK();
88
313
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Line
Count
Source
68
40
    Status merge(MinMaxFuncBase* minmax_func) override {
69
40
        auto* other_minmax = static_cast<MinMaxNumFunc<T>*>(minmax_func);
70
40
        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
40
            } else if (other_minmax->_min < _min) {
77
4
                _min = other_minmax->_min;
78
4
            }
79
40
        }
80
40
        if constexpr (NeedMax) {
81
40
            if (other_minmax->_max > _max) {
82
6
                _max = other_minmax->_max;
83
6
            }
84
40
        }
85
86
40
        _contain_null |= minmax_func->contain_null();
87
40
        return Status::OK();
88
40
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIjLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIoLb1ELb1EE5mergeEPNS_14MinMaxFuncBaseE
89
90
26.5k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_maxEv
Line
Count
Source
90
25
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_maxEv
Line
Count
Source
90
146
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_maxEv
Line
Count
Source
90
59
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_maxEv
Line
Count
Source
90
3.66k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_maxEv
Line
Count
Source
90
21.5k
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE7get_maxEv
Line
Count
Source
90
23
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE7get_maxEv
Line
Count
Source
90
34
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_maxEv
Line
Count
Source
90
2
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_maxEv
Line
Count
Source
90
6
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
183
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
137
    void* get_max() override { return &_max; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_maxEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
477
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_maxEv
Line
Count
Source
90
4
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_maxEv
Line
Count
Source
90
118
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_maxEv
Line
Count
Source
90
67
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_maxEv
Line
Count
Source
90
20
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_maxEv
Line
Count
Source
90
12
    void* get_max() override { return &_max; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_maxEv
Line
Count
Source
90
6
    void* get_max() override { return &_max; }
91
92
26.5k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7get_minEv
Line
Count
Source
92
25
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7get_minEv
Line
Count
Source
92
2
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7get_minEv
Line
Count
Source
92
139
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7get_minEv
Line
Count
Source
92
59
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7get_minEv
Line
Count
Source
92
3.66k
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7get_minEv
Line
Count
Source
92
21.5k
    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
34
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIdLb1ELb1EE7get_minEv
Line
Count
Source
92
6
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE7get_minEv
Line
Count
Source
92
6
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
183
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7get_minEv
Line
Count
Source
92
137
    void* get_min() override { return &_min; }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE7get_minEv
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE7get_minEv
Line
Count
Source
92
467
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7get_minEv
Line
Count
Source
92
4
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7get_minEv
Line
Count
Source
92
118
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7get_minEv
Line
Count
Source
92
71
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE7get_minEv
Line
Count
Source
92
20
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE7get_minEv
Line
Count
Source
92
12
    void* get_min() override { return &_min; }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE7get_minEv
Line
Count
Source
92
6
    void* get_min() override { return &_min; }
93
94
984
    Status assign(void* min_data, void* max_data) override {
95
984
        if constexpr (IsStringValue) {
96
55
            _min_value_set = true;
97
55
        }
98
984
        _min = *(T*)min_data;
99
984
        _max = *(T*)max_data;
100
984
        return Status::OK();
101
984
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
3
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
3
        _min = *(T*)min_data;
99
3
        _max = *(T*)max_data;
100
3
        return Status::OK();
101
3
    }
_ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
29
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
29
        _min = *(T*)min_data;
99
29
        _max = *(T*)max_data;
100
29
        return Status::OK();
101
29
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
33
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
33
        _min = *(T*)min_data;
99
33
        _max = *(T*)max_data;
100
33
        return Status::OK();
101
33
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
641
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
641
        _min = *(T*)min_data;
99
641
        _max = *(T*)max_data;
100
641
        return Status::OK();
101
641
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
99
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
99
        _min = *(T*)min_data;
99
99
        _max = *(T*)max_data;
100
99
        return Status::OK();
101
99
    }
_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
71
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
71
        _min = *(T*)min_data;
99
71
        _max = *(T*)max_data;
100
71
        return Status::OK();
101
71
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE6assignEPvS5_
Line
Count
Source
94
3
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
3
        _min = *(T*)min_data;
99
3
        _max = *(T*)max_data;
100
3
        return Status::OK();
101
3
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE6assignEPvS3_
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE6assignEPvS8_
Line
Count
Source
94
55
    Status assign(void* min_data, void* max_data) override {
95
55
        if constexpr (IsStringValue) {
96
55
            _min_value_set = true;
97
55
        }
98
55
        _min = *(T*)min_data;
99
55
        _max = *(T*)max_data;
100
55
        return Status::OK();
101
55
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE6assignEPvS4_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE6assignEPvS3_
Line
Count
Source
94
39
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
39
        _min = *(T*)min_data;
99
39
        _max = *(T*)max_data;
100
39
        return Status::OK();
101
39
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE6assignEPvS7_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE6assignEPvS2_
Line
Count
Source
94
1
    Status assign(void* min_data, void* max_data) override {
95
        if constexpr (IsStringValue) {
96
            _min_value_set = true;
97
        }
98
1
        _min = *(T*)min_data;
99
1
        _max = *(T*)max_data;
100
1
        return Status::OK();
101
1
    }
102
103
1.21k
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
2
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
28
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
32
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
832
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
124
    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
71
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
2
    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
70
    void to_pb(PMinMaxFilter* filter) override { _set_pb(filter, get_convertor<T>()); }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE5to_pbEPNS_13PMinMaxFilterE
Line
Count
Source
103
54
    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.21k
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
1.21k
        if constexpr (NeedMin) {
108
1.21k
            f(filter->mutable_min_val(), _min);
109
1.21k
        }
110
1.21k
        if constexpr (NeedMax) {
111
1.21k
            f(filter->mutable_max_val(), _max);
112
1.21k
        }
113
1.21k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE7_set_pbIZNS_13get_convertorIhEEDavEUlPNS_12PColumnValueERKhE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
2
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
2
        if constexpr (NeedMin) {
108
2
            f(filter->mutable_min_val(), _min);
109
2
        }
110
2
        if constexpr (NeedMax) {
111
2
            f(filter->mutable_max_val(), _max);
112
2
        }
113
2
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_14DecimalV2ValueELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncIaLb1ELb1EE7_set_pbIZNS_13get_convertorIaEEDavEUlPNS_12PColumnValueERKaE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
28
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
28
        if constexpr (NeedMin) {
108
28
            f(filter->mutable_min_val(), _min);
109
28
        }
110
28
        if constexpr (NeedMax) {
111
28
            f(filter->mutable_max_val(), _max);
112
28
        }
113
28
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE7_set_pbIZNS_13get_convertorIsEEDavEUlPNS_12PColumnValueERKsE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
32
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
32
        if constexpr (NeedMin) {
108
32
            f(filter->mutable_min_val(), _min);
109
32
        }
110
32
        if constexpr (NeedMax) {
111
32
            f(filter->mutable_max_val(), _max);
112
32
        }
113
32
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE7_set_pbIZNS_13get_convertorIiEEDavEUlPNS_12PColumnValueERKiE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
832
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
832
        if constexpr (NeedMin) {
108
832
            f(filter->mutable_min_val(), _min);
109
832
        }
110
832
        if constexpr (NeedMax) {
111
832
            f(filter->mutable_max_val(), _max);
112
832
        }
113
832
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE7_set_pbIZNS_13get_convertorIlEEDavEUlPNS_12PColumnValueERKlE_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
124
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
124
        if constexpr (NeedMin) {
108
124
            f(filter->mutable_min_val(), _min);
109
124
        }
110
124
        if constexpr (NeedMax) {
111
124
            f(filter->mutable_max_val(), _max);
112
124
        }
113
124
    }
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
71
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
71
        if constexpr (NeedMin) {
108
71
            f(filter->mutable_min_val(), _min);
109
71
        }
110
71
        if constexpr (NeedMax) {
111
71
            f(filter->mutable_max_val(), _max);
112
71
        }
113
71
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE7_set_pbIZNS_13get_convertorIS3_EEDavEUlPNS_12PColumnValueERKS3_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
2
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
2
        if constexpr (NeedMin) {
108
2
            f(filter->mutable_min_val(), _min);
109
2
        }
110
2
        if constexpr (NeedMax) {
111
2
            f(filter->mutable_max_val(), _max);
112
2
        }
113
2
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_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
70
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
70
        if constexpr (NeedMin) {
108
70
            f(filter->mutable_min_val(), _min);
109
70
        }
110
70
        if constexpr (NeedMax) {
111
70
            f(filter->mutable_max_val(), _max);
112
70
        }
113
70
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE7_set_pbIZNS_13get_convertorIS2_EEDavEUlPNS_12PColumnValueERKS2_E_EEvPNS_13PMinMaxFilterET_
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE7_set_pbIZNS_13get_convertorIS1_EEDavEUlPNS_12PColumnValueERKS1_E_EEvPNS_13PMinMaxFilterET_
Line
Count
Source
106
54
    void _set_pb(PMinMaxFilter* filter, auto f) {
107
54
        if constexpr (NeedMin) {
108
54
            f(filter->mutable_min_val(), _min);
109
54
        }
110
54
        if constexpr (NeedMax) {
111
54
            f(filter->mutable_max_val(), _max);
112
54
        }
113
54
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_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
252
                              size_t start, size_t size) {
117
1.29k
        for (size_t i = start; i < size; i++) {
118
1.04k
            if (nullmap == nullptr || !nullmap[i]) {
119
994
                if constexpr (NeedMin) {
120
994
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
345
                        _min = column_string.get_data_at(i).to_string();
122
345
                        _min_value_set = true;
123
345
                    }
124
994
                }
125
994
                if constexpr (NeedMax) {
126
994
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
332
                        _max = column_string.get_data_at(i).to_string();
128
332
                    }
129
994
                }
130
994
            }
131
1.04k
        }
132
252
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrImEEEEvRKT_PKhmm
Line
Count
Source
116
34
                              size_t start, size_t size) {
117
622
        for (size_t i = start; i < size; i++) {
118
588
            if (nullmap == nullptr || !nullmap[i]) {
119
583
                if constexpr (NeedMin) {
120
583
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
93
                        _min = column_string.get_data_at(i).to_string();
122
93
                        _min_value_set = true;
123
93
                    }
124
583
                }
125
583
                if constexpr (NeedMax) {
126
583
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
85
                        _max = column_string.get_data_at(i).to_string();
128
85
                    }
129
583
                }
130
583
            }
131
588
        }
132
34
    }
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE20_update_batch_stringINS_9ColumnStrIjEEEEvRKT_PKhmm
Line
Count
Source
116
218
                              size_t start, size_t size) {
117
677
        for (size_t i = start; i < size; i++) {
118
459
            if (nullmap == nullptr || !nullmap[i]) {
119
411
                if constexpr (NeedMin) {
120
411
                    if (column_string.get_data_at(i) < StringRef(_min) || !_min_value_set) {
121
252
                        _min = column_string.get_data_at(i).to_string();
122
252
                        _min_value_set = true;
123
252
                    }
124
411
                }
125
411
                if constexpr (NeedMax) {
126
411
                    if (column_string.get_data_at(i) > StringRef(_max)) {
127
247
                        _max = column_string.get_data_at(i).to_string();
128
247
                    }
129
411
                }
130
411
            }
131
459
        }
132
218
    }
133
134
3.31k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
3.31k
        const auto size = column->size();
136
3.31k
        if constexpr (std::is_same_v<T, std::string>) {
137
98
            if (column->is_column_string64()) {
138
8
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
8
                                     size);
140
90
            } else {
141
90
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
90
                                     size);
143
90
            }
144
3.21k
        } else {
145
3.21k
            const T* data = (T*)column->get_raw_data().data;
146
3.12M
            for (size_t i = start; i < size; i++) {
147
3.11M
                if constexpr (NeedMin) {
148
3.11M
                    _min = std::min(_min, *(data + i));
149
3.11M
                }
150
3.11M
                if constexpr (NeedMax) {
151
3.11M
                    _max = std::max(_max, *(data + i));
152
3.11M
                }
153
3.11M
            }
154
3.21k
        }
155
3.31k
    }
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
22
    void _update_batch(const ColumnPtr& column, size_t start) {
135
22
        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
22
        } else {
145
22
            const T* data = (T*)column->get_raw_data().data;
146
64
            for (size_t i = start; i < size; i++) {
147
42
                if constexpr (NeedMin) {
148
42
                    _min = std::min(_min, *(data + i));
149
42
                }
150
42
                if constexpr (NeedMax) {
151
42
                    _max = std::max(_max, *(data + i));
152
42
                }
153
42
            }
154
22
        }
155
22
    }
_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.81k
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1.81k
        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.81k
        } else {
145
1.81k
            const T* data = (T*)column->get_raw_data().data;
146
3.10M
            for (size_t i = start; i < size; i++) {
147
3.10M
                if constexpr (NeedMin) {
148
3.10M
                    _min = std::min(_min, *(data + i));
149
3.10M
                }
150
3.10M
                if constexpr (NeedMax) {
151
3.10M
                    _max = std::max(_max, *(data + i));
152
3.10M
                }
153
3.10M
            }
154
1.81k
        }
155
1.81k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
968
    void _update_batch(const ColumnPtr& column, size_t start) {
135
968
        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
968
        } else {
145
968
            const T* data = (T*)column->get_raw_data().data;
146
13.0k
            for (size_t i = start; i < size; i++) {
147
12.0k
                if constexpr (NeedMin) {
148
12.0k
                    _min = std::min(_min, *(data + i));
149
12.0k
                }
150
12.0k
                if constexpr (NeedMax) {
151
12.0k
                    _max = std::max(_max, *(data + i));
152
12.0k
                }
153
12.0k
            }
154
968
        }
155
968
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EEm
Line
Count
Source
134
47
    void _update_batch(const ColumnPtr& column, size_t start) {
135
47
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
47
        } else {
145
47
            const T* data = (T*)column->get_raw_data().data;
146
116
            for (size_t i = start; i < size; i++) {
147
69
                if constexpr (NeedMin) {
148
69
                    _min = std::min(_min, *(data + i));
149
69
                }
150
69
                if constexpr (NeedMax) {
151
69
                    _max = std::max(_max, *(data + i));
152
69
                }
153
69
            }
154
47
        }
155
47
    }
_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
5
    void _update_batch(const ColumnPtr& column, size_t start) {
135
5
        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
5
        } else {
145
5
            const T* data = (T*)column->get_raw_data().data;
146
12
            for (size_t i = start; i < size; i++) {
147
7
                if constexpr (NeedMin) {
148
7
                    _min = std::min(_min, *(data + i));
149
7
                }
150
7
                if constexpr (NeedMax) {
151
7
                    _max = std::max(_max, *(data + i));
152
7
                }
153
7
            }
154
5
        }
155
5
    }
_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
273
    void _update_batch(const ColumnPtr& column, size_t start) {
135
273
        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
273
        } else {
145
273
            const T* data = (T*)column->get_raw_data().data;
146
779
            for (size_t i = start; i < size; i++) {
147
506
                if constexpr (NeedMin) {
148
506
                    _min = std::min(_min, *(data + i));
149
506
                }
150
506
                if constexpr (NeedMax) {
151
506
                    _max = std::max(_max, *(data + i));
152
506
                }
153
506
            }
154
273
        }
155
273
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EEm
Line
Count
Source
134
42
    void _update_batch(const ColumnPtr& column, size_t start) {
135
42
        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
42
        } else {
145
42
            const T* data = (T*)column->get_raw_data().data;
146
168
            for (size_t i = start; i < size; i++) {
147
126
                if constexpr (NeedMin) {
148
126
                    _min = std::min(_min, *(data + i));
149
126
                }
150
126
                if constexpr (NeedMax) {
151
126
                    _max = std::max(_max, *(data + i));
152
126
                }
153
126
            }
154
42
        }
155
42
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EEm
Line
Count
Source
134
98
    void _update_batch(const ColumnPtr& column, size_t start) {
135
98
        const auto size = column->size();
136
98
        if constexpr (std::is_same_v<T, std::string>) {
137
98
            if (column->is_column_string64()) {
138
8
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
8
                                     size);
140
90
            } else {
141
90
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
90
                                     size);
143
90
            }
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
98
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
134
1
    void _update_batch(const ColumnPtr& column, size_t start) {
135
1
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
1
        } else {
145
1
            const T* data = (T*)column->get_raw_data().data;
146
4
            for (size_t i = start; i < size; i++) {
147
3
                if constexpr (NeedMin) {
148
3
                    _min = std::min(_min, *(data + i));
149
3
                }
150
3
                if constexpr (NeedMax) {
151
3
                    _max = std::max(_max, *(data + i));
152
3
                }
153
3
            }
154
1
        }
155
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EEm
Line
Count
Source
134
4
    void _update_batch(const ColumnPtr& column, size_t start) {
135
4
        const auto size = column->size();
136
        if constexpr (std::is_same_v<T, std::string>) {
137
            if (column->is_column_string64()) {
138
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullptr, start,
139
                                     size);
140
            } else {
141
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullptr, start,
142
                                     size);
143
            }
144
4
        } else {
145
4
            const T* data = (T*)column->get_raw_data().data;
146
51
            for (size_t i = start; i < size; i++) {
147
47
                if constexpr (NeedMin) {
148
47
                    _min = std::min(_min, *(data + i));
149
47
                }
150
47
                if constexpr (NeedMax) {
151
47
                    _max = std::max(_max, *(data + i));
152
47
                }
153
47
            }
154
4
        }
155
4
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EEm
Line
Count
Source
134
34
    void _update_batch(const ColumnPtr& column, size_t start) {
135
34
        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
34
        } else {
145
34
            const T* data = (T*)column->get_raw_data().data;
146
75
            for (size_t i = start; i < size; i++) {
147
41
                if constexpr (NeedMin) {
148
41
                    _min = std::min(_min, *(data + i));
149
41
                }
150
41
                if constexpr (NeedMax) {
151
41
                    _max = std::max(_max, *(data + i));
152
41
                }
153
41
            }
154
34
        }
155
34
    }
_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.79k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
3.79k
        const auto size = column->size();
159
3.79k
        if constexpr (std::is_same_v<T, std::string>) {
160
154
            if (column->is_column_string64()) {
161
26
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
26
                                     start, size);
163
128
            } else {
164
128
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
128
                                     start, size);
166
128
            }
167
3.63k
        } else {
168
3.63k
            const T* data = (T*)column->get_raw_data().data;
169
950k
            for (size_t i = start; i < size; i++) {
170
946k
                if (!nullmap[i]) {
171
946k
                    if constexpr (NeedMin) {
172
946k
                        _min = std::min(_min, *(data + i));
173
946k
                    }
174
946k
                    if constexpr (NeedMax) {
175
946k
                        _max = std::max(_max, *(data + i));
176
946k
                    }
177
946k
                }
178
946k
            }
179
3.63k
        }
180
3.79k
    }
_ZN5doris13MinMaxNumFuncIhLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
25
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
25
        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
25
        } else {
168
25
            const T* data = (T*)column->get_raw_data().data;
169
76
            for (size_t i = start; i < size; i++) {
170
51
                if (!nullmap[i]) {
171
34
                    if constexpr (NeedMin) {
172
34
                        _min = std::min(_min, *(data + i));
173
34
                    }
174
34
                    if constexpr (NeedMax) {
175
34
                        _max = std::max(_max, *(data + i));
176
34
                    }
177
34
                }
178
51
            }
179
25
        }
180
25
    }
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
61
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
61
        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
61
        } else {
168
61
            const T* data = (T*)column->get_raw_data().data;
169
178
            for (size_t i = start; i < size; i++) {
170
117
                if (!nullmap[i]) {
171
116
                    if constexpr (NeedMin) {
172
116
                        _min = std::min(_min, *(data + i));
173
116
                    }
174
116
                    if constexpr (NeedMax) {
175
116
                        _max = std::max(_max, *(data + i));
176
116
                    }
177
116
                }
178
117
            }
179
61
        }
180
61
    }
_ZN5doris13MinMaxNumFuncIsLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
35
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
35
        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
35
        } else {
168
35
            const T* data = (T*)column->get_raw_data().data;
169
258
            for (size_t i = start; i < size; i++) {
170
223
                if (!nullmap[i]) {
171
209
                    if constexpr (NeedMin) {
172
209
                        _min = std::min(_min, *(data + i));
173
209
                    }
174
209
                    if constexpr (NeedMax) {
175
209
                        _max = std::max(_max, *(data + i));
176
209
                    }
177
209
                }
178
223
            }
179
35
        }
180
35
    }
_ZN5doris13MinMaxNumFuncIiLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
2.19k
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
2.19k
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
2.19k
        } else {
168
2.19k
            const T* data = (T*)column->get_raw_data().data;
169
741k
            for (size_t i = start; i < size; i++) {
170
738k
                if (!nullmap[i]) {
171
738k
                    if constexpr (NeedMin) {
172
738k
                        _min = std::min(_min, *(data + i));
173
738k
                    }
174
738k
                    if constexpr (NeedMax) {
175
738k
                        _max = std::max(_max, *(data + i));
176
738k
                    }
177
738k
                }
178
738k
            }
179
2.19k
        }
180
2.19k
    }
_ZN5doris13MinMaxNumFuncIlLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
997
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
997
        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
997
        } else {
168
997
            const T* data = (T*)column->get_raw_data().data;
169
205k
            for (size_t i = start; i < size; i++) {
170
204k
                if (!nullmap[i]) {
171
204k
                    if constexpr (NeedMin) {
172
204k
                        _min = std::min(_min, *(data + i));
173
204k
                    }
174
204k
                    if constexpr (NeedMax) {
175
204k
                        _max = std::max(_max, *(data + i));
176
204k
                    }
177
204k
                }
178
204k
            }
179
997
        }
180
997
    }
_ZN5doris13MinMaxNumFuncInLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
4
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
4
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
4
        } else {
168
4
            const T* data = (T*)column->get_raw_data().data;
169
8
            for (size_t i = start; i < size; i++) {
170
4
                if (!nullmap[i]) {
171
4
                    if constexpr (NeedMin) {
172
4
                        _min = std::min(_min, *(data + i));
173
4
                    }
174
4
                    if constexpr (NeedMax) {
175
4
                        _max = std::max(_max, *(data + i));
176
4
                    }
177
4
                }
178
4
            }
179
4
        }
180
4
    }
_ZN5doris13MinMaxNumFuncIfLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
32
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
32
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
32
        } else {
168
32
            const T* data = (T*)column->get_raw_data().data;
169
80
            for (size_t i = start; i < size; i++) {
170
48
                if (!nullmap[i]) {
171
40
                    if constexpr (NeedMin) {
172
40
                        _min = std::min(_min, *(data + i));
173
40
                    }
174
40
                    if constexpr (NeedMax) {
175
40
                        _max = std::max(_max, *(data + i));
176
40
                    }
177
40
                }
178
48
            }
179
32
        }
180
32
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncIdLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncINS_16VecDateTimeValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
2
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
2
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
2
        } else {
168
2
            const T* data = (T*)column->get_raw_data().data;
169
14
            for (size_t i = start; i < size; i++) {
170
12
                if (!nullmap[i]) {
171
12
                    if constexpr (NeedMin) {
172
12
                        _min = std::min(_min, *(data + i));
173
12
                    }
174
12
                    if constexpr (NeedMax) {
175
12
                        _max = std::max(_max, *(data + i));
176
12
                    }
177
12
                }
178
12
            }
179
2
        }
180
2
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_15DateV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
57
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
57
        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
57
        } else {
168
57
            const T* data = (T*)column->get_raw_data().data;
169
914
            for (size_t i = start; i < size; i++) {
170
857
                if (!nullmap[i]) {
171
827
                    if constexpr (NeedMin) {
172
827
                        _min = std::min(_min, *(data + i));
173
827
                    }
174
827
                    if constexpr (NeedMax) {
175
827
                        _max = std::max(_max, *(data + i));
176
827
                    }
177
827
                }
178
857
            }
179
57
        }
180
57
    }
_ZN5doris13MinMaxNumFuncINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
109
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
109
        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
109
        } else {
168
109
            const T* data = (T*)column->get_raw_data().data;
169
266
            for (size_t i = start; i < size; i++) {
170
157
                if (!nullmap[i]) {
171
145
                    if constexpr (NeedMin) {
172
145
                        _min = std::min(_min, *(data + i));
173
145
                    }
174
145
                    if constexpr (NeedMax) {
175
145
                        _max = std::max(_max, *(data + i));
176
145
                    }
177
145
                }
178
157
            }
179
109
        }
180
109
    }
Unexecuted instantiation: _ZN5doris13MinMaxNumFuncINS_16TimestampTzValueELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
_ZN5doris13MinMaxNumFuncINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
154
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
154
        const auto size = column->size();
159
154
        if constexpr (std::is_same_v<T, std::string>) {
160
154
            if (column->is_column_string64()) {
161
26
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
26
                                     start, size);
163
128
            } else {
164
128
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
128
                                     start, size);
166
128
            }
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
154
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIiEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
1
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
1
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
1
        } else {
168
1
            const T* data = (T*)column->get_raw_data().data;
169
3
            for (size_t i = start; i < size; i++) {
170
2
                if (!nullmap[i]) {
171
2
                    if constexpr (NeedMin) {
172
2
                        _min = std::min(_min, *(data + i));
173
2
                    }
174
2
                    if constexpr (NeedMax) {
175
2
                        _max = std::max(_max, *(data + i));
176
2
                    }
177
2
                }
178
2
            }
179
1
        }
180
1
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIlEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS5_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
53
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
53
        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
53
        } else {
168
53
            const T* data = (T*)column->get_raw_data().data;
169
130
            for (size_t i = start; i < size; i++) {
170
77
                if (!nullmap[i]) {
171
69
                    if constexpr (NeedMin) {
172
69
                        _min = std::min(_min, *(data + i));
173
69
                    }
174
69
                    if constexpr (NeedMax) {
175
69
                        _max = std::max(_max, *(data + i));
176
69
                    }
177
69
                }
178
77
            }
179
53
        }
180
53
    }
_ZN5doris13MinMaxNumFuncINS_12Decimal128V3ELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS4_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
35
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
35
        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
35
        } else {
168
35
            const T* data = (T*)column->get_raw_data().data;
169
129
            for (size_t i = start; i < size; i++) {
170
94
                if (!nullmap[i]) {
171
62
                    if constexpr (NeedMin) {
172
62
                        _min = std::min(_min, *(data + i));
173
62
                    }
174
62
                    if constexpr (NeedMax) {
175
62
                        _max = std::max(_max, *(data + i));
176
62
                    }
177
62
                }
178
94
            }
179
35
        }
180
35
    }
_ZN5doris13MinMaxNumFuncINS_7DecimalIN4wide7integerILm256EiEEEELb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
18
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
18
        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
18
        } else {
168
18
            const T* data = (T*)column->get_raw_data().data;
169
762
            for (size_t i = start; i < size; i++) {
170
744
                if (!nullmap[i]) {
171
744
                    if constexpr (NeedMin) {
172
744
                        _min = std::min(_min, *(data + i));
173
744
                    }
174
744
                    if constexpr (NeedMax) {
175
744
                        _max = std::max(_max, *(data + i));
176
744
                    }
177
744
                }
178
744
            }
179
18
        }
180
18
    }
_ZN5doris13MinMaxNumFuncIjLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
10
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
10
        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
10
        } else {
168
10
            const T* data = (T*)column->get_raw_data().data;
169
650
            for (size_t i = start; i < size; i++) {
170
640
                if (!nullmap[i]) {
171
583
                    if constexpr (NeedMin) {
172
583
                        _min = std::min(_min, *(data + i));
173
583
                    }
174
583
                    if constexpr (NeedMax) {
175
583
                        _max = std::max(_max, *(data + i));
176
583
                    }
177
583
                }
178
640
            }
179
10
        }
180
10
    }
_ZN5doris13MinMaxNumFuncIoLb1ELb1EE13_update_batchERKNS_3COWINS_7IColumnEE13immutable_ptrIS3_EERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEm
Line
Count
Source
157
4
    void _update_batch(const ColumnPtr& column, const NullMap& nullmap, size_t start) {
158
4
        const auto size = column->size();
159
        if constexpr (std::is_same_v<T, std::string>) {
160
            if (column->is_column_string64()) {
161
                _update_batch_string(assert_cast<const ColumnString64&>(*column), nullmap.data(),
162
                                     start, size);
163
            } else {
164
                _update_batch_string(assert_cast<const ColumnString&>(*column), nullmap.data(),
165
                                     start, size);
166
            }
167
4
        } else {
168
4
            const T* data = (T*)column->get_raw_data().data;
169
48
            for (size_t i = start; i < size; i++) {
170
44
                if (!nullmap[i]) {
171
40
                    if constexpr (NeedMin) {
172
40
                        _min = std::min(_min, *(data + i));
173
40
                    }
174
40
                    if constexpr (NeedMax) {
175
40
                        _max = std::max(_max, *(data + i));
176
40
                    }
177
40
                }
178
44
            }
179
4
        }
180
4
    }
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