Coverage Report

Created: 2026-03-12 16:03

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/round.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
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/FunctionRound.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include <cstddef>
24
#include <memory>
25
26
#include "common/exception.h"
27
#include "common/status.h"
28
#include "core/assert_cast.h"
29
#include "core/block/column_with_type_and_name.h"
30
#include "core/column/column_const.h"
31
#include "core/data_type/data_type.h"
32
#include "core/data_type/data_type_nullable.h"
33
#include "core/types.h"
34
#include "exprs/function/function.h"
35
#include "format/format_common.h"
36
#if defined(__SSE4_1__) || defined(__aarch64__)
37
#include "util/sse_util.hpp"
38
#else
39
#include <fenv.h>
40
#endif
41
#include <algorithm>
42
#include <type_traits>
43
44
#include "core/call_on_type_index.h"
45
#include "core/column/column.h"
46
#include "core/column/column_decimal.h"
47
#include "core/data_type/data_type_decimal.h"
48
#include "core/data_type/data_type_number.h"
49
50
namespace doris {
51
#include "common/compile_check_avoid_begin.h"
52
enum class ScaleMode {
53
    Positive, // round to a number with N decimal places after the decimal point
54
    Negative, // round to an integer with N zero characters
55
    Zero,     // round to an integer
56
};
57
58
enum class RoundingMode {
59
#if defined(__SSE4_1__) || defined(__aarch64__)
60
    Round = _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC,
61
    Floor = _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC,
62
    Ceil = _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC,
63
    Trunc = _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC,
64
#else
65
    Round = 8, /// Values are correspond to above just in case.
66
    Floor = 9,
67
    Ceil = 10,
68
    Trunc = 11,
69
#endif
70
};
71
72
enum class TieBreakingMode {
73
    Auto,    // use round up
74
    Bankers, // use banker's rounding
75
};
76
77
template <PrimitiveType PT>
78
struct RoundType {
79
    using NativeType = typename PrimitiveTypeTraits<PT>::CppType;
80
};
81
82
template <>
83
struct RoundType<TYPE_DECIMAL32> {
84
    using NativeType = typename PrimitiveTypeTraits<TYPE_DECIMAL32>::CppType::NativeType;
85
};
86
template <>
87
struct RoundType<TYPE_DECIMAL64> {
88
    using NativeType = typename PrimitiveTypeTraits<TYPE_DECIMAL64>::CppType::NativeType;
89
};
90
template <>
91
struct RoundType<TYPE_DECIMAL128I> {
92
    using NativeType = typename PrimitiveTypeTraits<TYPE_DECIMAL128I>::CppType::NativeType;
93
};
94
template <>
95
struct RoundType<TYPE_DECIMALV2> {
96
    using NativeType = typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType::NativeType;
97
};
98
template <>
99
struct RoundType<TYPE_DECIMAL256> {
100
    using NativeType = typename PrimitiveTypeTraits<TYPE_DECIMAL256>::CppType::NativeType;
101
};
102
103
template <PrimitiveType Type, RoundingMode rounding_mode, ScaleMode scale_mode,
104
          TieBreakingMode tie_breaking_mode, typename U>
105
struct IntegerRoundingComputation {
106
    using T = typename RoundType<Type>::NativeType;
107
    static const size_t data_count = 1;
108
109
    static size_t prepare(size_t scale) { return scale; }
110
111
    /// Integer overflow is Ok.
112
4.74k
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
4.74k
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
544
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
544
        }
116
1.73k
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
1.73k
            if (x < 0) {
118
3
                x -= scale - 1;
119
3
            }
120
1.73k
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
1.73k
        }
122
779
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
779
            if (x >= 0) {
124
771
                x += scale - 1;
125
771
            }
126
779
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
779
        }
128
1.68k
        if constexpr (rounding_mode == RoundingMode::Round) {
129
1.68k
            if (x < 0) {
130
7
                x -= scale;
131
7
            }
132
1.68k
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
1.07k
                x = (x + scale / 2) / scale;
134
1.07k
            }
135
1.68k
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
613
                T quotient = (x + scale / 2) / scale;
137
613
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
18
                    x = (quotient + (x < 0)) & ~1;
140
595
                } else {
141
                    // round the others as usual
142
595
                    x = quotient;
143
595
                }
144
613
            }
145
1.68k
            return target_scale > 1 ? x * target_scale : x;
146
1.68k
        }
147
4.74k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE12compute_implEiii
Line
Count
Source
112
288
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
288
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
288
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
288
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
288
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE12compute_implElll
Line
Count
Source
112
225
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
225
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
225
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
225
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
225
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
Line
Count
Source
112
31
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
31
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
31
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
31
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
31
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE12compute_implES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE12compute_implEiii
Line
Count
Source
112
351
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
351
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
351
            if (x < 0) {
118
0
                x -= scale - 1;
119
0
            }
120
351
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
351
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
351
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE12compute_implElll
Line
Count
Source
112
1.27k
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
1.27k
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
1.27k
            if (x < 0) {
118
0
                x -= scale - 1;
119
0
            }
120
1.27k
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
1.27k
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
1.27k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
Line
Count
Source
112
116
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
116
            if (x < 0) {
118
3
                x -= scale - 1;
119
3
            }
120
116
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
116
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
116
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE12compute_implES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE12compute_implEiii
Line
Count
Source
112
353
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
353
        if constexpr (rounding_mode == RoundingMode::Round) {
129
353
            if (x < 0) {
130
0
                x -= scale;
131
0
            }
132
353
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
353
                x = (x + scale / 2) / scale;
134
353
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
353
            return target_scale > 1 ? x * target_scale : x;
146
353
        }
147
353
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE12compute_implElll
Line
Count
Source
112
304
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
304
        if constexpr (rounding_mode == RoundingMode::Round) {
129
304
            if (x < 0) {
130
0
                x -= scale;
131
0
            }
132
304
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
304
                x = (x + scale / 2) / scale;
134
304
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
304
            return target_scale > 1 ? x * target_scale : x;
146
304
        }
147
304
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
Line
Count
Source
112
415
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
415
        if constexpr (rounding_mode == RoundingMode::Round) {
129
415
            if (x < 0) {
130
3
                x -= scale;
131
3
            }
132
415
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
415
                x = (x + scale / 2) / scale;
134
415
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
415
            return target_scale > 1 ? x * target_scale : x;
146
415
        }
147
415
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE12compute_implES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE12compute_implEiii
Line
Count
Source
112
352
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
352
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
352
            if (x >= 0) {
124
352
                x += scale - 1;
125
352
            }
126
352
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
352
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
352
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE12compute_implElll
Line
Count
Source
112
304
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
304
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
304
            if (x >= 0) {
124
299
                x += scale - 1;
125
299
            }
126
304
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
304
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
304
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE12compute_implEnnn
Line
Count
Source
112
123
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
123
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
123
            if (x >= 0) {
124
120
                x += scale - 1;
125
120
            }
126
123
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
123
        }
128
        if constexpr (rounding_mode == RoundingMode::Round) {
129
            if (x < 0) {
130
                x -= scale;
131
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
                T quotient = (x + scale / 2) / scale;
137
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
                    x = (quotient + (x < 0)) & ~1;
140
                } else {
141
                    // round the others as usual
142
                    x = quotient;
143
                }
144
            }
145
            return target_scale > 1 ? x * target_scale : x;
146
        }
147
123
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE12compute_implES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EiE12compute_implEiii
Line
Count
Source
112
315
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
315
        if constexpr (rounding_mode == RoundingMode::Round) {
129
315
            if (x < 0) {
130
4
                x -= scale;
131
4
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
315
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
315
                T quotient = (x + scale / 2) / scale;
137
315
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
11
                    x = (quotient + (x < 0)) & ~1;
140
304
                } else {
141
                    // round the others as usual
142
304
                    x = quotient;
143
304
                }
144
315
            }
145
315
            return target_scale > 1 ? x * target_scale : x;
146
315
        }
147
315
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1ElE12compute_implElll
Line
Count
Source
112
239
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
239
        if constexpr (rounding_mode == RoundingMode::Round) {
129
239
            if (x < 0) {
130
0
                x -= scale;
131
0
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
239
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
239
                T quotient = (x + scale / 2) / scale;
137
239
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
4
                    x = (quotient + (x < 0)) & ~1;
140
235
                } else {
141
                    // round the others as usual
142
235
                    x = quotient;
143
235
                }
144
239
            }
145
239
            return target_scale > 1 ? x * target_scale : x;
146
239
        }
147
239
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE12compute_implEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE12compute_implEnnn
Line
Count
Source
112
59
    static ALWAYS_INLINE T compute_impl(T x, T scale, T target_scale) {
113
        if constexpr (rounding_mode == RoundingMode::Trunc) {
114
            return target_scale > 1 ? x / scale * target_scale : x / scale;
115
        }
116
        if constexpr (rounding_mode == RoundingMode::Floor) {
117
            if (x < 0) {
118
                x -= scale - 1;
119
            }
120
            return target_scale > 1 ? x / scale * target_scale : x / scale;
121
        }
122
        if constexpr (rounding_mode == RoundingMode::Ceil) {
123
            if (x >= 0) {
124
                x += scale - 1;
125
            }
126
            return target_scale > 1 ? x / scale * target_scale : x / scale;
127
        }
128
59
        if constexpr (rounding_mode == RoundingMode::Round) {
129
59
            if (x < 0) {
130
0
                x -= scale;
131
0
            }
132
            if constexpr (tie_breaking_mode == TieBreakingMode::Auto) {
133
                x = (x + scale / 2) / scale;
134
            }
135
59
            if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
136
59
                T quotient = (x + scale / 2) / scale;
137
59
                if (quotient * scale == x + scale / 2) {
138
                    // round half to even
139
3
                    x = (quotient + (x < 0)) & ~1;
140
56
                } else {
141
                    // round the others as usual
142
56
                    x = quotient;
143
56
                }
144
59
            }
145
59
            return target_scale > 1 ? x * target_scale : x;
146
59
        }
147
59
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EN4wide7integerILm256EiEEE12compute_implES7_S7_S7_
148
149
4.74k
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
4.74k
        if constexpr (scale_mode == ScaleMode::Negative) {
151
4.74k
            return compute_impl(x, scale, target_scale);
152
4.74k
        }
153
0
        return x;
154
4.74k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEiii
Line
Count
Source
149
288
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
288
        if constexpr (scale_mode == ScaleMode::Negative) {
151
288
            return compute_impl(x, scale, target_scale);
152
288
        }
153
0
        return x;
154
288
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeElll
Line
Count
Source
149
225
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
225
        if constexpr (scale_mode == ScaleMode::Negative) {
151
225
            return compute_impl(x, scale, target_scale);
152
225
        }
153
0
        return x;
154
225
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
Line
Count
Source
149
31
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
31
        if constexpr (scale_mode == ScaleMode::Negative) {
151
31
            return compute_impl(x, scale, target_scale);
152
31
        }
153
0
        return x;
154
31
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEiii
Line
Count
Source
149
351
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
351
        if constexpr (scale_mode == ScaleMode::Negative) {
151
351
            return compute_impl(x, scale, target_scale);
152
351
        }
153
0
        return x;
154
351
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeElll
Line
Count
Source
149
1.27k
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
1.27k
        if constexpr (scale_mode == ScaleMode::Negative) {
151
1.27k
            return compute_impl(x, scale, target_scale);
152
1.27k
        }
153
0
        return x;
154
1.27k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
Line
Count
Source
149
116
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
116
        if constexpr (scale_mode == ScaleMode::Negative) {
151
116
            return compute_impl(x, scale, target_scale);
152
116
        }
153
0
        return x;
154
116
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEiii
Line
Count
Source
149
353
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
353
        if constexpr (scale_mode == ScaleMode::Negative) {
151
353
            return compute_impl(x, scale, target_scale);
152
353
        }
153
0
        return x;
154
353
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeElll
Line
Count
Source
149
304
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
304
        if constexpr (scale_mode == ScaleMode::Negative) {
151
304
            return compute_impl(x, scale, target_scale);
152
304
        }
153
0
        return x;
154
304
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
Line
Count
Source
149
415
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
415
        if constexpr (scale_mode == ScaleMode::Negative) {
151
415
            return compute_impl(x, scale, target_scale);
152
415
        }
153
0
        return x;
154
415
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEiii
Line
Count
Source
149
352
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
352
        if constexpr (scale_mode == ScaleMode::Negative) {
151
352
            return compute_impl(x, scale, target_scale);
152
352
        }
153
0
        return x;
154
352
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeElll
Line
Count
Source
149
304
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
304
        if constexpr (scale_mode == ScaleMode::Negative) {
151
304
            return compute_impl(x, scale, target_scale);
152
304
        }
153
0
        return x;
154
304
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEnnn
Line
Count
Source
149
123
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
123
        if constexpr (scale_mode == ScaleMode::Negative) {
151
123
            return compute_impl(x, scale, target_scale);
152
123
        }
153
0
        return x;
154
123
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeES7_S7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEhhh
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEaaa
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEsss
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEiii
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeElll
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEnnn
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EiE7computeEiii
Line
Count
Source
149
315
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
315
        if constexpr (scale_mode == ScaleMode::Negative) {
151
315
            return compute_impl(x, scale, target_scale);
152
315
        }
153
0
        return x;
154
315
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1ElE7computeElll
Line
Count
Source
149
239
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
239
        if constexpr (scale_mode == ScaleMode::Negative) {
151
239
            return compute_impl(x, scale, target_scale);
152
239
        }
153
0
        return x;
154
239
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE7computeEnnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE7computeEnnn
Line
Count
Source
149
59
    static ALWAYS_INLINE T compute(T x, T scale, T target_scale) {
150
59
        if constexpr (scale_mode == ScaleMode::Negative) {
151
59
            return compute_impl(x, scale, target_scale);
152
59
        }
153
0
        return x;
154
59
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EN4wide7integerILm256EiEEE7computeES7_S7_S7_
155
156
    static ALWAYS_INLINE void compute(const T* __restrict in, U scale, T* __restrict out,
157
5.36k
                                      U target_scale) {
158
5.36k
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
5.36k
            if (scale >= std::numeric_limits<T>::max()) {
160
621
                *out = 0;
161
621
                return;
162
621
            }
163
5.36k
        }
164
4.74k
        *out = compute(*in, scale, target_scale);
165
5.36k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEPKiiPii
Line
Count
Source
157
404
                                      U target_scale) {
158
404
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
404
            if (scale >= std::numeric_limits<T>::max()) {
160
116
                *out = 0;
161
116
                return;
162
116
            }
163
404
        }
164
288
        *out = compute(*in, scale, target_scale);
165
404
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeEPKllPll
Line
Count
Source
157
233
                                      U target_scale) {
158
233
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
233
            if (scale >= std::numeric_limits<T>::max()) {
160
8
                *out = 0;
161
8
                return;
162
8
            }
163
233
        }
164
225
        *out = compute(*in, scale, target_scale);
165
233
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
Line
Count
Source
157
31
                                      U target_scale) {
158
31
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
31
            if (scale >= std::numeric_limits<T>::max()) {
160
0
                *out = 0;
161
0
                return;
162
0
            }
163
31
        }
164
31
        *out = compute(*in, scale, target_scale);
165
31
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeEPKS7_S7_PS7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEPKiiPii
Line
Count
Source
157
467
                                      U target_scale) {
158
467
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
467
            if (scale >= std::numeric_limits<T>::max()) {
160
116
                *out = 0;
161
116
                return;
162
116
            }
163
467
        }
164
351
        *out = compute(*in, scale, target_scale);
165
467
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeEPKllPll
Line
Count
Source
157
1.27k
                                      U target_scale) {
158
1.27k
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
1.27k
            if (scale >= std::numeric_limits<T>::max()) {
160
8
                *out = 0;
161
8
                return;
162
8
            }
163
1.27k
        }
164
1.27k
        *out = compute(*in, scale, target_scale);
165
1.27k
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
Line
Count
Source
157
116
                                      U target_scale) {
158
116
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
116
            if (scale >= std::numeric_limits<T>::max()) {
160
0
                *out = 0;
161
0
                return;
162
0
            }
163
116
        }
164
116
        *out = compute(*in, scale, target_scale);
165
116
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeEPKS7_S7_PS7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEPKiiPii
Line
Count
Source
157
469
                                      U target_scale) {
158
469
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
469
            if (scale >= std::numeric_limits<T>::max()) {
160
116
                *out = 0;
161
116
                return;
162
116
            }
163
469
        }
164
353
        *out = compute(*in, scale, target_scale);
165
469
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeEPKllPll
Line
Count
Source
157
312
                                      U target_scale) {
158
312
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
312
            if (scale >= std::numeric_limits<T>::max()) {
160
8
                *out = 0;
161
8
                return;
162
8
            }
163
312
        }
164
304
        *out = compute(*in, scale, target_scale);
165
312
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
Line
Count
Source
157
416
                                      U target_scale) {
158
416
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
416
            if (scale >= std::numeric_limits<T>::max()) {
160
1
                *out = 0;
161
1
                return;
162
1
            }
163
416
        }
164
415
        *out = compute(*in, scale, target_scale);
165
416
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeEPKS7_S7_PS7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EmE7computeEPKnmPnm
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EiE7computeEPKiiPii
Line
Count
Source
157
468
                                      U target_scale) {
158
468
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
468
            if (scale >= std::numeric_limits<T>::max()) {
160
116
                *out = 0;
161
116
                return;
162
116
            }
163
468
        }
164
352
        *out = compute(*in, scale, target_scale);
165
468
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0ElE7computeEPKllPll
Line
Count
Source
157
312
                                      U target_scale) {
158
312
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
312
            if (scale >= std::numeric_limits<T>::max()) {
160
8
                *out = 0;
161
8
                return;
162
8
            }
163
312
        }
164
304
        *out = compute(*in, scale, target_scale);
165
312
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EnE7computeEPKnnPnn
Line
Count
Source
157
123
                                      U target_scale) {
158
123
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
123
            if (scale >= std::numeric_limits<T>::max()) {
160
0
                *out = 0;
161
0
                return;
162
0
            }
163
123
        }
164
123
        *out = compute(*in, scale, target_scale);
165
123
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EN4wide7integerILm256EiEEE7computeEPKS7_S7_PS7_S7_
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKhmPhm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKamPam
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKsmPsm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKimPim
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKlmPlm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EmE7computeEPKnmPnm
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EmE7computeEPKnmPnm
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EiE7computeEPKiiPii
Line
Count
Source
157
431
                                      U target_scale) {
158
431
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
431
            if (scale >= std::numeric_limits<T>::max()) {
160
116
                *out = 0;
161
116
                return;
162
116
            }
163
431
        }
164
315
        *out = compute(*in, scale, target_scale);
165
431
    }
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1ElE7computeEPKllPll
Line
Count
Source
157
247
                                      U target_scale) {
158
247
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
247
            if (scale >= std::numeric_limits<T>::max()) {
160
8
                *out = 0;
161
8
                return;
162
8
            }
163
247
        }
164
239
        *out = compute(*in, scale, target_scale);
165
247
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE7computeEPKnnPnn
_ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EnE7computeEPKnnPnn
Line
Count
Source
157
59
                                      U target_scale) {
158
59
        if constexpr (sizeof(T) <= sizeof(scale) && scale_mode == ScaleMode::Negative) {
159
59
            if (scale >= std::numeric_limits<T>::max()) {
160
0
                *out = 0;
161
0
                return;
162
0
            }
163
59
        }
164
59
        *out = compute(*in, scale, target_scale);
165
59
    }
Unexecuted instantiation: _ZN5doris26IntegerRoundingComputationILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EN4wide7integerILm256EiEEE7computeEPKS7_S7_PS7_S7_
166
};
167
168
template <PrimitiveType Type, RoundingMode rounding_mode, TieBreakingMode tie_breaking_mode>
169
class DecimalRoundingImpl {
170
private:
171
    using T = typename PrimitiveTypeTraits<Type>::CppType;
172
    using NativeType = typename T::NativeType;
173
    using Op = IntegerRoundingComputation<Type, rounding_mode, ScaleMode::Negative,
174
                                          tie_breaking_mode, NativeType>;
175
    using Container = typename ColumnDecimal<Type>::Container;
176
177
public:
178
    static NO_INLINE void apply(const Container& in, UInt32 in_scale, Container& out,
179
1.70k
                                Int16 out_scale) {
180
1.70k
        Int16 scale_arg = in_scale - out_scale;
181
1.70k
        if (scale_arg > 0) {
182
816
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
816
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
816
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
816
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
816
            if (out_scale < 0) {
189
30
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
70
                while (p_in < end_in) {
191
40
                    Op::compute(p_in, scale, p_out, negative_scale);
192
40
                    ++p_in;
193
40
                    ++p_out;
194
40
                }
195
786
            } else {
196
3.29k
                while (p_in < end_in) {
197
2.51k
                    Op::compute(p_in, scale, p_out, 1);
198
2.51k
                    ++p_in;
199
2.51k
                    ++p_out;
200
2.51k
                }
201
786
            }
202
885
        } else {
203
885
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
885
        }
205
1.70k
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIiEEEEjRS8_s
Line
Count
Source
179
30
                                Int16 out_scale) {
180
30
        Int16 scale_arg = in_scale - out_scale;
181
30
        if (scale_arg > 0) {
182
20
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
20
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
20
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
20
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
20
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
19
            } else {
196
56
                while (p_in < end_in) {
197
37
                    Op::compute(p_in, scale, p_out, 1);
198
37
                    ++p_in;
199
37
                    ++p_out;
200
37
                }
201
19
            }
202
20
        } else {
203
10
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
10
        }
205
30
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIlEEEEjRS8_s
Line
Count
Source
179
26
                                Int16 out_scale) {
180
26
        Int16 scale_arg = in_scale - out_scale;
181
26
        if (scale_arg > 0) {
182
18
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
18
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
18
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
18
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
18
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
17
            } else {
196
51
                while (p_in < end_in) {
197
34
                    Op::compute(p_in, scale, p_out, 1);
198
34
                    ++p_in;
199
34
                    ++p_out;
200
34
                }
201
17
            }
202
18
        } else {
203
8
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
8
        }
205
26
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_14DecimalV2ValueEEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_12Decimal128V3EEEjRS7_s
Line
Count
Source
179
15
                                Int16 out_scale) {
180
15
        Int16 scale_arg = in_scale - out_scale;
181
15
        if (scale_arg > 0) {
182
12
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
12
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
12
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
12
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
12
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
11
            } else {
196
39
                while (p_in < end_in) {
197
28
                    Op::compute(p_in, scale, p_out, 1);
198
28
                    ++p_in;
199
28
                    ++p_out;
200
28
                }
201
11
            }
202
12
        } else {
203
3
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
3
        }
205
15
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIN4wide7integerILm256EiEEEEEEjRSB_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIiEEEEjRS8_s
Line
Count
Source
179
37
                                Int16 out_scale) {
180
37
        Int16 scale_arg = in_scale - out_scale;
181
37
        if (scale_arg > 0) {
182
35
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
35
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
35
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
35
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
35
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
34
            } else {
196
136
                while (p_in < end_in) {
197
102
                    Op::compute(p_in, scale, p_out, 1);
198
102
                    ++p_in;
199
102
                    ++p_out;
200
102
                }
201
34
            }
202
35
        } else {
203
2
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
2
        }
205
37
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIlEEEEjRS8_s
Line
Count
Source
179
237
                                Int16 out_scale) {
180
237
        Int16 scale_arg = in_scale - out_scale;
181
237
        if (scale_arg > 0) {
182
215
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
215
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
215
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
215
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
215
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
214
            } else {
196
1.29k
                while (p_in < end_in) {
197
1.08k
                    Op::compute(p_in, scale, p_out, 1);
198
1.08k
                    ++p_in;
199
1.08k
                    ++p_out;
200
1.08k
                }
201
214
            }
202
215
        } else {
203
22
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
22
        }
205
237
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_14DecimalV2ValueEEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_12Decimal128V3EEEjRS7_s
Line
Count
Source
179
48
                                Int16 out_scale) {
180
48
        Int16 scale_arg = in_scale - out_scale;
181
48
        if (scale_arg > 0) {
182
44
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
44
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
44
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
44
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
44
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
43
            } else {
196
156
                while (p_in < end_in) {
197
113
                    Op::compute(p_in, scale, p_out, 1);
198
113
                    ++p_in;
199
113
                    ++p_out;
200
113
                }
201
43
            }
202
44
        } else {
203
4
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
4
        }
205
48
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIN4wide7integerILm256EiEEEEEEjRSB_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIiEEEEjRS8_s
Line
Count
Source
179
38
                                Int16 out_scale) {
180
38
        Int16 scale_arg = in_scale - out_scale;
181
38
        if (scale_arg > 0) {
182
35
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
35
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
35
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
35
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
35
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
34
            } else {
196
136
                while (p_in < end_in) {
197
102
                    Op::compute(p_in, scale, p_out, 1);
198
102
                    ++p_in;
199
102
                    ++p_out;
200
102
                }
201
34
            }
202
35
        } else {
203
3
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
3
        }
205
38
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIlEEEEjRS8_s
Line
Count
Source
179
43
                                Int16 out_scale) {
180
43
        Int16 scale_arg = in_scale - out_scale;
181
43
        if (scale_arg > 0) {
182
37
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
37
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
37
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
37
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
37
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
36
            } else {
196
153
                while (p_in < end_in) {
197
117
                    Op::compute(p_in, scale, p_out, 1);
198
117
                    ++p_in;
199
117
                    ++p_out;
200
117
                }
201
36
            }
202
37
        } else {
203
6
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
6
        }
205
43
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_14DecimalV2ValueEEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_12Decimal128V3EEEjRS7_s
Line
Count
Source
179
937
                                Int16 out_scale) {
180
937
        Int16 scale_arg = in_scale - out_scale;
181
937
        if (scale_arg > 0) {
182
206
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
206
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
206
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
206
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
206
            if (out_scale < 0) {
189
13
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
26
                while (p_in < end_in) {
191
13
                    Op::compute(p_in, scale, p_out, negative_scale);
192
13
                    ++p_in;
193
13
                    ++p_out;
194
13
                }
195
193
            } else {
196
592
                while (p_in < end_in) {
197
399
                    Op::compute(p_in, scale, p_out, 1);
198
399
                    ++p_in;
199
399
                    ++p_out;
200
399
                }
201
193
            }
202
731
        } else {
203
731
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
731
        }
205
937
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIN4wide7integerILm256EiEEEEEEjRSB_s
Line
Count
Source
179
14
                                Int16 out_scale) {
180
14
        Int16 scale_arg = in_scale - out_scale;
181
14
        if (scale_arg > 0) {
182
0
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
0
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
0
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
0
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
0
            if (out_scale < 0) {
189
0
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
0
                while (p_in < end_in) {
191
0
                    Op::compute(p_in, scale, p_out, negative_scale);
192
0
                    ++p_in;
193
0
                    ++p_out;
194
0
                }
195
0
            } else {
196
0
                while (p_in < end_in) {
197
0
                    Op::compute(p_in, scale, p_out, 1);
198
0
                    ++p_in;
199
0
                    ++p_out;
200
0
                }
201
0
            }
202
14
        } else {
203
14
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
14
        }
205
14
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIiEEEEjRS8_s
Line
Count
Source
179
36
                                Int16 out_scale) {
180
36
        Int16 scale_arg = in_scale - out_scale;
181
36
        if (scale_arg > 0) {
182
35
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
35
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
35
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
35
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
35
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
34
            } else {
196
136
                while (p_in < end_in) {
197
102
                    Op::compute(p_in, scale, p_out, 1);
198
102
                    ++p_in;
199
102
                    ++p_out;
200
102
                }
201
34
            }
202
35
        } else {
203
1
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
1
        }
205
36
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIlEEEEjRS8_s
Line
Count
Source
179
39
                                Int16 out_scale) {
180
39
        Int16 scale_arg = in_scale - out_scale;
181
39
        if (scale_arg > 0) {
182
37
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
37
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
37
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
37
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
37
            if (out_scale < 0) {
189
2
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
14
                while (p_in < end_in) {
191
12
                    Op::compute(p_in, scale, p_out, negative_scale);
192
12
                    ++p_in;
193
12
                    ++p_out;
194
12
                }
195
35
            } else {
196
142
                while (p_in < end_in) {
197
107
                    Op::compute(p_in, scale, p_out, 1);
198
107
                    ++p_in;
199
107
                    ++p_out;
200
107
                }
201
35
            }
202
37
        } else {
203
2
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
2
        }
205
39
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_14DecimalV2ValueEEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_12Decimal128V3EEEjRS7_s
Line
Count
Source
179
53
                                Int16 out_scale) {
180
53
        Int16 scale_arg = in_scale - out_scale;
181
53
        if (scale_arg > 0) {
182
51
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
51
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
51
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
51
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
51
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
50
            } else {
196
170
                while (p_in < end_in) {
197
120
                    Op::compute(p_in, scale, p_out, 1);
198
120
                    ++p_in;
199
120
                    ++p_out;
200
120
                }
201
50
            }
202
51
        } else {
203
2
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
2
        }
205
53
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIN4wide7integerILm256EiEEEEEEjRSB_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIiEEEEjRS8_s
Line
Count
Source
179
31
                                Int16 out_scale) {
180
31
        Int16 scale_arg = in_scale - out_scale;
181
31
        if (scale_arg > 0) {
182
29
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
29
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
29
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
29
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
29
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
28
            } else {
196
90
                while (p_in < end_in) {
197
62
                    Op::compute(p_in, scale, p_out, 1);
198
62
                    ++p_in;
199
62
                    ++p_out;
200
62
                }
201
28
            }
202
29
        } else {
203
2
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
2
        }
205
31
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIlEEEEjRS8_s
Line
Count
Source
179
91
                                Int16 out_scale) {
180
91
        Int16 scale_arg = in_scale - out_scale;
181
91
        if (scale_arg > 0) {
182
19
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
19
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
19
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
19
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
19
            if (out_scale < 0) {
189
1
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
2
                while (p_in < end_in) {
191
1
                    Op::compute(p_in, scale, p_out, negative_scale);
192
1
                    ++p_in;
193
1
                    ++p_out;
194
1
                }
195
18
            } else {
196
70
                while (p_in < end_in) {
197
52
                    Op::compute(p_in, scale, p_out, 1);
198
52
                    ++p_in;
199
52
                    ++p_out;
200
52
                }
201
18
            }
202
72
        } else {
203
72
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
72
        }
205
91
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKNS_21DecimalPaddedPODArrayINS_14DecimalV2ValueEEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKNS_21DecimalPaddedPODArrayINS_12Decimal128V3EEEjRS7_s
Line
Count
Source
179
26
                                Int16 out_scale) {
180
26
        Int16 scale_arg = in_scale - out_scale;
181
26
        if (scale_arg > 0) {
182
23
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
183
184
23
            const NativeType* __restrict p_in = reinterpret_cast<const NativeType*>(in.data());
185
23
            const NativeType* end_in = reinterpret_cast<const NativeType*>(in.data()) + in.size();
186
23
            NativeType* __restrict p_out = reinterpret_cast<NativeType*>(out.data());
187
188
23
            if (out_scale < 0) {
189
3
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
190
6
                while (p_in < end_in) {
191
3
                    Op::compute(p_in, scale, p_out, negative_scale);
192
3
                    ++p_in;
193
3
                    ++p_out;
194
3
                }
195
20
            } else {
196
74
                while (p_in < end_in) {
197
54
                    Op::compute(p_in, scale, p_out, 1);
198
54
                    ++p_in;
199
54
                    ++p_out;
200
54
                }
201
20
            }
202
23
        } else {
203
3
            memcpy(out.data(), in.data(), in.size() * sizeof(T));
204
3
        }
205
26
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKNS_21DecimalPaddedPODArrayINS_7DecimalIN4wide7integerILm256EiEEEEEEjRSB_s
206
207
    static NO_INLINE void apply(const NativeType& in, UInt32 in_scale, NativeType& out,
208
4.37k
                                Int16 out_scale) {
209
4.37k
        Int16 scale_arg = in_scale - out_scale;
210
4.37k
        if (scale_arg > 0) {
211
2.81k
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
2.81k
            if (out_scale < 0) {
213
1.97k
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
1.97k
                Op::compute(&in, scale, &out, negative_scale);
215
1.97k
            } else {
216
840
                Op::compute(&in, scale, &out, 1);
217
840
            }
218
2.81k
        } else {
219
1.56k
            memcpy(&out, &in, sizeof(NativeType));
220
1.56k
        }
221
4.37k
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKijRis
Line
Count
Source
208
564
                                Int16 out_scale) {
209
564
        Int16 scale_arg = in_scale - out_scale;
210
564
        if (scale_arg > 0) {
211
366
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
366
            if (out_scale < 0) {
213
268
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
268
                Op::compute(&in, scale, &out, negative_scale);
215
268
            } else {
216
98
                Op::compute(&in, scale, &out, 1);
217
98
            }
218
366
        } else {
219
198
            memcpy(&out, &in, sizeof(NativeType));
220
198
        }
221
564
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKljRls
Line
Count
Source
208
308
                                Int16 out_scale) {
209
308
        Int16 scale_arg = in_scale - out_scale;
210
308
        if (scale_arg > 0) {
211
198
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
198
            if (out_scale < 0) {
213
133
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
133
                Op::compute(&in, scale, &out, negative_scale);
215
133
            } else {
216
65
                Op::compute(&in, scale, &out, 1);
217
65
            }
218
198
        } else {
219
110
            memcpy(&out, &in, sizeof(NativeType));
220
110
        }
221
308
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKnjRns
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKnjRns
Line
Count
Source
208
3
                                Int16 out_scale) {
209
3
        Int16 scale_arg = in_scale - out_scale;
210
3
        if (scale_arg > 0) {
211
2
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
2
            if (out_scale < 0) {
213
0
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
0
                Op::compute(&in, scale, &out, negative_scale);
215
2
            } else {
216
2
                Op::compute(&in, scale, &out, 1);
217
2
            }
218
2
        } else {
219
1
            memcpy(&out, &in, sizeof(NativeType));
220
1
        }
221
3
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE5applyERKN4wide7integerILm256EiEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKijRis
Line
Count
Source
208
564
                                Int16 out_scale) {
209
564
        Int16 scale_arg = in_scale - out_scale;
210
564
        if (scale_arg > 0) {
211
364
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
364
            if (out_scale < 0) {
213
264
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
264
                Op::compute(&in, scale, &out, negative_scale);
215
264
            } else {
216
100
                Op::compute(&in, scale, &out, 1);
217
100
            }
218
364
        } else {
219
200
            memcpy(&out, &in, sizeof(NativeType));
220
200
        }
221
564
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKljRls
Line
Count
Source
208
307
                                Int16 out_scale) {
209
307
        Int16 scale_arg = in_scale - out_scale;
210
307
        if (scale_arg > 0) {
211
195
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
195
            if (out_scale < 0) {
213
128
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
128
                Op::compute(&in, scale, &out, negative_scale);
215
128
            } else {
216
67
                Op::compute(&in, scale, &out, 1);
217
67
            }
218
195
        } else {
219
112
            memcpy(&out, &in, sizeof(NativeType));
220
112
        }
221
307
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKnjRns
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKnjRns
Line
Count
Source
208
4
                                Int16 out_scale) {
209
4
        Int16 scale_arg = in_scale - out_scale;
210
4
        if (scale_arg > 0) {
211
2
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
2
            if (out_scale < 0) {
213
0
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
0
                Op::compute(&in, scale, &out, negative_scale);
215
2
            } else {
216
2
                Op::compute(&in, scale, &out, 1);
217
2
            }
218
2
        } else {
219
2
            memcpy(&out, &in, sizeof(NativeType));
220
2
        }
221
4
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE5applyERKN4wide7integerILm256EiEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKijRis
Line
Count
Source
208
566
                                Int16 out_scale) {
209
566
        Int16 scale_arg = in_scale - out_scale;
210
566
        if (scale_arg > 0) {
211
366
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
366
            if (out_scale < 0) {
213
266
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
266
                Op::compute(&in, scale, &out, negative_scale);
215
266
            } else {
216
100
                Op::compute(&in, scale, &out, 1);
217
100
            }
218
366
        } else {
219
200
            memcpy(&out, &in, sizeof(NativeType));
220
200
        }
221
566
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKljRls
Line
Count
Source
208
306
                                Int16 out_scale) {
209
306
        Int16 scale_arg = in_scale - out_scale;
210
306
        if (scale_arg > 0) {
211
194
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
194
            if (out_scale < 0) {
213
128
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
128
                Op::compute(&in, scale, &out, negative_scale);
215
128
            } else {
216
66
                Op::compute(&in, scale, &out, 1);
217
66
            }
218
194
        } else {
219
112
            memcpy(&out, &in, sizeof(NativeType));
220
112
        }
221
306
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKnjRns
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKnjRns
Line
Count
Source
208
5
                                Int16 out_scale) {
209
5
        Int16 scale_arg = in_scale - out_scale;
210
5
        if (scale_arg > 0) {
211
4
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
4
            if (out_scale < 0) {
213
2
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
2
                Op::compute(&in, scale, &out, negative_scale);
215
2
            } else {
216
2
                Op::compute(&in, scale, &out, 1);
217
2
            }
218
4
        } else {
219
1
            memcpy(&out, &in, sizeof(NativeType));
220
1
        }
221
5
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE5applyERKN4wide7integerILm256EiEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKijRis
Line
Count
Source
208
565
                                Int16 out_scale) {
209
565
        Int16 scale_arg = in_scale - out_scale;
210
565
        if (scale_arg > 0) {
211
365
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
365
            if (out_scale < 0) {
213
265
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
265
                Op::compute(&in, scale, &out, negative_scale);
215
265
            } else {
216
100
                Op::compute(&in, scale, &out, 1);
217
100
            }
218
365
        } else {
219
200
            memcpy(&out, &in, sizeof(NativeType));
220
200
        }
221
565
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKljRls
Line
Count
Source
208
305
                                Int16 out_scale) {
209
305
        Int16 scale_arg = in_scale - out_scale;
210
305
        if (scale_arg > 0) {
211
193
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
193
            if (out_scale < 0) {
213
128
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
128
                Op::compute(&in, scale, &out, negative_scale);
215
128
            } else {
216
65
                Op::compute(&in, scale, &out, 1);
217
65
            }
218
193
        } else {
219
112
            memcpy(&out, &in, sizeof(NativeType));
220
112
        }
221
305
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKnjRns
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKnjRns
Line
Count
Source
208
3
                                Int16 out_scale) {
209
3
        Int16 scale_arg = in_scale - out_scale;
210
3
        if (scale_arg > 0) {
211
2
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
2
            if (out_scale < 0) {
213
0
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
0
                Op::compute(&in, scale, &out, negative_scale);
215
2
            } else {
216
2
                Op::compute(&in, scale, &out, 1);
217
2
            }
218
2
        } else {
219
1
            memcpy(&out, &in, sizeof(NativeType));
220
1
        }
221
3
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE5applyERKN4wide7integerILm256EiEEjRS7_s
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKijRis
Line
Count
Source
208
568
                                Int16 out_scale) {
209
568
        Int16 scale_arg = in_scale - out_scale;
210
568
        if (scale_arg > 0) {
211
368
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
368
            if (out_scale < 0) {
213
265
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
265
                Op::compute(&in, scale, &out, negative_scale);
215
265
            } else {
216
103
                Op::compute(&in, scale, &out, 1);
217
103
            }
218
368
        } else {
219
200
            memcpy(&out, &in, sizeof(NativeType));
220
200
        }
221
568
    }
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKljRls
Line
Count
Source
208
306
                                Int16 out_scale) {
209
306
        Int16 scale_arg = in_scale - out_scale;
210
306
        if (scale_arg > 0) {
211
194
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
194
            if (out_scale < 0) {
213
128
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
128
                Op::compute(&in, scale, &out, negative_scale);
215
128
            } else {
216
66
                Op::compute(&in, scale, &out, 1);
217
66
            }
218
194
        } else {
219
112
            memcpy(&out, &in, sizeof(NativeType));
220
112
        }
221
306
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKnjRns
_ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKnjRns
Line
Count
Source
208
3
                                Int16 out_scale) {
209
3
        Int16 scale_arg = in_scale - out_scale;
210
3
        if (scale_arg > 0) {
211
2
            auto scale = DecimalScaleParams::get_scale_factor<Type>(scale_arg);
212
2
            if (out_scale < 0) {
213
0
                auto negative_scale = DecimalScaleParams::get_scale_factor<Type>(-out_scale);
214
0
                Op::compute(&in, scale, &out, negative_scale);
215
2
            } else {
216
2
                Op::compute(&in, scale, &out, 1);
217
2
            }
218
2
        } else {
219
1
            memcpy(&out, &in, sizeof(NativeType));
220
1
        }
221
3
    }
Unexecuted instantiation: _ZN5doris19DecimalRoundingImplILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE5applyERKN4wide7integerILm256EiEEjRS7_s
222
};
223
224
template <TieBreakingMode tie_breaking_mode>
225
44
inline float roundWithMode(float x, RoundingMode mode) {
226
44
    switch (mode) {
227
20
    case RoundingMode::Round: {
228
20
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
229
10
            return nearbyintf(x);
230
10
        } else {
231
10
            return roundf(x);
232
10
        }
233
20
    }
234
28
    case RoundingMode::Floor:
235
28
        return floorf(x);
236
8
    case RoundingMode::Ceil:
237
8
        return ceilf(x);
238
8
    case RoundingMode::Trunc:
239
8
        return truncf(x);
240
44
    }
241
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
242
0
    __builtin_unreachable();
243
44
}
_ZN5doris13roundWithModeILNS_15TieBreakingModeE0EEEffNS_12RoundingModeE
Line
Count
Source
225
34
inline float roundWithMode(float x, RoundingMode mode) {
226
34
    switch (mode) {
227
10
    case RoundingMode::Round: {
228
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
229
            return nearbyintf(x);
230
10
        } else {
231
10
            return roundf(x);
232
10
        }
233
10
    }
234
18
    case RoundingMode::Floor:
235
18
        return floorf(x);
236
8
    case RoundingMode::Ceil:
237
8
        return ceilf(x);
238
8
    case RoundingMode::Trunc:
239
8
        return truncf(x);
240
34
    }
241
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
242
0
    __builtin_unreachable();
243
34
}
_ZN5doris13roundWithModeILNS_15TieBreakingModeE1EEEffNS_12RoundingModeE
Line
Count
Source
225
10
inline float roundWithMode(float x, RoundingMode mode) {
226
10
    switch (mode) {
227
10
    case RoundingMode::Round: {
228
10
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
229
10
            return nearbyintf(x);
230
        } else {
231
            return roundf(x);
232
        }
233
10
    }
234
10
    case RoundingMode::Floor:
235
10
        return floorf(x);
236
0
    case RoundingMode::Ceil:
237
0
        return ceilf(x);
238
0
    case RoundingMode::Trunc:
239
0
        return truncf(x);
240
10
    }
241
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
242
0
    __builtin_unreachable();
243
10
}
244
245
template <TieBreakingMode tie_breaking_mode>
246
4.15k
inline double roundWithMode(double x, RoundingMode mode) {
247
4.15k
    switch (mode) {
248
3.89k
    case RoundingMode::Round: {
249
3.89k
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
250
72
            return nearbyint(x);
251
3.82k
        } else {
252
3.82k
            return round(x);
253
3.82k
        }
254
3.89k
    }
255
3.99k
    case RoundingMode::Floor:
256
3.99k
        return floor(x);
257
81
    case RoundingMode::Ceil:
258
81
        return ceil(x);
259
75
    case RoundingMode::Trunc:
260
75
        return trunc(x);
261
4.15k
    }
262
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
263
0
    __builtin_unreachable();
264
4.15k
}
_ZN5doris13roundWithModeILNS_15TieBreakingModeE0EEEddNS_12RoundingModeE
Line
Count
Source
246
4.08k
inline double roundWithMode(double x, RoundingMode mode) {
247
4.08k
    switch (mode) {
248
3.82k
    case RoundingMode::Round: {
249
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
250
            return nearbyint(x);
251
3.82k
        } else {
252
3.82k
            return round(x);
253
3.82k
        }
254
3.82k
    }
255
3.92k
    case RoundingMode::Floor:
256
3.92k
        return floor(x);
257
81
    case RoundingMode::Ceil:
258
81
        return ceil(x);
259
75
    case RoundingMode::Trunc:
260
75
        return trunc(x);
261
4.08k
    }
262
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
263
0
    __builtin_unreachable();
264
4.08k
}
_ZN5doris13roundWithModeILNS_15TieBreakingModeE1EEEddNS_12RoundingModeE
Line
Count
Source
246
72
inline double roundWithMode(double x, RoundingMode mode) {
247
72
    switch (mode) {
248
72
    case RoundingMode::Round: {
249
72
        if constexpr (tie_breaking_mode == TieBreakingMode::Bankers) {
250
72
            return nearbyint(x);
251
        } else {
252
            return round(x);
253
        }
254
72
    }
255
72
    case RoundingMode::Floor:
256
72
        return floor(x);
257
0
    case RoundingMode::Ceil:
258
0
        return ceil(x);
259
0
    case RoundingMode::Trunc:
260
0
        return trunc(x);
261
72
    }
262
0
    throw doris::Exception(ErrorCode::INTERNAL_ERROR, "roundWithMode __builtin_unreachable ", mode);
263
0
    __builtin_unreachable();
264
72
}
265
266
template <typename T, TieBreakingMode tie_breaking_mode>
267
class BaseFloatRoundingComputation {
268
public:
269
    using ScalarType = T;
270
    using VectorType = T;
271
    static const size_t data_count = 1;
272
273
4.19k
    static VectorType load(const ScalarType* in) { return *in; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE4loadEPKf
Line
Count
Source
273
34
    static VectorType load(const ScalarType* in) { return *in; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE4loadEPKd
Line
Count
Source
273
4.08k
    static VectorType load(const ScalarType* in) { return *in; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE4loadEPKf
Line
Count
Source
273
10
    static VectorType load(const ScalarType* in) { return *in; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE4loadEPKd
Line
Count
Source
273
72
    static VectorType load(const ScalarType* in) { return *in; }
274
739
    static VectorType load1(const ScalarType in) { return in; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5load1Ef
Line
Count
Source
274
34
    static VectorType load1(const ScalarType in) { return in; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5load1Ed
Line
Count
Source
274
660
    static VectorType load1(const ScalarType in) { return in; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE5load1Ef
Line
Count
Source
274
10
    static VectorType load1(const ScalarType in) { return in; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE5load1Ed
Line
Count
Source
274
35
    static VectorType load1(const ScalarType in) { return in; }
275
4.19k
    static VectorType store(ScalarType* out, ScalarType val) { return *out = val; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5storeEPff
Line
Count
Source
275
34
    static VectorType store(ScalarType* out, ScalarType val) { return *out = val; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5storeEPdd
Line
Count
Source
275
4.08k
    static VectorType store(ScalarType* out, ScalarType val) { return *out = val; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE5storeEPff
Line
Count
Source
275
10
    static VectorType store(ScalarType* out, ScalarType val) { return *out = val; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE5storeEPdd
Line
Count
Source
275
72
    static VectorType store(ScalarType* out, ScalarType val) { return *out = val; }
276
3.91k
    static VectorType multiply(VectorType val, VectorType scale) { return val * scale; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE8multiplyEff
Line
Count
Source
276
24
    static VectorType multiply(VectorType val, VectorType scale) { return val * scale; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE8multiplyEdd
Line
Count
Source
276
3.84k
    static VectorType multiply(VectorType val, VectorType scale) { return val * scale; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE8multiplyEff
Line
Count
Source
276
6
    static VectorType multiply(VectorType val, VectorType scale) { return val * scale; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE8multiplyEdd
Line
Count
Source
276
37
    static VectorType multiply(VectorType val, VectorType scale) { return val * scale; }
277
3.91k
    static VectorType divide(VectorType val, VectorType scale) { return val / scale; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE6divideEff
Line
Count
Source
277
24
    static VectorType divide(VectorType val, VectorType scale) { return val / scale; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE6divideEdd
Line
Count
Source
277
3.84k
    static VectorType divide(VectorType val, VectorType scale) { return val / scale; }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE6divideEff
Line
Count
Source
277
6
    static VectorType divide(VectorType val, VectorType scale) { return val / scale; }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE6divideEdd
Line
Count
Source
277
37
    static VectorType divide(VectorType val, VectorType scale) { return val / scale; }
278
    template <RoundingMode mode>
279
4.19k
    static VectorType apply(VectorType val) {
280
4.19k
        return roundWithMode<tie_breaking_mode>(val, mode);
281
4.19k
    }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE11EEEff
Line
Count
Source
279
8
    static VectorType apply(VectorType val) {
280
8
        return roundWithMode<tie_breaking_mode>(val, mode);
281
8
    }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE11EEEdd
Line
Count
Source
279
75
    static VectorType apply(VectorType val) {
280
75
        return roundWithMode<tie_breaking_mode>(val, mode);
281
75
    }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE9EEEff
Line
Count
Source
279
8
    static VectorType apply(VectorType val) {
280
8
        return roundWithMode<tie_breaking_mode>(val, mode);
281
8
    }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE9EEEdd
Line
Count
Source
279
99
    static VectorType apply(VectorType val) {
280
99
        return roundWithMode<tie_breaking_mode>(val, mode);
281
99
    }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE8EEEff
Line
Count
Source
279
10
    static VectorType apply(VectorType val) {
280
10
        return roundWithMode<tie_breaking_mode>(val, mode);
281
10
    }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE8EEEdd
Line
Count
Source
279
3.82k
    static VectorType apply(VectorType val) {
280
3.82k
        return roundWithMode<tie_breaking_mode>(val, mode);
281
3.82k
    }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE10EEEff
Line
Count
Source
279
8
    static VectorType apply(VectorType val) {
280
8
        return roundWithMode<tie_breaking_mode>(val, mode);
281
8
    }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE5applyILNS_12RoundingModeE10EEEdd
Line
Count
Source
279
81
    static VectorType apply(VectorType val) {
280
81
        return roundWithMode<tie_breaking_mode>(val, mode);
281
81
    }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE5applyILNS_12RoundingModeE8EEEff
Line
Count
Source
279
10
    static VectorType apply(VectorType val) {
280
10
        return roundWithMode<tie_breaking_mode>(val, mode);
281
10
    }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE5applyILNS_12RoundingModeE8EEEdd
Line
Count
Source
279
72
    static VectorType apply(VectorType val) {
280
72
        return roundWithMode<tie_breaking_mode>(val, mode);
281
72
    }
282
283
739
    static VectorType prepare(size_t scale) { return load1(scale); }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE0EE7prepareEm
Line
Count
Source
283
34
    static VectorType prepare(size_t scale) { return load1(scale); }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE0EE7prepareEm
Line
Count
Source
283
660
    static VectorType prepare(size_t scale) { return load1(scale); }
_ZN5doris28BaseFloatRoundingComputationIfLNS_15TieBreakingModeE1EE7prepareEm
Line
Count
Source
283
10
    static VectorType prepare(size_t scale) { return load1(scale); }
_ZN5doris28BaseFloatRoundingComputationIdLNS_15TieBreakingModeE1EE7prepareEm
Line
Count
Source
283
35
    static VectorType prepare(size_t scale) { return load1(scale); }
284
};
285
286
/** Implementation of low-level round-off functions for floating-point values.
287
  */
288
template <typename T, RoundingMode rounding_mode, ScaleMode scale_mode,
289
          TieBreakingMode tie_breaking_mode>
290
class FloatRoundingComputation : public BaseFloatRoundingComputation<T, tie_breaking_mode> {
291
    using Base = BaseFloatRoundingComputation<T, tie_breaking_mode>;
292
293
public:
294
    static inline void compute(const T* __restrict in, const typename Base::VectorType& scale,
295
4.19k
                               T* __restrict out) {
296
4.19k
        auto val = Base::load(in);
297
298
4.19k
        if (scale_mode == ScaleMode::Positive) {
299
3.87k
            val = Base::multiply(val, scale);
300
3.87k
        } else if (scale_mode == ScaleMode::Negative) {
301
40
            val = Base::divide(val, scale);
302
40
        }
303
304
4.19k
        val = Base::template apply<rounding_mode>(val);
305
306
4.19k
        if (scale_mode == ScaleMode::Positive) {
307
3.87k
            val = Base::divide(val, scale);
308
3.87k
        } else if (scale_mode == ScaleMode::Negative) {
309
40
            val = Base::multiply(val, scale);
310
40
        }
311
312
4.19k
        Base::store(out, val);
313
4.19k
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
4
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
4
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
12
                               T* __restrict out) {
296
12
        auto val = Base::load(in);
297
298
12
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
12
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
12
        val = Base::template apply<rounding_mode>(val);
305
306
12
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
12
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
12
        Base::store(out, val);
313
12
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
53
                               T* __restrict out) {
296
53
        auto val = Base::load(in);
297
298
53
        if (scale_mode == ScaleMode::Positive) {
299
53
            val = Base::multiply(val, scale);
300
53
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
53
        val = Base::template apply<rounding_mode>(val);
305
306
53
        if (scale_mode == ScaleMode::Positive) {
307
53
            val = Base::divide(val, scale);
308
53
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
53
        Base::store(out, val);
313
53
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
10
                               T* __restrict out) {
296
10
        auto val = Base::load(in);
297
298
10
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
10
        } else if (scale_mode == ScaleMode::Negative) {
301
10
            val = Base::divide(val, scale);
302
10
        }
303
304
10
        val = Base::template apply<rounding_mode>(val);
305
306
10
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
10
        } else if (scale_mode == ScaleMode::Negative) {
309
10
            val = Base::multiply(val, scale);
310
10
        }
311
312
10
        Base::store(out, val);
313
10
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
4
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
4
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
85
                               T* __restrict out) {
296
85
        auto val = Base::load(in);
297
298
85
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
85
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
85
        val = Base::template apply<rounding_mode>(val);
305
306
85
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
85
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
85
        Base::store(out, val);
313
85
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
12
                               T* __restrict out) {
296
12
        auto val = Base::load(in);
297
298
12
        if (scale_mode == ScaleMode::Positive) {
299
12
            val = Base::multiply(val, scale);
300
12
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
12
        val = Base::template apply<rounding_mode>(val);
305
306
12
        if (scale_mode == ScaleMode::Positive) {
307
12
            val = Base::divide(val, scale);
308
12
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
12
        Base::store(out, val);
313
12
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
4
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
4
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
73
                               T* __restrict out) {
296
73
        auto val = Base::load(in);
297
298
73
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
73
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
73
        val = Base::template apply<rounding_mode>(val);
305
306
73
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
73
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
73
        Base::store(out, val);
313
73
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
3.74k
                               T* __restrict out) {
296
3.74k
        auto val = Base::load(in);
297
298
3.74k
        if (scale_mode == ScaleMode::Positive) {
299
3.74k
            val = Base::multiply(val, scale);
300
3.74k
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
3.74k
        val = Base::template apply<rounding_mode>(val);
305
306
3.74k
        if (scale_mode == ScaleMode::Positive) {
307
3.74k
            val = Base::divide(val, scale);
308
3.74k
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
3.74k
        Base::store(out, val);
313
3.74k
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
6
                               T* __restrict out) {
296
6
        auto val = Base::load(in);
297
298
6
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
6
        } else if (scale_mode == ScaleMode::Negative) {
301
6
            val = Base::divide(val, scale);
302
6
        }
303
304
6
        val = Base::template apply<rounding_mode>(val);
305
306
6
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
6
        } else if (scale_mode == ScaleMode::Negative) {
309
6
            val = Base::multiply(val, scale);
310
6
        }
311
312
6
        Base::store(out, val);
313
6
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
4
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
4
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
67
                               T* __restrict out) {
296
67
        auto val = Base::load(in);
297
298
67
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
67
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
67
        val = Base::template apply<rounding_mode>(val);
305
306
67
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
67
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
67
        Base::store(out, val);
313
67
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
8
                               T* __restrict out) {
296
8
        auto val = Base::load(in);
297
298
8
        if (scale_mode == ScaleMode::Positive) {
299
8
            val = Base::multiply(val, scale);
300
8
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
8
        val = Base::template apply<rounding_mode>(val);
305
306
8
        if (scale_mode == ScaleMode::Positive) {
307
8
            val = Base::divide(val, scale);
308
8
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
8
        Base::store(out, val);
313
8
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE7computeEPKdRS5_Pd
Line
Count
Source
295
6
                               T* __restrict out) {
296
6
        auto val = Base::load(in);
297
298
6
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
6
        } else if (scale_mode == ScaleMode::Negative) {
301
6
            val = Base::divide(val, scale);
302
6
        }
303
304
6
        val = Base::template apply<rounding_mode>(val);
305
306
6
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
6
        } else if (scale_mode == ScaleMode::Negative) {
309
6
            val = Base::multiply(val, scale);
310
6
        }
311
312
6
        Base::store(out, val);
313
6
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE7computeEPKfRS5_Pf
Line
Count
Source
295
4
                               T* __restrict out) {
296
4
        auto val = Base::load(in);
297
298
4
        if (scale_mode == ScaleMode::Positive) {
299
4
            val = Base::multiply(val, scale);
300
4
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
4
        val = Base::template apply<rounding_mode>(val);
305
306
4
        if (scale_mode == ScaleMode::Positive) {
307
4
            val = Base::divide(val, scale);
308
4
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
4
        Base::store(out, val);
313
4
    }
_ZN5doris24FloatRoundingComputationIfLNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE7computeEPKfRS5_Pf
Line
Count
Source
295
2
                               T* __restrict out) {
296
2
        auto val = Base::load(in);
297
298
2
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
2
        } else if (scale_mode == ScaleMode::Negative) {
301
2
            val = Base::divide(val, scale);
302
2
        }
303
304
2
        val = Base::template apply<rounding_mode>(val);
305
306
2
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
2
        } else if (scale_mode == ScaleMode::Negative) {
309
2
            val = Base::multiply(val, scale);
310
2
        }
311
312
2
        Base::store(out, val);
313
2
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE7computeEPKdRS5_Pd
Line
Count
Source
295
35
                               T* __restrict out) {
296
35
        auto val = Base::load(in);
297
298
35
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
35
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
35
        val = Base::template apply<rounding_mode>(val);
305
306
35
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
35
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
35
        Base::store(out, val);
313
35
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE7computeEPKdRS5_Pd
Line
Count
Source
295
31
                               T* __restrict out) {
296
31
        auto val = Base::load(in);
297
298
31
        if (scale_mode == ScaleMode::Positive) {
299
31
            val = Base::multiply(val, scale);
300
31
        } else if (scale_mode == ScaleMode::Negative) {
301
0
            val = Base::divide(val, scale);
302
0
        }
303
304
31
        val = Base::template apply<rounding_mode>(val);
305
306
31
        if (scale_mode == ScaleMode::Positive) {
307
31
            val = Base::divide(val, scale);
308
31
        } else if (scale_mode == ScaleMode::Negative) {
309
0
            val = Base::multiply(val, scale);
310
0
        }
311
312
31
        Base::store(out, val);
313
31
    }
_ZN5doris24FloatRoundingComputationIdLNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE7computeEPKdRS5_Pd
Line
Count
Source
295
6
                               T* __restrict out) {
296
6
        auto val = Base::load(in);
297
298
6
        if (scale_mode == ScaleMode::Positive) {
299
0
            val = Base::multiply(val, scale);
300
6
        } else if (scale_mode == ScaleMode::Negative) {
301
6
            val = Base::divide(val, scale);
302
6
        }
303
304
6
        val = Base::template apply<rounding_mode>(val);
305
306
6
        if (scale_mode == ScaleMode::Positive) {
307
0
            val = Base::divide(val, scale);
308
6
        } else if (scale_mode == ScaleMode::Negative) {
309
6
            val = Base::multiply(val, scale);
310
6
        }
311
312
6
        Base::store(out, val);
313
6
    }
314
};
315
316
/** Implementing high-level rounding functions.
317
  */
318
template <PrimitiveType Type, RoundingMode rounding_mode, ScaleMode scale_mode,
319
          TieBreakingMode tie_breaking_mode>
320
struct FloatRoundingImpl {
321
private:
322
    using T = typename PrimitiveTypeTraits<Type>::CppType;
323
    static_assert(!is_decimal(Type));
324
325
    using Op = FloatRoundingComputation<T, rounding_mode, scale_mode, tie_breaking_mode>;
326
    using Data = std::array<T, Op::data_count>;
327
    using ColumnType = ColumnVector<Type>;
328
    using Container = typename ColumnType::Container;
329
330
public:
331
606
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
606
        auto mm_scale = Op::prepare(scale);
333
334
606
        const size_t data_count = std::tuple_size<Data>();
335
336
606
        const T* end_in = in.data() + in.size();
337
606
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
606
        const T* __restrict p_in = in.data();
340
606
        T* __restrict p_out = out.data();
341
342
4.67k
        while (p_in < limit) {
343
4.06k
            Op::compute(p_in, mm_scale, p_out);
344
4.06k
            p_in += data_count;
345
4.06k
            p_out += data_count;
346
4.06k
        }
347
348
606
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
606
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
10
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
10
        auto mm_scale = Op::prepare(scale);
333
334
10
        const size_t data_count = std::tuple_size<Data>();
335
336
10
        const T* end_in = in.data() + in.size();
337
10
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
10
        const T* __restrict p_in = in.data();
340
10
        T* __restrict p_out = out.data();
341
342
20
        while (p_in < limit) {
343
10
            Op::compute(p_in, mm_scale, p_out);
344
10
            p_in += data_count;
345
10
            p_out += data_count;
346
10
        }
347
348
10
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
10
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
20
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
20
        auto mm_scale = Op::prepare(scale);
333
334
20
        const size_t data_count = std::tuple_size<Data>();
335
336
20
        const T* end_in = in.data() + in.size();
337
20
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
20
        const T* __restrict p_in = in.data();
340
20
        T* __restrict p_out = out.data();
341
342
59
        while (p_in < limit) {
343
39
            Op::compute(p_in, mm_scale, p_out);
344
39
            p_in += data_count;
345
39
            p_out += data_count;
346
39
        }
347
348
20
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
20
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
8
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
8
        auto mm_scale = Op::prepare(scale);
333
334
8
        const size_t data_count = std::tuple_size<Data>();
335
336
8
        const T* end_in = in.data() + in.size();
337
8
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
8
        const T* __restrict p_in = in.data();
340
8
        T* __restrict p_out = out.data();
341
342
16
        while (p_in < limit) {
343
8
            Op::compute(p_in, mm_scale, p_out);
344
8
            p_in += data_count;
345
8
            p_out += data_count;
346
8
        }
347
348
8
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
8
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
41
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
41
        auto mm_scale = Op::prepare(scale);
333
334
41
        const size_t data_count = std::tuple_size<Data>();
335
336
41
        const T* end_in = in.data() + in.size();
337
41
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
41
        const T* __restrict p_in = in.data();
340
41
        T* __restrict p_out = out.data();
341
342
121
        while (p_in < limit) {
343
80
            Op::compute(p_in, mm_scale, p_out);
344
80
            p_in += data_count;
345
80
            p_out += data_count;
346
80
        }
347
348
41
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
41
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
21
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
21
        auto mm_scale = Op::prepare(scale);
333
334
21
        const size_t data_count = std::tuple_size<Data>();
335
336
21
        const T* end_in = in.data() + in.size();
337
21
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
21
        const T* __restrict p_in = in.data();
340
21
        T* __restrict p_out = out.data();
341
342
90
        while (p_in < limit) {
343
69
            Op::compute(p_in, mm_scale, p_out);
344
69
            p_in += data_count;
345
69
            p_out += data_count;
346
69
        }
347
348
21
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
21
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
463
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
463
        auto mm_scale = Op::prepare(scale);
333
334
463
        const size_t data_count = std::tuple_size<Data>();
335
336
463
        const T* end_in = in.data() + in.size();
337
463
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
463
        const T* __restrict p_in = in.data();
340
463
        T* __restrict p_out = out.data();
341
342
4.20k
        while (p_in < limit) {
343
3.74k
            Op::compute(p_in, mm_scale, p_out);
344
3.74k
            p_in += data_count;
345
3.74k
            p_out += data_count;
346
3.74k
        }
347
348
463
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
463
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
24
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
24
        auto mm_scale = Op::prepare(scale);
333
334
24
        const size_t data_count = std::tuple_size<Data>();
335
336
24
        const T* end_in = in.data() + in.size();
337
24
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
24
        const T* __restrict p_in = in.data();
340
24
        T* __restrict p_out = out.data();
341
342
85
        while (p_in < limit) {
343
61
            Op::compute(p_in, mm_scale, p_out);
344
61
            p_in += data_count;
345
61
            p_out += data_count;
346
61
        }
347
348
24
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
24
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
11
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
11
        auto mm_scale = Op::prepare(scale);
333
334
11
        const size_t data_count = std::tuple_size<Data>();
335
336
11
        const T* end_in = in.data() + in.size();
337
11
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
11
        const T* __restrict p_in = in.data();
340
11
        T* __restrict p_out = out.data();
341
342
42
        while (p_in < limit) {
343
31
            Op::compute(p_in, mm_scale, p_out);
344
31
            p_in += data_count;
345
31
            p_out += data_count;
346
31
        }
347
348
11
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
11
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Line
Count
Source
331
8
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
332
8
        auto mm_scale = Op::prepare(scale);
333
334
8
        const size_t data_count = std::tuple_size<Data>();
335
336
8
        const T* end_in = in.data() + in.size();
337
8
        const T* limit = in.data() + in.size() / data_count * data_count;
338
339
8
        const T* __restrict p_in = in.data();
340
8
        T* __restrict p_out = out.data();
341
342
33
        while (p_in < limit) {
343
25
            Op::compute(p_in, mm_scale, p_out);
344
25
            p_in += data_count;
345
25
            p_out += data_count;
346
25
        }
347
348
8
        if (p_in < end_in) {
349
0
            Data tmp_src {{}};
350
0
            Data tmp_dst;
351
352
0
            size_t tail_size_bytes = (end_in - p_in) * sizeof(*p_in);
353
354
0
            memcpy(&tmp_src, p_in, tail_size_bytes);
355
0
            Op::compute(reinterpret_cast<T*>(&tmp_src), mm_scale, reinterpret_cast<T*>(&tmp_dst));
356
0
            memcpy(p_out, &tmp_dst, tail_size_bytes);
357
0
        }
358
8
    }
Unexecuted instantiation: _ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
359
360
133
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
133
        auto mm_scale = Op::prepare(scale);
362
133
        Op::compute(&in, mm_scale, &out);
363
133
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
14
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
14
        auto mm_scale = Op::prepare(scale);
362
14
        Op::compute(&in, mm_scale, &out);
363
14
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
5
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
5
        auto mm_scale = Op::prepare(scale);
362
5
        Op::compute(&in, mm_scale, &out);
363
5
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
12
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
12
        auto mm_scale = Op::prepare(scale);
362
12
        Op::compute(&in, mm_scale, &out);
363
12
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
8
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
8
        auto mm_scale = Op::prepare(scale);
362
8
        Op::compute(&in, mm_scale, &out);
363
8
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKfmRf
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKfmRf
Line
Count
Source
360
2
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
2
        auto mm_scale = Op::prepare(scale);
362
2
        Op::compute(&in, mm_scale, &out);
363
2
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKdmRd
Line
Count
Source
360
4
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
4
        auto mm_scale = Op::prepare(scale);
362
4
        Op::compute(&in, mm_scale, &out);
363
4
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
_ZN5doris17FloatRoundingImplILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKdmRd
Line
Count
Source
360
6
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
361
6
        auto mm_scale = Op::prepare(scale);
362
6
        Op::compute(&in, mm_scale, &out);
363
6
    }
364
};
365
366
template <PrimitiveType Type, RoundingMode rounding_mode, ScaleMode scale_mode,
367
          TieBreakingMode tie_breaking_mode>
368
struct IntegerRoundingImpl {
369
private:
370
    using T = typename PrimitiveTypeTraits<Type>::CppType;
371
    using Op =
372
            IntegerRoundingComputation<Type, rounding_mode, scale_mode, tie_breaking_mode, size_t>;
373
    using Container = typename ColumnVector<Type>::Container;
374
375
public:
376
    template <size_t scale>
377
0
    static NO_INLINE void applyImpl(const Container& in, Container& out) {
378
0
        const T* end_in = in.data() + in.size();
379
380
0
        const T* __restrict p_in = in.data();
381
0
        T* __restrict p_out = out.data();
382
383
0
        while (p_in < end_in) {
384
0
            Op::compute(p_in, scale, p_out, 1);
385
0
            ++p_in;
386
0
            ++p_out;
387
0
        }
388
0
    }
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm100000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm1000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE9applyImplILm10000000000000000000EEEvRKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEERSB_
389
390
0
    static NO_INLINE void apply(const Container& in, size_t scale, Container& out) {
391
        /// Manual function cloning for compiler to generate integer division by constant.
392
0
        switch (scale) {
393
0
        case 1ULL:
394
0
            return applyImpl<1ULL>(in, out);
395
0
        case 10ULL:
396
0
            return applyImpl<10ULL>(in, out);
397
0
        case 100ULL:
398
0
            return applyImpl<100ULL>(in, out);
399
0
        case 1000ULL:
400
0
            return applyImpl<1000ULL>(in, out);
401
0
        case 10000ULL:
402
0
            return applyImpl<10000ULL>(in, out);
403
0
        case 100000ULL:
404
0
            return applyImpl<100000ULL>(in, out);
405
0
        case 1000000ULL:
406
0
            return applyImpl<1000000ULL>(in, out);
407
0
        case 10000000ULL:
408
0
            return applyImpl<10000000ULL>(in, out);
409
0
        case 100000000ULL:
410
0
            return applyImpl<100000000ULL>(in, out);
411
0
        case 1000000000ULL:
412
0
            return applyImpl<1000000000ULL>(in, out);
413
0
        case 10000000000ULL:
414
0
            return applyImpl<10000000000ULL>(in, out);
415
0
        case 100000000000ULL:
416
0
            return applyImpl<100000000000ULL>(in, out);
417
0
        case 1000000000000ULL:
418
0
            return applyImpl<1000000000000ULL>(in, out);
419
0
        case 10000000000000ULL:
420
0
            return applyImpl<10000000000000ULL>(in, out);
421
0
        case 100000000000000ULL:
422
0
            return applyImpl<100000000000000ULL>(in, out);
423
0
        case 1000000000000000ULL:
424
0
            return applyImpl<1000000000000000ULL>(in, out);
425
0
        case 10000000000000000ULL:
426
0
            return applyImpl<10000000000000000ULL>(in, out);
427
0
        case 100000000000000000ULL:
428
0
            return applyImpl<100000000000000000ULL>(in, out);
429
0
        case 1000000000000000000ULL:
430
0
            return applyImpl<1000000000000000000ULL>(in, out);
431
0
        case 10000000000000000000ULL:
432
0
            return applyImpl<10000000000000000000ULL>(in, out);
433
0
        default:
434
0
            throw doris::Exception(ErrorCode::INTERNAL_ERROR,
435
0
                                   "IntegerRoundingImpl __builtin_unreachable ", scale);
436
0
            __builtin_unreachable();
437
0
        }
438
0
    }
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEmRSA_
439
440
0
    static NO_INLINE void apply(const T& in, size_t scale, T& out) {
441
0
        Op::compute(&in, scale, &out, 1);
442
0
    }
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE2ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE0ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_9ScaleModeE1ELNS_15TieBreakingModeE0EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKhmRh
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKamRa
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKsmRs
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKimRi
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKlmRl
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE2ELNS_15TieBreakingModeE1EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE0ELNS_15TieBreakingModeE1EE5applyERKnmRn
Unexecuted instantiation: _ZN5doris19IntegerRoundingImplILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_9ScaleModeE1ELNS_15TieBreakingModeE1EE5applyERKnmRn
443
};
444
445
/** Select the appropriate processing algorithm depending on the scale.
446
  */
447
template <PrimitiveType T, RoundingMode rounding_mode, TieBreakingMode tie_breaking_mode>
448
struct Dispatcher {
449
    template <ScaleMode scale_mode>
450
    using FunctionRoundingImpl = std::conditional_t<
451
            is_decimal(T), DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>,
452
            std::conditional_t<
453
                    is_float_or_double(T) || T == TYPE_TIME || T == TYPE_TIMEV2,
454
                    FloatRoundingImpl<T, rounding_mode, scale_mode, tie_breaking_mode>,
455
                    IntegerRoundingImpl<T, rounding_mode, scale_mode, tie_breaking_mode>>>;
456
457
    // scale_arg: scale for function computation
458
    // result_scale: scale for result decimal, this scale is got from planner
459
    static ColumnPtr apply_vec_const(const IColumn* col_general, const Int16 scale_arg,
460
2.30k
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
604
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
604
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
604
            auto col_res = ColumnVector<T>::create();
465
466
604
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
604
            vec_res.resize(col->get_data().size());
468
469
606
            if (!vec_res.empty()) {
470
606
                if (scale_arg == 0) {
471
107
                    size_t scale = 1;
472
107
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
499
                } else if (scale_arg > 0) {
474
491
                    size_t scale = int_exp10(scale_arg);
475
491
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
491
                                                                     vec_res);
477
491
                } else {
478
8
                    size_t scale = int_exp10(-scale_arg);
479
8
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
8
                                                                     vec_res);
481
8
                }
482
606
            }
483
484
604
            return col_res;
485
604
        } else if constexpr (T == TYPE_DECIMALV2) {
486
0
            const auto* const decimal_col =
487
0
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
0
            const auto& vec_src = decimal_col->get_data();
489
0
            const size_t input_rows_count = vec_src.size();
490
0
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
0
            auto& vec_res = col_res->get_data();
492
493
0
            if (!vec_res.empty()) {
494
0
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
0
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
0
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
0
            if (scale_arg <= 0) {
510
0
                for (size_t i = 0; i < input_rows_count; ++i) {
511
0
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
0
                }
513
0
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
0
                for (size_t i = 0; i < input_rows_count; ++i) {
515
0
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
0
                                                int_exp10(result_scale - scale_arg));
517
0
                }
518
0
            }
519
520
0
            return col_res;
521
1.70k
        } else if constexpr (is_decimal(T)) {
522
1.70k
            const auto* const decimal_col =
523
1.70k
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
1.70k
            const auto& vec_src = decimal_col->get_data();
525
1.70k
            const size_t input_rows_count = vec_src.size();
526
1.70k
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
1.70k
            auto& vec_res = col_res->get_data();
528
529
1.70k
            if (!vec_res.empty()) {
530
1.70k
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
1.70k
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
1.70k
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
1.70k
            if (scale_arg <= 0) {
546
3.94k
                for (size_t i = 0; i < input_rows_count; ++i) {
547
2.63k
                    vec_res[i].value *= int_exp10(result_scale);
548
2.63k
                }
549
1.30k
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
1.70k
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
2.30k
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
38
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
38
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
38
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
38
            auto col_res = ColumnVector<T>::create();
465
466
38
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
38
            vec_res.resize(col->get_data().size());
468
469
38
            if (!vec_res.empty()) {
470
38
                if (scale_arg == 0) {
471
10
                    size_t scale = 1;
472
10
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
28
                } else if (scale_arg > 0) {
474
20
                    size_t scale = int_exp10(scale_arg);
475
20
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
20
                                                                     vec_res);
477
20
                } else {
478
8
                    size_t scale = int_exp10(-scale_arg);
479
8
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
8
                                                                     vec_res);
481
8
                }
482
38
            }
483
484
38
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
        } else if constexpr (is_decimal(T)) {
522
            const auto* const decimal_col =
523
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
            const auto& vec_src = decimal_col->get_data();
525
            const size_t input_rows_count = vec_src.size();
526
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
            auto& vec_res = col_res->get_data();
528
529
            if (!vec_res.empty()) {
530
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
            if (scale_arg <= 0) {
546
                for (size_t i = 0; i < input_rows_count; ++i) {
547
                    vec_res[i].value *= int_exp10(result_scale);
548
                }
549
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
                for (size_t i = 0; i < input_rows_count; ++i) {
551
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
                }
553
            }
554
555
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
38
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
30
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
30
        } else if constexpr (is_decimal(T)) {
522
30
            const auto* const decimal_col =
523
30
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
30
            const auto& vec_src = decimal_col->get_data();
525
30
            const size_t input_rows_count = vec_src.size();
526
30
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
30
            auto& vec_res = col_res->get_data();
528
529
30
            if (!vec_res.empty()) {
530
30
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
30
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
30
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
30
            if (scale_arg <= 0) {
546
26
                for (size_t i = 0; i < input_rows_count; ++i) {
547
13
                    vec_res[i].value *= int_exp10(result_scale);
548
13
                }
549
17
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
30
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
30
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
26
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
26
        } else if constexpr (is_decimal(T)) {
522
26
            const auto* const decimal_col =
523
26
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
26
            const auto& vec_src = decimal_col->get_data();
525
26
            const size_t input_rows_count = vec_src.size();
526
26
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
26
            auto& vec_res = col_res->get_data();
528
529
26
            if (!vec_res.empty()) {
530
26
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
26
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
26
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
26
            if (scale_arg <= 0) {
546
26
                for (size_t i = 0; i < input_rows_count; ++i) {
547
13
                    vec_res[i].value *= int_exp10(result_scale);
548
13
                }
549
13
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
26
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
26
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
15
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
15
        } else if constexpr (is_decimal(T)) {
522
15
            const auto* const decimal_col =
523
15
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
15
            const auto& vec_src = decimal_col->get_data();
525
15
            const size_t input_rows_count = vec_src.size();
526
15
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
15
            auto& vec_res = col_res->get_data();
528
529
15
            if (!vec_res.empty()) {
530
15
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
15
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
15
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
15
            if (scale_arg <= 0) {
546
8
                for (size_t i = 0; i < input_rows_count; ++i) {
547
4
                    vec_res[i].value *= int_exp10(result_scale);
548
4
                }
549
11
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
15
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
15
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
40
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
40
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
40
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
40
            auto col_res = ColumnVector<T>::create();
465
466
40
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
40
            vec_res.resize(col->get_data().size());
468
469
41
            if (!vec_res.empty()) {
470
41
                if (scale_arg == 0) {
471
41
                    size_t scale = 1;
472
41
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
41
                } else if (scale_arg > 0) {
474
0
                    size_t scale = int_exp10(scale_arg);
475
0
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
0
                                                                     vec_res);
477
0
                } else {
478
0
                    size_t scale = int_exp10(-scale_arg);
479
0
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
0
                                                                     vec_res);
481
0
                }
482
41
            }
483
484
40
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
        } else if constexpr (is_decimal(T)) {
522
            const auto* const decimal_col =
523
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
            const auto& vec_src = decimal_col->get_data();
525
            const size_t input_rows_count = vec_src.size();
526
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
            auto& vec_res = col_res->get_data();
528
529
            if (!vec_res.empty()) {
530
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
            if (scale_arg <= 0) {
546
                for (size_t i = 0; i < input_rows_count; ++i) {
547
                    vec_res[i].value *= int_exp10(result_scale);
548
                }
549
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
                for (size_t i = 0; i < input_rows_count; ++i) {
551
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
                }
553
            }
554
555
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
40
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
37
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
37
        } else if constexpr (is_decimal(T)) {
522
37
            const auto* const decimal_col =
523
37
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
37
            const auto& vec_src = decimal_col->get_data();
525
37
            const size_t input_rows_count = vec_src.size();
526
37
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
37
            auto& vec_res = col_res->get_data();
528
529
37
            if (!vec_res.empty()) {
530
37
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
37
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
37
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
37
            if (scale_arg <= 0) {
546
70
                for (size_t i = 0; i < input_rows_count; ++i) {
547
52
                    vec_res[i].value *= int_exp10(result_scale);
548
52
                }
549
19
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
37
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
37
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
237
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
237
        } else if constexpr (is_decimal(T)) {
522
237
            const auto* const decimal_col =
523
237
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
237
            const auto& vec_src = decimal_col->get_data();
525
237
            const size_t input_rows_count = vec_src.size();
526
237
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
237
            auto& vec_res = col_res->get_data();
528
529
237
            if (!vec_res.empty()) {
530
237
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
237
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
237
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
237
            if (scale_arg <= 0) {
546
1.26k
                for (size_t i = 0; i < input_rows_count; ++i) {
547
1.05k
                    vec_res[i].value *= int_exp10(result_scale);
548
1.05k
                }
549
217
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
237
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
237
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
48
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
48
        } else if constexpr (is_decimal(T)) {
522
48
            const auto* const decimal_col =
523
48
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
48
            const auto& vec_src = decimal_col->get_data();
525
48
            const size_t input_rows_count = vec_src.size();
526
48
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
48
            auto& vec_res = col_res->get_data();
528
529
48
            if (!vec_res.empty()) {
530
48
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
48
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
48
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
48
            if (scale_arg <= 0) {
546
94
                for (size_t i = 0; i < input_rows_count; ++i) {
547
65
                    vec_res[i].value *= int_exp10(result_scale);
548
65
                }
549
29
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
48
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
48
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
483
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
483
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
483
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
483
            auto col_res = ColumnVector<T>::create();
465
466
483
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
483
            vec_res.resize(col->get_data().size());
468
469
484
            if (!vec_res.empty()) {
470
484
                if (scale_arg == 0) {
471
21
                    size_t scale = 1;
472
21
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
463
                } else if (scale_arg > 0) {
474
463
                    size_t scale = int_exp10(scale_arg);
475
463
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
463
                                                                     vec_res);
477
463
                } else {
478
0
                    size_t scale = int_exp10(-scale_arg);
479
0
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
0
                                                                     vec_res);
481
0
                }
482
484
            }
483
484
483
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
        } else if constexpr (is_decimal(T)) {
522
            const auto* const decimal_col =
523
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
            const auto& vec_src = decimal_col->get_data();
525
            const size_t input_rows_count = vec_src.size();
526
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
            auto& vec_res = col_res->get_data();
528
529
            if (!vec_res.empty()) {
530
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
            if (scale_arg <= 0) {
546
                for (size_t i = 0; i < input_rows_count; ++i) {
547
                    vec_res[i].value *= int_exp10(result_scale);
548
                }
549
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
                for (size_t i = 0; i < input_rows_count; ++i) {
551
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
                }
553
            }
554
555
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
483
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
38
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
38
        } else if constexpr (is_decimal(T)) {
522
38
            const auto* const decimal_col =
523
38
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
38
            const auto& vec_src = decimal_col->get_data();
525
38
            const size_t input_rows_count = vec_src.size();
526
38
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
38
            auto& vec_res = col_res->get_data();
528
529
38
            if (!vec_res.empty()) {
530
38
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
38
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
38
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
38
            if (scale_arg <= 0) {
546
70
                for (size_t i = 0; i < input_rows_count; ++i) {
547
52
                    vec_res[i].value *= int_exp10(result_scale);
548
52
                }
549
20
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
38
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
38
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
43
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
43
        } else if constexpr (is_decimal(T)) {
522
43
            const auto* const decimal_col =
523
43
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
43
            const auto& vec_src = decimal_col->get_data();
525
43
            const size_t input_rows_count = vec_src.size();
526
43
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
43
            auto& vec_res = col_res->get_data();
528
529
43
            if (!vec_res.empty()) {
530
43
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
43
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
43
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
43
            if (scale_arg <= 0) {
546
101
                for (size_t i = 0; i < input_rows_count; ++i) {
547
77
                    vec_res[i].value *= int_exp10(result_scale);
548
77
                }
549
24
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
43
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
43
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
937
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
937
        } else if constexpr (is_decimal(T)) {
522
937
            const auto* const decimal_col =
523
937
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
937
            const auto& vec_src = decimal_col->get_data();
525
937
            const size_t input_rows_count = vec_src.size();
526
937
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
937
            auto& vec_res = col_res->get_data();
528
529
937
            if (!vec_res.empty()) {
530
937
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
937
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
937
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
937
            if (scale_arg <= 0) {
546
1.60k
                for (size_t i = 0; i < input_rows_count; ++i) {
547
821
                    vec_res[i].value *= int_exp10(result_scale);
548
821
                }
549
782
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
937
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
937
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
14
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
14
        } else if constexpr (is_decimal(T)) {
522
14
            const auto* const decimal_col =
523
14
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
14
            const auto& vec_src = decimal_col->get_data();
525
14
            const size_t input_rows_count = vec_src.size();
526
14
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
14
            auto& vec_res = col_res->get_data();
528
529
14
            if (!vec_res.empty()) {
530
14
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
14
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
14
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
14
            if (scale_arg <= 0) {
546
0
                for (size_t i = 0; i < input_rows_count; ++i) {
547
0
                    vec_res[i].value *= int_exp10(result_scale);
548
0
                }
549
14
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
14
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
14
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
24
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
24
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
24
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
24
            auto col_res = ColumnVector<T>::create();
465
466
24
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
24
            vec_res.resize(col->get_data().size());
468
469
24
            if (!vec_res.empty()) {
470
24
                if (scale_arg == 0) {
471
24
                    size_t scale = 1;
472
24
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
24
                } else if (scale_arg > 0) {
474
0
                    size_t scale = int_exp10(scale_arg);
475
0
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
0
                                                                     vec_res);
477
0
                } else {
478
0
                    size_t scale = int_exp10(-scale_arg);
479
0
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
0
                                                                     vec_res);
481
0
                }
482
24
            }
483
484
24
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
        } else if constexpr (is_decimal(T)) {
522
            const auto* const decimal_col =
523
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
            const auto& vec_src = decimal_col->get_data();
525
            const size_t input_rows_count = vec_src.size();
526
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
            auto& vec_res = col_res->get_data();
528
529
            if (!vec_res.empty()) {
530
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
            if (scale_arg <= 0) {
546
                for (size_t i = 0; i < input_rows_count; ++i) {
547
                    vec_res[i].value *= int_exp10(result_scale);
548
                }
549
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
                for (size_t i = 0; i < input_rows_count; ++i) {
551
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
                }
553
            }
554
555
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
24
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
36
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
36
        } else if constexpr (is_decimal(T)) {
522
36
            const auto* const decimal_col =
523
36
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
36
            const auto& vec_src = decimal_col->get_data();
525
36
            const size_t input_rows_count = vec_src.size();
526
36
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
36
            auto& vec_res = col_res->get_data();
528
529
36
            if (!vec_res.empty()) {
530
36
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
36
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
36
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
36
            if (scale_arg <= 0) {
546
70
                for (size_t i = 0; i < input_rows_count; ++i) {
547
52
                    vec_res[i].value *= int_exp10(result_scale);
548
52
                }
549
18
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
36
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
36
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
39
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
39
        } else if constexpr (is_decimal(T)) {
522
39
            const auto* const decimal_col =
523
39
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
39
            const auto& vec_src = decimal_col->get_data();
525
39
            const size_t input_rows_count = vec_src.size();
526
39
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
39
            auto& vec_res = col_res->get_data();
528
529
39
            if (!vec_res.empty()) {
530
39
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
39
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
39
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
39
            if (scale_arg <= 0) {
546
90
                for (size_t i = 0; i < input_rows_count; ++i) {
547
69
                    vec_res[i].value *= int_exp10(result_scale);
548
69
                }
549
21
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
39
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
39
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
53
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
53
        } else if constexpr (is_decimal(T)) {
522
53
            const auto* const decimal_col =
523
53
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
53
            const auto& vec_src = decimal_col->get_data();
525
53
            const size_t input_rows_count = vec_src.size();
526
53
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
53
            auto& vec_res = col_res->get_data();
528
529
53
            if (!vec_res.empty()) {
530
53
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
53
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
53
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
53
            if (scale_arg <= 0) {
546
106
                for (size_t i = 0; i < input_rows_count; ++i) {
547
71
                    vec_res[i].value *= int_exp10(result_scale);
548
71
                }
549
35
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
53
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
53
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
19
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
19
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
19
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
19
            auto col_res = ColumnVector<T>::create();
465
466
19
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
19
            vec_res.resize(col->get_data().size());
468
469
19
            if (!vec_res.empty()) {
470
19
                if (scale_arg == 0) {
471
11
                    size_t scale = 1;
472
11
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
11
                } else if (scale_arg > 0) {
474
8
                    size_t scale = int_exp10(scale_arg);
475
8
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
8
                                                                     vec_res);
477
8
                } else {
478
0
                    size_t scale = int_exp10(-scale_arg);
479
0
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
0
                                                                     vec_res);
481
0
                }
482
19
            }
483
484
19
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
        } else if constexpr (is_decimal(T)) {
522
            const auto* const decimal_col =
523
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
            const auto& vec_src = decimal_col->get_data();
525
            const size_t input_rows_count = vec_src.size();
526
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
            auto& vec_res = col_res->get_data();
528
529
            if (!vec_res.empty()) {
530
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
            if (scale_arg <= 0) {
546
                for (size_t i = 0; i < input_rows_count; ++i) {
547
                    vec_res[i].value *= int_exp10(result_scale);
548
                }
549
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
                for (size_t i = 0; i < input_rows_count; ++i) {
551
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
                }
553
            }
554
555
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
19
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
31
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
31
        } else if constexpr (is_decimal(T)) {
522
31
            const auto* const decimal_col =
523
31
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
31
            const auto& vec_src = decimal_col->get_data();
525
31
            const size_t input_rows_count = vec_src.size();
526
31
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
31
            auto& vec_res = col_res->get_data();
528
529
31
            if (!vec_res.empty()) {
530
31
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
31
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
31
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
31
            if (scale_arg <= 0) {
546
57
                for (size_t i = 0; i < input_rows_count; ++i) {
547
37
                    vec_res[i].value *= int_exp10(result_scale);
548
37
                }
549
20
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
31
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
31
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
91
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
91
        } else if constexpr (is_decimal(T)) {
522
91
            const auto* const decimal_col =
523
91
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
91
            const auto& vec_src = decimal_col->get_data();
525
91
            const size_t input_rows_count = vec_src.size();
526
91
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
91
            auto& vec_res = col_res->get_data();
528
529
91
            if (!vec_res.empty()) {
530
91
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
91
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
91
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
91
            if (scale_arg <= 0) {
546
307
                for (size_t i = 0; i < input_rows_count; ++i) {
547
227
                    vec_res[i].value *= int_exp10(result_scale);
548
227
                }
549
80
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
91
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
91
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
Line
Count
Source
460
26
                                     [[maybe_unused]] Int16 result_scale) {
461
        if constexpr (is_int_or_bool(T) || is_ip(T) || is_date_type(T) || is_float_or_double(T) ||
462
                      T == TYPE_TIME || T == TYPE_TIMEV2 || T == TYPE_UINT32 || T == TYPE_UINT64) {
463
            const auto* const col = check_and_get_column<ColumnVector<T>>(col_general);
464
            auto col_res = ColumnVector<T>::create();
465
466
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
467
            vec_res.resize(col->get_data().size());
468
469
            if (!vec_res.empty()) {
470
                if (scale_arg == 0) {
471
                    size_t scale = 1;
472
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data(), scale, vec_res);
473
                } else if (scale_arg > 0) {
474
                    size_t scale = int_exp10(scale_arg);
475
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data(), scale,
476
                                                                     vec_res);
477
                } else {
478
                    size_t scale = int_exp10(-scale_arg);
479
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data(), scale,
480
                                                                     vec_res);
481
                }
482
            }
483
484
            return col_res;
485
        } else if constexpr (T == TYPE_DECIMALV2) {
486
            const auto* const decimal_col =
487
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
488
            const auto& vec_src = decimal_col->get_data();
489
            const size_t input_rows_count = vec_src.size();
490
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
491
            auto& vec_res = col_res->get_data();
492
493
            if (!vec_res.empty()) {
494
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
495
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
496
            }
497
            // We need to always make sure result decimal's scale is as expected as its in plan
498
            // So we need to append enough zero to result.
499
500
            // Case 0: scale_arg <= -(integer part digits count)
501
            //      do nothing, because result is 0
502
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
503
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
504
            // Case 2: scale_arg > 0 && scale_arg < result_scale
505
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
506
            // Case 3: scale_arg >= input_scale
507
            //      do nothing
508
509
            if (scale_arg <= 0) {
510
                for (size_t i = 0; i < input_rows_count; ++i) {
511
                    vec_res[i] = DecimalV2Value(vec_res[i].value() * int_exp10(result_scale));
512
                }
513
            } else if (scale_arg > 0 && scale_arg < result_scale) {
514
                for (size_t i = 0; i < input_rows_count; ++i) {
515
                    vec_res[i] = DecimalV2Value(vec_res[i].value() *
516
                                                int_exp10(result_scale - scale_arg));
517
                }
518
            }
519
520
            return col_res;
521
26
        } else if constexpr (is_decimal(T)) {
522
26
            const auto* const decimal_col =
523
26
                    check_and_get_column<typename PrimitiveTypeTraits<T>::ColumnType>(col_general);
524
26
            const auto& vec_src = decimal_col->get_data();
525
26
            const size_t input_rows_count = vec_src.size();
526
26
            auto col_res = PrimitiveTypeTraits<T>::ColumnType::create(vec_src.size(), result_scale);
527
26
            auto& vec_res = col_res->get_data();
528
529
26
            if (!vec_res.empty()) {
530
26
                FunctionRoundingImpl<ScaleMode::Negative>::apply(
531
26
                        decimal_col->get_data(), decimal_col->get_scale(), vec_res, scale_arg);
532
26
            }
533
            // We need to always make sure result decimal's scale is as expected as its in plan
534
            // So we need to append enough zero to result.
535
536
            // Case 0: scale_arg <= -(integer part digits count)
537
            //      do nothing, because result is 0
538
            // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
539
            //      decimal parts has been erased, so add them back by multiply 10^(result_scale)
540
            // Case 2: scale_arg > 0 && scale_arg < result_scale
541
            //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
542
            // Case 3: scale_arg >= input_scale
543
            //      do nothing
544
545
26
            if (scale_arg <= 0) {
546
47
                for (size_t i = 0; i < input_rows_count; ++i) {
547
32
                    vec_res[i].value *= int_exp10(result_scale);
548
32
                }
549
15
            } else if (scale_arg > 0 && scale_arg < result_scale) {
550
0
                for (size_t i = 0; i < input_rows_count; ++i) {
551
0
                    vec_res[i].value *= int_exp10(result_scale - scale_arg);
552
0
                }
553
0
            }
554
555
26
            return col_res;
556
        } else {
557
            static_assert(false);
558
        }
559
26
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_vec_constEPKNS_7IColumnEss
560
561
    // result_scale: scale for result decimal, this scale is got from planner
562
    static ColumnPtr apply_vec_vec(const IColumn* col_general, const IColumn* col_scale,
563
274
                                   [[maybe_unused]] Int16 result_scale) {
564
274
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
274
        const size_t input_row_count = col_scale_i32.size();
566
2.58k
        for (size_t i = 0; i < input_row_count; ++i) {
567
2.31k
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
2.31k
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
2.31k
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
2.31k
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
82
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
82
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
82
            auto col_res = ColumnVector<T>::create();
580
82
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
82
            vec_res.resize(input_row_count);
582
583
166
            for (size_t i = 0; i < input_row_count; ++i) {
584
84
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
84
                if (scale_arg == 0) {
586
21
                    size_t scale = 1;
587
21
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
21
                                                                 vec_res[i]);
589
63
                } else if (scale_arg > 0) {
590
41
                    size_t scale = int_exp10(scale_arg);
591
41
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
41
                                                                     vec_res[i]);
593
41
                } else {
594
22
                    size_t scale = int_exp10(-scale_arg);
595
22
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
22
                                                                     vec_res[i]);
597
22
                }
598
84
            }
599
82
            return col_res;
600
82
        } else if constexpr (T == TYPE_DECIMALV2) {
601
0
            const auto* decimal_col =
602
0
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
0
            const Int32 input_scale = decimal_col->get_scale();
604
0
            auto col_res =
605
0
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
0
            for (size_t i = 0; i < input_row_count; ++i) {
608
0
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
0
                        decimal_col->get_element(i).value(), input_scale,
610
0
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
0
            }
612
613
0
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
0
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
0
                if (scale_arg <= 0) {
627
0
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
0
                                                             int_exp10(result_scale));
629
0
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
0
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
0
                                                             int_exp10(result_scale - scale_arg));
632
0
                }
633
0
            }
634
635
0
            return col_res;
636
192
        } else if constexpr (is_decimal(T)) {
637
192
            const auto* decimal_col =
638
192
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
192
            const Int32 input_scale = decimal_col->get_scale();
640
192
            auto col_res =
641
192
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
2.41k
            for (size_t i = 0; i < input_row_count; ++i) {
644
2.22k
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
2.22k
                        decimal_col->get_element(i).value, input_scale,
646
2.22k
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
2.22k
            }
648
649
2.41k
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
2.22k
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
2.22k
                if (scale_arg <= 0) {
663
1.09k
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
1.13k
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
355
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
355
                }
667
2.22k
            }
668
669
192
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
274
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
4
                                   [[maybe_unused]] Int16 result_scale) {
564
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
4
        const size_t input_row_count = col_scale_i32.size();
566
8
        for (size_t i = 0; i < input_row_count; ++i) {
567
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
4
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
4
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
4
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
4
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
4
            auto col_res = ColumnVector<T>::create();
580
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
4
            vec_res.resize(input_row_count);
582
583
8
            for (size_t i = 0; i < input_row_count; ++i) {
584
4
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
4
                if (scale_arg == 0) {
586
1
                    size_t scale = 1;
587
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
1
                                                                 vec_res[i]);
589
3
                } else if (scale_arg > 0) {
590
2
                    size_t scale = int_exp10(scale_arg);
591
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
2
                                                                     vec_res[i]);
593
2
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
4
            }
599
4
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
13
                                   [[maybe_unused]] Int16 result_scale) {
564
13
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
13
        const size_t input_row_count = col_scale_i32.size();
566
26
        for (size_t i = 0; i < input_row_count; ++i) {
567
13
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
13
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
13
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
13
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
13
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
13
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
13
            auto col_res = ColumnVector<T>::create();
580
13
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
13
            vec_res.resize(input_row_count);
582
583
26
            for (size_t i = 0; i < input_row_count; ++i) {
584
13
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
13
                if (scale_arg == 0) {
586
1
                    size_t scale = 1;
587
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
1
                                                                 vec_res[i]);
589
12
                } else if (scale_arg > 0) {
590
11
                    size_t scale = int_exp10(scale_arg);
591
11
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
11
                                                                     vec_res[i]);
593
11
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
13
            }
599
13
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
13
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
21
                                   [[maybe_unused]] Int16 result_scale) {
564
21
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
21
        const size_t input_row_count = col_scale_i32.size();
566
306
        for (size_t i = 0; i < input_row_count; ++i) {
567
285
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
285
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
285
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
285
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
21
        } else if constexpr (is_decimal(T)) {
637
21
            const auto* decimal_col =
638
21
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
21
            const Int32 input_scale = decimal_col->get_scale();
640
21
            auto col_res =
641
21
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
306
            for (size_t i = 0; i < input_row_count; ++i) {
644
285
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
285
                        decimal_col->get_element(i).value, input_scale,
646
285
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
285
            }
648
649
306
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
285
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
285
                if (scale_arg <= 0) {
663
151
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
151
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
37
                }
667
285
            }
668
669
21
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
21
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
8
                                   [[maybe_unused]] Int16 result_scale) {
564
8
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
8
        const size_t input_row_count = col_scale_i32.size();
566
159
        for (size_t i = 0; i < input_row_count; ++i) {
567
151
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
151
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
151
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
151
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
8
        } else if constexpr (is_decimal(T)) {
637
8
            const auto* decimal_col =
638
8
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
8
            const Int32 input_scale = decimal_col->get_scale();
640
8
            auto col_res =
641
8
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
159
            for (size_t i = 0; i < input_row_count; ++i) {
644
151
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
151
                        decimal_col->get_element(i).value, input_scale,
646
151
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
151
            }
648
649
159
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
151
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
151
                if (scale_arg <= 0) {
663
71
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
80
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
27
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
27
                }
667
151
            }
668
669
8
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
8
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
3
                                   [[maybe_unused]] Int16 result_scale) {
564
3
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
3
        const size_t input_row_count = col_scale_i32.size();
566
6
        for (size_t i = 0; i < input_row_count; ++i) {
567
3
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
3
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
3
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
3
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
3
        } else if constexpr (is_decimal(T)) {
637
3
            const auto* decimal_col =
638
3
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
3
            const Int32 input_scale = decimal_col->get_scale();
640
3
            auto col_res =
641
3
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
6
            for (size_t i = 0; i < input_row_count; ++i) {
644
3
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
3
                        decimal_col->get_element(i).value, input_scale,
646
3
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
3
            }
648
649
6
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
3
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
3
                if (scale_arg <= 0) {
663
0
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
3
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
2
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
2
                }
667
3
            }
668
669
3
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
3
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
4
                                   [[maybe_unused]] Int16 result_scale) {
564
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
4
        const size_t input_row_count = col_scale_i32.size();
566
8
        for (size_t i = 0; i < input_row_count; ++i) {
567
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
4
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
4
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
4
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
4
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
4
            auto col_res = ColumnVector<T>::create();
580
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
4
            vec_res.resize(input_row_count);
582
583
8
            for (size_t i = 0; i < input_row_count; ++i) {
584
4
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
4
                if (scale_arg == 0) {
586
1
                    size_t scale = 1;
587
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
1
                                                                 vec_res[i]);
589
3
                } else if (scale_arg > 0) {
590
2
                    size_t scale = int_exp10(scale_arg);
591
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
2
                                                                     vec_res[i]);
593
2
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
4
            }
599
4
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
12
                                   [[maybe_unused]] Int16 result_scale) {
564
12
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
12
        const size_t input_row_count = col_scale_i32.size();
566
26
        for (size_t i = 0; i < input_row_count; ++i) {
567
14
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
14
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
14
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
14
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
12
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
12
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
12
            auto col_res = ColumnVector<T>::create();
580
12
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
12
            vec_res.resize(input_row_count);
582
583
26
            for (size_t i = 0; i < input_row_count; ++i) {
584
14
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
14
                if (scale_arg == 0) {
586
4
                    size_t scale = 1;
587
4
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
4
                                                                 vec_res[i]);
589
10
                } else if (scale_arg > 0) {
590
9
                    size_t scale = int_exp10(scale_arg);
591
9
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
9
                                                                     vec_res[i]);
593
9
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
14
            }
599
12
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
12
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
21
                                   [[maybe_unused]] Int16 result_scale) {
564
21
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
21
        const size_t input_row_count = col_scale_i32.size();
566
306
        for (size_t i = 0; i < input_row_count; ++i) {
567
285
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
285
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
285
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
285
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
21
        } else if constexpr (is_decimal(T)) {
637
21
            const auto* decimal_col =
638
21
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
21
            const Int32 input_scale = decimal_col->get_scale();
640
21
            auto col_res =
641
21
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
306
            for (size_t i = 0; i < input_row_count; ++i) {
644
285
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
285
                        decimal_col->get_element(i).value, input_scale,
646
285
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
285
            }
648
649
306
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
285
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
285
                if (scale_arg <= 0) {
663
147
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
147
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
39
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
39
                }
667
285
            }
668
669
21
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
21
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
14
                                   [[maybe_unused]] Int16 result_scale) {
564
14
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
14
        const size_t input_row_count = col_scale_i32.size();
566
171
        for (size_t i = 0; i < input_row_count; ++i) {
567
157
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
157
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
157
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
157
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
14
        } else if constexpr (is_decimal(T)) {
637
14
            const auto* decimal_col =
638
14
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
14
            const Int32 input_scale = decimal_col->get_scale();
640
14
            auto col_res =
641
14
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
171
            for (size_t i = 0; i < input_row_count; ++i) {
644
157
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
157
                        decimal_col->get_element(i).value, input_scale,
646
157
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
157
            }
648
649
171
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
157
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
157
                if (scale_arg <= 0) {
663
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
87
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
32
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
32
                }
667
157
            }
668
669
14
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
14
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
4
                                   [[maybe_unused]] Int16 result_scale) {
564
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
4
        const size_t input_row_count = col_scale_i32.size();
566
8
        for (size_t i = 0; i < input_row_count; ++i) {
567
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
4
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
4
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
4
        } else if constexpr (is_decimal(T)) {
637
4
            const auto* decimal_col =
638
4
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
4
            const Int32 input_scale = decimal_col->get_scale();
640
4
            auto col_res =
641
4
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
8
            for (size_t i = 0; i < input_row_count; ++i) {
644
4
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
4
                        decimal_col->get_element(i).value, input_scale,
646
4
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
4
            }
648
649
8
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
4
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
4
                if (scale_arg <= 0) {
663
0
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
4
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
2
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
2
                }
667
4
            }
668
669
4
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
4
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
5
                                   [[maybe_unused]] Int16 result_scale) {
564
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
5
        const size_t input_row_count = col_scale_i32.size();
566
10
        for (size_t i = 0; i < input_row_count; ++i) {
567
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
5
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
5
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
5
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
5
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
5
            auto col_res = ColumnVector<T>::create();
580
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
5
            vec_res.resize(input_row_count);
582
583
10
            for (size_t i = 0; i < input_row_count; ++i) {
584
5
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
5
                if (scale_arg == 0) {
586
2
                    size_t scale = 1;
587
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
2
                                                                 vec_res[i]);
589
3
                } else if (scale_arg > 0) {
590
2
                    size_t scale = int_exp10(scale_arg);
591
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
2
                                                                     vec_res[i]);
593
2
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
5
            }
599
5
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
10
                                   [[maybe_unused]] Int16 result_scale) {
564
10
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
10
        const size_t input_row_count = col_scale_i32.size();
566
20
        for (size_t i = 0; i < input_row_count; ++i) {
567
10
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
10
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
10
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
10
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
10
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
10
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
10
            auto col_res = ColumnVector<T>::create();
580
10
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
10
            vec_res.resize(input_row_count);
582
583
20
            for (size_t i = 0; i < input_row_count; ++i) {
584
10
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
10
                if (scale_arg == 0) {
586
2
                    size_t scale = 1;
587
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
2
                                                                 vec_res[i]);
589
8
                } else if (scale_arg > 0) {
590
3
                    size_t scale = int_exp10(scale_arg);
591
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
3
                                                                     vec_res[i]);
593
5
                } else {
594
5
                    size_t scale = int_exp10(-scale_arg);
595
5
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
5
                                                                     vec_res[i]);
597
5
                }
598
10
            }
599
10
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
10
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
22
                                   [[maybe_unused]] Int16 result_scale) {
564
22
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
22
        const size_t input_row_count = col_scale_i32.size();
566
308
        for (size_t i = 0; i < input_row_count; ++i) {
567
286
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
286
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
286
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
286
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
22
        } else if constexpr (is_decimal(T)) {
637
22
            const auto* decimal_col =
638
22
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
22
            const Int32 input_scale = decimal_col->get_scale();
640
22
            auto col_res =
641
22
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
308
            for (size_t i = 0; i < input_row_count; ++i) {
644
286
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
286
                        decimal_col->get_element(i).value, input_scale,
646
286
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
286
            }
648
649
308
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
286
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
286
                if (scale_arg <= 0) {
663
148
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
148
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
39
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
39
                }
667
286
            }
668
669
22
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
22
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
14
                                   [[maybe_unused]] Int16 result_scale) {
564
14
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
14
        const size_t input_row_count = col_scale_i32.size();
566
171
        for (size_t i = 0; i < input_row_count; ++i) {
567
157
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
157
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
157
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
157
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
14
        } else if constexpr (is_decimal(T)) {
637
14
            const auto* decimal_col =
638
14
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
14
            const Int32 input_scale = decimal_col->get_scale();
640
14
            auto col_res =
641
14
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
171
            for (size_t i = 0; i < input_row_count; ++i) {
644
157
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
157
                        decimal_col->get_element(i).value, input_scale,
646
157
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
157
            }
648
649
171
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
157
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
157
                if (scale_arg <= 0) {
663
71
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
86
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
31
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
31
                }
667
157
            }
668
669
14
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
14
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
5
                                   [[maybe_unused]] Int16 result_scale) {
564
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
5
        const size_t input_row_count = col_scale_i32.size();
566
10
        for (size_t i = 0; i < input_row_count; ++i) {
567
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
5
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
5
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
5
        } else if constexpr (is_decimal(T)) {
637
5
            const auto* decimal_col =
638
5
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
5
            const Int32 input_scale = decimal_col->get_scale();
640
5
            auto col_res =
641
5
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
10
            for (size_t i = 0; i < input_row_count; ++i) {
644
5
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
5
                        decimal_col->get_element(i).value, input_scale,
646
5
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
5
            }
648
649
10
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
5
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
5
                if (scale_arg <= 0) {
663
2
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
3
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
2
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
2
                }
667
5
            }
668
669
5
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
5
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
4
                                   [[maybe_unused]] Int16 result_scale) {
564
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
4
        const size_t input_row_count = col_scale_i32.size();
566
8
        for (size_t i = 0; i < input_row_count; ++i) {
567
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
4
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
4
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
4
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
4
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
4
            auto col_res = ColumnVector<T>::create();
580
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
4
            vec_res.resize(input_row_count);
582
583
8
            for (size_t i = 0; i < input_row_count; ++i) {
584
4
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
4
                if (scale_arg == 0) {
586
1
                    size_t scale = 1;
587
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
1
                                                                 vec_res[i]);
589
3
                } else if (scale_arg > 0) {
590
2
                    size_t scale = int_exp10(scale_arg);
591
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
2
                                                                     vec_res[i]);
593
2
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
4
            }
599
4
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
15
                                   [[maybe_unused]] Int16 result_scale) {
564
15
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
15
        const size_t input_row_count = col_scale_i32.size();
566
30
        for (size_t i = 0; i < input_row_count; ++i) {
567
15
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
15
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
15
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
15
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
15
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
15
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
15
            auto col_res = ColumnVector<T>::create();
580
15
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
15
            vec_res.resize(input_row_count);
582
583
30
            for (size_t i = 0; i < input_row_count; ++i) {
584
15
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
15
                if (scale_arg == 0) {
586
5
                    size_t scale = 1;
587
5
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
5
                                                                 vec_res[i]);
589
10
                } else if (scale_arg > 0) {
590
5
                    size_t scale = int_exp10(scale_arg);
591
5
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
5
                                                                     vec_res[i]);
593
5
                } else {
594
5
                    size_t scale = int_exp10(-scale_arg);
595
5
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
5
                                                                     vec_res[i]);
597
5
                }
598
15
            }
599
15
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
15
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
22
                                   [[maybe_unused]] Int16 result_scale) {
564
22
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
22
        const size_t input_row_count = col_scale_i32.size();
566
308
        for (size_t i = 0; i < input_row_count; ++i) {
567
286
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
286
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
286
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
286
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
22
        } else if constexpr (is_decimal(T)) {
637
22
            const auto* decimal_col =
638
22
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
22
            const Int32 input_scale = decimal_col->get_scale();
640
22
            auto col_res =
641
22
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
308
            for (size_t i = 0; i < input_row_count; ++i) {
644
286
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
286
                        decimal_col->get_element(i).value, input_scale,
646
286
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
286
            }
648
649
308
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
286
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
286
                if (scale_arg <= 0) {
663
148
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
148
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
39
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
39
                }
667
286
            }
668
669
22
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
22
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
13
                                   [[maybe_unused]] Int16 result_scale) {
564
13
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
13
        const size_t input_row_count = col_scale_i32.size();
566
169
        for (size_t i = 0; i < input_row_count; ++i) {
567
156
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
156
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
156
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
156
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
13
        } else if constexpr (is_decimal(T)) {
637
13
            const auto* decimal_col =
638
13
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
13
            const Int32 input_scale = decimal_col->get_scale();
640
13
            auto col_res =
641
13
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
169
            for (size_t i = 0; i < input_row_count; ++i) {
644
156
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
156
                        decimal_col->get_element(i).value, input_scale,
646
156
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
156
            }
648
649
169
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
156
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
156
                if (scale_arg <= 0) {
663
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
86
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
31
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
31
                }
667
156
            }
668
669
13
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
13
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
3
                                   [[maybe_unused]] Int16 result_scale) {
564
3
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
3
        const size_t input_row_count = col_scale_i32.size();
566
6
        for (size_t i = 0; i < input_row_count; ++i) {
567
3
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
3
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
3
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
3
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
3
        } else if constexpr (is_decimal(T)) {
637
3
            const auto* decimal_col =
638
3
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
3
            const Int32 input_scale = decimal_col->get_scale();
640
3
            auto col_res =
641
3
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
6
            for (size_t i = 0; i < input_row_count; ++i) {
644
3
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
3
                        decimal_col->get_element(i).value, input_scale,
646
3
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
3
            }
648
649
6
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
3
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
3
                if (scale_arg <= 0) {
663
0
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
3
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
2
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
2
                }
667
3
            }
668
669
3
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
3
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
5
                                   [[maybe_unused]] Int16 result_scale) {
564
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
5
        const size_t input_row_count = col_scale_i32.size();
566
10
        for (size_t i = 0; i < input_row_count; ++i) {
567
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
5
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
5
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
5
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
5
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
5
            auto col_res = ColumnVector<T>::create();
580
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
5
            vec_res.resize(input_row_count);
582
583
10
            for (size_t i = 0; i < input_row_count; ++i) {
584
5
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
5
                if (scale_arg == 0) {
586
2
                    size_t scale = 1;
587
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
2
                                                                 vec_res[i]);
589
3
                } else if (scale_arg > 0) {
590
2
                    size_t scale = int_exp10(scale_arg);
591
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
2
                                                                     vec_res[i]);
593
2
                } else {
594
1
                    size_t scale = int_exp10(-scale_arg);
595
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
1
                                                                     vec_res[i]);
597
1
                }
598
5
            }
599
5
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
10
                                   [[maybe_unused]] Int16 result_scale) {
564
10
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
10
        const size_t input_row_count = col_scale_i32.size();
566
20
        for (size_t i = 0; i < input_row_count; ++i) {
567
10
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
10
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
10
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
10
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
10
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
10
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
10
            auto col_res = ColumnVector<T>::create();
580
10
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
10
            vec_res.resize(input_row_count);
582
583
20
            for (size_t i = 0; i < input_row_count; ++i) {
584
10
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
10
                if (scale_arg == 0) {
586
2
                    size_t scale = 1;
587
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
2
                                                                 vec_res[i]);
589
8
                } else if (scale_arg > 0) {
590
3
                    size_t scale = int_exp10(scale_arg);
591
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
3
                                                                     vec_res[i]);
593
5
                } else {
594
5
                    size_t scale = int_exp10(-scale_arg);
595
5
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
5
                                                                     vec_res[i]);
597
5
                }
598
10
            }
599
10
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
        } else if constexpr (is_decimal(T)) {
637
            const auto* decimal_col =
638
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
            const Int32 input_scale = decimal_col->get_scale();
640
            auto col_res =
641
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
            for (size_t i = 0; i < input_row_count; ++i) {
644
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
                        decimal_col->get_element(i).value, input_scale,
646
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
            }
648
649
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
                if (scale_arg <= 0) {
663
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
                }
667
            }
668
669
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
10
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
25
                                   [[maybe_unused]] Int16 result_scale) {
564
25
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
25
        const size_t input_row_count = col_scale_i32.size();
566
314
        for (size_t i = 0; i < input_row_count; ++i) {
567
289
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
289
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
289
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
289
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
25
        } else if constexpr (is_decimal(T)) {
637
25
            const auto* decimal_col =
638
25
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
25
            const Int32 input_scale = decimal_col->get_scale();
640
25
            auto col_res =
641
25
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
314
            for (size_t i = 0; i < input_row_count; ++i) {
644
289
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
289
                        decimal_col->get_element(i).value, input_scale,
646
289
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
289
            }
648
649
314
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
289
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
289
                if (scale_arg <= 0) {
663
148
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
148
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
39
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
39
                }
667
289
            }
668
669
25
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
25
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
14
                                   [[maybe_unused]] Int16 result_scale) {
564
14
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
14
        const size_t input_row_count = col_scale_i32.size();
566
171
        for (size_t i = 0; i < input_row_count; ++i) {
567
157
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
157
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
157
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
157
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
14
        } else if constexpr (is_decimal(T)) {
637
14
            const auto* decimal_col =
638
14
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
14
            const Int32 input_scale = decimal_col->get_scale();
640
14
            auto col_res =
641
14
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
171
            for (size_t i = 0; i < input_row_count; ++i) {
644
157
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
157
                        decimal_col->get_element(i).value, input_scale,
646
157
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
157
            }
648
649
171
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
157
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
157
                if (scale_arg <= 0) {
663
71
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
86
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
31
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
31
                }
667
157
            }
668
669
14
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
14
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
_ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
Line
Count
Source
563
3
                                   [[maybe_unused]] Int16 result_scale) {
564
3
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
565
3
        const size_t input_row_count = col_scale_i32.size();
566
6
        for (size_t i = 0; i < input_row_count; ++i) {
567
3
            const Int32 scale_arg = col_scale_i32.get_data()[i];
568
3
            if (scale_arg > std::numeric_limits<Int16>::max() ||
569
3
                scale_arg < std::numeric_limits<Int16>::min()) {
570
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
571
0
                                       "Scale argument for function is out of bound: {}",
572
0
                                       scale_arg);
573
0
            }
574
3
        }
575
576
        if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) || is_float_or_double(T) ||
577
                      T == TYPE_TIMEV2 || T == TYPE_TIME) {
578
            const auto* col = assert_cast<const ColumnVector<T>*>(col_general);
579
            auto col_res = ColumnVector<T>::create();
580
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
581
            vec_res.resize(input_row_count);
582
583
            for (size_t i = 0; i < input_row_count; ++i) {
584
                const Int32 scale_arg = col_scale_i32.get_data()[i];
585
                if (scale_arg == 0) {
586
                    size_t scale = 1;
587
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(col->get_data()[i], scale,
588
                                                                 vec_res[i]);
589
                } else if (scale_arg > 0) {
590
                    size_t scale = int_exp10(scale_arg);
591
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(col->get_data()[i], scale,
592
                                                                     vec_res[i]);
593
                } else {
594
                    size_t scale = int_exp10(-scale_arg);
595
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(col->get_data()[i], scale,
596
                                                                     vec_res[i]);
597
                }
598
            }
599
            return col_res;
600
        } else if constexpr (T == TYPE_DECIMALV2) {
601
            const auto* decimal_col =
602
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
603
            const Int32 input_scale = decimal_col->get_scale();
604
            auto col_res =
605
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
606
607
            for (size_t i = 0; i < input_row_count; ++i) {
608
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
609
                        decimal_col->get_element(i).value(), input_scale,
610
                        col_res->get_element(i).value(), col_scale_i32.get_data()[i]);
611
            }
612
613
            for (size_t i = 0; i < input_row_count; ++i) {
614
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
615
                // So we need this check to make sure the result have correct digits count
616
                //
617
                // Case 0: scale_arg <= -(integer part digits count)
618
                //      do nothing, because result is 0
619
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
620
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
621
                // Case 2: scale_arg > 0 && scale_arg < result_scale
622
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
623
                // Case 3: scale_arg >= input_scale
624
                //      do nothing
625
                const Int32 scale_arg = col_scale_i32.get_data()[i];
626
                if (scale_arg <= 0) {
627
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
628
                                                             int_exp10(result_scale));
629
                } else if (scale_arg > 0 && scale_arg < result_scale) {
630
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
631
                                                             int_exp10(result_scale - scale_arg));
632
                }
633
            }
634
635
            return col_res;
636
3
        } else if constexpr (is_decimal(T)) {
637
3
            const auto* decimal_col =
638
3
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType*>(col_general);
639
3
            const Int32 input_scale = decimal_col->get_scale();
640
3
            auto col_res =
641
3
                    PrimitiveTypeTraits<T>::ColumnType::create(input_row_count, result_scale);
642
643
6
            for (size_t i = 0; i < input_row_count; ++i) {
644
3
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
645
3
                        decimal_col->get_element(i).value, input_scale,
646
3
                        col_res->get_element(i).value, col_scale_i32.get_data()[i]);
647
3
            }
648
649
6
            for (size_t i = 0; i < input_row_count; ++i) {
650
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
651
                // So we need this check to make sure the result have correct digits count
652
                //
653
                // Case 0: scale_arg <= -(integer part digits count)
654
                //      do nothing, because result is 0
655
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
656
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
657
                // Case 2: scale_arg > 0 && scale_arg < result_scale
658
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
659
                // Case 3: scale_arg >= input_scale
660
                //      do nothing
661
3
                const Int32 scale_arg = col_scale_i32.get_data()[i];
662
3
                if (scale_arg <= 0) {
663
0
                    col_res->get_element(i).value *= int_exp10(result_scale);
664
3
                } else if (scale_arg > 0 && scale_arg < result_scale) {
665
2
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
666
2
                }
667
3
            }
668
669
3
            return col_res;
670
        } else {
671
            static_assert(false);
672
        }
673
3
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13apply_vec_vecEPKNS_7IColumnES7_s
674
675
    // result_scale: scale for result decimal, this scale is got from planner
676
    static ColumnPtr apply_const_vec(const ColumnConst* const_col_general, const IColumn* col_scale,
677
164
                                     [[maybe_unused]] Int16 result_scale) {
678
164
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
164
        const size_t input_rows_count = col_scale->size();
680
681
2.36k
        for (size_t i = 0; i < input_rows_count; ++i) {
682
2.19k
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
2.19k
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
2.19k
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
2.19k
        }
691
692
164
        if constexpr (T == TYPE_DECIMALV2) {
693
0
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
0
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
0
                            const_col_general->get_data_column());
696
0
            const auto& general_val = data_col_general.get_data()[0];
697
0
            Int32 input_scale = data_col_general.get_scale();
698
0
            auto col_res =
699
0
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
0
            for (size_t i = 0; i < input_rows_count; ++i) {
702
0
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
0
                        general_val, input_scale, col_res->get_element(i).value(),
704
0
                        col_scale_i32.get_data()[i]);
705
0
            }
706
707
0
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
0
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
0
                if (scale_arg <= 0) {
721
0
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
0
                                                             int_exp10(result_scale));
723
0
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
0
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
0
                                                             int_exp10(result_scale - scale_arg));
726
0
                }
727
0
            }
728
729
0
            return col_res;
730
115
        } else if constexpr (is_decimal(T)) {
731
115
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
115
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
115
                            const_col_general->get_data_column());
734
115
            const auto& general_val = data_col_general.get_data()[0];
735
115
            Int32 input_scale = data_col_general.get_scale();
736
115
            auto col_res =
737
115
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
2.26k
            for (size_t i = 0; i < input_rows_count; ++i) {
740
2.15k
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
2.15k
                        general_val, input_scale, col_res->get_element(i).value,
742
2.15k
                        col_scale_i32.get_data()[i]);
743
2.15k
            }
744
745
2.26k
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
2.15k
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
2.15k
                if (scale_arg <= 0) {
759
1.09k
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
1.09k
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
320
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
320
                }
763
2.15k
            }
764
765
115
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
49
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
49
            const ColumnVector<T>& data_col_general =
769
49
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
49
            const auto& general_val = data_col_general.get_data()[0];
771
49
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
49
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
98
            for (size_t i = 0; i < input_rows_count; ++i) {
775
49
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
49
                if (scale_arg == 0) {
777
14
                    size_t scale = 1;
778
14
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
35
                } else if (scale_arg > 0) {
780
25
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
25
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
25
                                                                     vec_res[i]);
783
25
                } else {
784
10
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
10
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
10
                                                                     vec_res[i]);
787
10
                }
788
49
            }
789
790
49
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
164
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
4
                                     [[maybe_unused]] Int16 result_scale) {
678
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
4
        const size_t input_rows_count = col_scale->size();
680
681
8
        for (size_t i = 0; i < input_rows_count; ++i) {
682
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
4
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
4
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
4
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
4
            const ColumnVector<T>& data_col_general =
769
4
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
4
            const auto& general_val = data_col_general.get_data()[0];
771
4
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
8
            for (size_t i = 0; i < input_rows_count; ++i) {
775
4
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
4
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
3
                } else if (scale_arg > 0) {
780
2
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
2
                                                                     vec_res[i]);
783
2
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
4
            }
789
790
4
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
5
                                     [[maybe_unused]] Int16 result_scale) {
678
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
5
        const size_t input_rows_count = col_scale->size();
680
681
10
        for (size_t i = 0; i < input_rows_count; ++i) {
682
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
5
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
5
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
5
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
5
            const ColumnVector<T>& data_col_general =
769
5
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
5
            const auto& general_val = data_col_general.get_data()[0];
771
5
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
10
            for (size_t i = 0; i < input_rows_count; ++i) {
775
5
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
5
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
4
                } else if (scale_arg > 0) {
780
3
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
3
                                                                     vec_res[i]);
783
3
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
5
            }
789
790
5
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
15
                                     [[maybe_unused]] Int16 result_scale) {
678
15
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
15
        const size_t input_rows_count = col_scale->size();
680
681
294
        for (size_t i = 0; i < input_rows_count; ++i) {
682
279
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
279
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
279
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
279
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
15
        } else if constexpr (is_decimal(T)) {
731
15
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
15
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
15
                            const_col_general->get_data_column());
734
15
            const auto& general_val = data_col_general.get_data()[0];
735
15
            Int32 input_scale = data_col_general.get_scale();
736
15
            auto col_res =
737
15
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
294
            for (size_t i = 0; i < input_rows_count; ++i) {
740
279
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
279
                        general_val, input_scale, col_res->get_element(i).value,
742
279
                        col_scale_i32.get_data()[i]);
743
279
            }
744
745
294
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
279
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
279
                if (scale_arg <= 0) {
759
147
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
147
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
37
                }
763
279
            }
764
765
15
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
15
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
14
                                     [[maybe_unused]] Int16 result_scale) {
678
14
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
14
        const size_t input_rows_count = col_scale->size();
680
681
171
        for (size_t i = 0; i < input_rows_count; ++i) {
682
157
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
157
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
157
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
157
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
14
        } else if constexpr (is_decimal(T)) {
731
14
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
14
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
14
                            const_col_general->get_data_column());
734
14
            const auto& general_val = data_col_general.get_data()[0];
735
14
            Int32 input_scale = data_col_general.get_scale();
736
14
            auto col_res =
737
14
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
171
            for (size_t i = 0; i < input_rows_count; ++i) {
740
157
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
157
                        general_val, input_scale, col_res->get_element(i).value,
742
157
                        col_scale_i32.get_data()[i]);
743
157
            }
744
745
171
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
157
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
157
                if (scale_arg <= 0) {
759
74
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
83
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
30
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
30
                }
763
157
            }
764
765
14
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
14
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
4
                                     [[maybe_unused]] Int16 result_scale) {
678
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
4
        const size_t input_rows_count = col_scale->size();
680
681
8
        for (size_t i = 0; i < input_rows_count; ++i) {
682
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
4
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
4
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
4
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
4
            const ColumnVector<T>& data_col_general =
769
4
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
4
            const auto& general_val = data_col_general.get_data()[0];
771
4
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
8
            for (size_t i = 0; i < input_rows_count; ++i) {
775
4
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
4
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
3
                } else if (scale_arg > 0) {
780
2
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
2
                                                                     vec_res[i]);
783
2
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
4
            }
789
790
4
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
5
                                     [[maybe_unused]] Int16 result_scale) {
678
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
5
        const size_t input_rows_count = col_scale->size();
680
681
10
        for (size_t i = 0; i < input_rows_count; ++i) {
682
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
5
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
5
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
5
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
5
            const ColumnVector<T>& data_col_general =
769
5
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
5
            const auto& general_val = data_col_general.get_data()[0];
771
5
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
10
            for (size_t i = 0; i < input_rows_count; ++i) {
775
5
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
5
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
4
                } else if (scale_arg > 0) {
780
3
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
3
                                                                     vec_res[i]);
783
3
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
5
            }
789
790
5
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
15
                                     [[maybe_unused]] Int16 result_scale) {
678
15
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
15
        const size_t input_rows_count = col_scale->size();
680
681
294
        for (size_t i = 0; i < input_rows_count; ++i) {
682
279
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
279
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
279
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
279
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
15
        } else if constexpr (is_decimal(T)) {
731
15
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
15
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
15
                            const_col_general->get_data_column());
734
15
            const auto& general_val = data_col_general.get_data()[0];
735
15
            Int32 input_scale = data_col_general.get_scale();
736
15
            auto col_res =
737
15
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
294
            for (size_t i = 0; i < input_rows_count; ++i) {
740
279
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
279
                        general_val, input_scale, col_res->get_element(i).value,
742
279
                        col_scale_i32.get_data()[i]);
743
279
            }
744
745
294
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
279
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
279
                if (scale_arg <= 0) {
759
147
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
147
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
37
                }
763
279
            }
764
765
15
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
15
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
7
                                     [[maybe_unused]] Int16 result_scale) {
678
7
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
7
        const size_t input_rows_count = col_scale->size();
680
681
157
        for (size_t i = 0; i < input_rows_count; ++i) {
682
150
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
150
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
150
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
150
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
7
        } else if constexpr (is_decimal(T)) {
731
7
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
7
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
7
                            const_col_general->get_data_column());
734
7
            const auto& general_val = data_col_general.get_data()[0];
735
7
            Int32 input_scale = data_col_general.get_scale();
736
7
            auto col_res =
737
7
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
157
            for (size_t i = 0; i < input_rows_count; ++i) {
740
150
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
150
                        general_val, input_scale, col_res->get_element(i).value,
742
150
                        col_scale_i32.get_data()[i]);
743
150
            }
744
745
157
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
150
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
150
                if (scale_arg <= 0) {
759
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
80
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
27
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
27
                }
763
150
            }
764
765
7
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
7
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
5
                                     [[maybe_unused]] Int16 result_scale) {
678
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
5
        const size_t input_rows_count = col_scale->size();
680
681
10
        for (size_t i = 0; i < input_rows_count; ++i) {
682
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
5
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
5
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
5
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
5
            const ColumnVector<T>& data_col_general =
769
5
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
5
            const auto& general_val = data_col_general.get_data()[0];
771
5
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
10
            for (size_t i = 0; i < input_rows_count; ++i) {
775
5
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
5
                if (scale_arg == 0) {
777
2
                    size_t scale = 1;
778
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
3
                } else if (scale_arg > 0) {
780
2
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
2
                                                                     vec_res[i]);
783
2
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
5
            }
789
790
5
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
6
                                     [[maybe_unused]] Int16 result_scale) {
678
6
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
6
        const size_t input_rows_count = col_scale->size();
680
681
12
        for (size_t i = 0; i < input_rows_count; ++i) {
682
6
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
6
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
6
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
6
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
6
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
6
            const ColumnVector<T>& data_col_general =
769
6
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
6
            const auto& general_val = data_col_general.get_data()[0];
771
6
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
6
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
12
            for (size_t i = 0; i < input_rows_count; ++i) {
775
6
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
6
                if (scale_arg == 0) {
777
2
                    size_t scale = 1;
778
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
4
                } else if (scale_arg > 0) {
780
3
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
3
                                                                     vec_res[i]);
783
3
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
6
            }
789
790
6
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
6
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
16
                                     [[maybe_unused]] Int16 result_scale) {
678
16
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
16
        const size_t input_rows_count = col_scale->size();
680
681
296
        for (size_t i = 0; i < input_rows_count; ++i) {
682
280
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
280
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
280
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
280
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
16
        } else if constexpr (is_decimal(T)) {
731
16
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
16
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
16
                            const_col_general->get_data_column());
734
16
            const auto& general_val = data_col_general.get_data()[0];
735
16
            Int32 input_scale = data_col_general.get_scale();
736
16
            auto col_res =
737
16
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
296
            for (size_t i = 0; i < input_rows_count; ++i) {
740
280
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
280
                        general_val, input_scale, col_res->get_element(i).value,
742
280
                        col_scale_i32.get_data()[i]);
743
280
            }
744
745
296
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
280
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
280
                if (scale_arg <= 0) {
759
148
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
148
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
37
                }
763
280
            }
764
765
16
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
16
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
6
                                     [[maybe_unused]] Int16 result_scale) {
678
6
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
6
        const size_t input_rows_count = col_scale->size();
680
681
155
        for (size_t i = 0; i < input_rows_count; ++i) {
682
149
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
149
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
149
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
149
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
6
        } else if constexpr (is_decimal(T)) {
731
6
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
6
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
6
                            const_col_general->get_data_column());
734
6
            const auto& general_val = data_col_general.get_data()[0];
735
6
            Int32 input_scale = data_col_general.get_scale();
736
6
            auto col_res =
737
6
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
155
            for (size_t i = 0; i < input_rows_count; ++i) {
740
149
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
149
                        general_val, input_scale, col_res->get_element(i).value,
742
149
                        col_scale_i32.get_data()[i]);
743
149
            }
744
745
155
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
149
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
149
                if (scale_arg <= 0) {
759
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
79
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
26
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
26
                }
763
149
            }
764
765
6
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
6
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
4
                                     [[maybe_unused]] Int16 result_scale) {
678
4
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
4
        const size_t input_rows_count = col_scale->size();
680
681
8
        for (size_t i = 0; i < input_rows_count; ++i) {
682
4
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
4
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
4
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
4
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
4
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
4
            const ColumnVector<T>& data_col_general =
769
4
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
4
            const auto& general_val = data_col_general.get_data()[0];
771
4
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
4
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
8
            for (size_t i = 0; i < input_rows_count; ++i) {
775
4
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
4
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
3
                } else if (scale_arg > 0) {
780
2
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
2
                                                                     vec_res[i]);
783
2
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
4
            }
789
790
4
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
4
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
5
                                     [[maybe_unused]] Int16 result_scale) {
678
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
5
        const size_t input_rows_count = col_scale->size();
680
681
10
        for (size_t i = 0; i < input_rows_count; ++i) {
682
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
5
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
5
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
5
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
5
            const ColumnVector<T>& data_col_general =
769
5
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
5
            const auto& general_val = data_col_general.get_data()[0];
771
5
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
10
            for (size_t i = 0; i < input_rows_count; ++i) {
775
5
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
5
                if (scale_arg == 0) {
777
1
                    size_t scale = 1;
778
1
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
4
                } else if (scale_arg > 0) {
780
3
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
3
                                                                     vec_res[i]);
783
3
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
5
            }
789
790
5
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
15
                                     [[maybe_unused]] Int16 result_scale) {
678
15
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
15
        const size_t input_rows_count = col_scale->size();
680
681
294
        for (size_t i = 0; i < input_rows_count; ++i) {
682
279
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
279
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
279
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
279
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
15
        } else if constexpr (is_decimal(T)) {
731
15
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
15
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
15
                            const_col_general->get_data_column());
734
15
            const auto& general_val = data_col_general.get_data()[0];
735
15
            Int32 input_scale = data_col_general.get_scale();
736
15
            auto col_res =
737
15
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
294
            for (size_t i = 0; i < input_rows_count; ++i) {
740
279
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
279
                        general_val, input_scale, col_res->get_element(i).value,
742
279
                        col_scale_i32.get_data()[i]);
743
279
            }
744
745
294
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
279
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
279
                if (scale_arg <= 0) {
759
147
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
147
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
37
                }
763
279
            }
764
765
15
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
15
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
6
                                     [[maybe_unused]] Int16 result_scale) {
678
6
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
6
        const size_t input_rows_count = col_scale->size();
680
681
155
        for (size_t i = 0; i < input_rows_count; ++i) {
682
149
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
149
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
149
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
149
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
6
        } else if constexpr (is_decimal(T)) {
731
6
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
6
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
6
                            const_col_general->get_data_column());
734
6
            const auto& general_val = data_col_general.get_data()[0];
735
6
            Int32 input_scale = data_col_general.get_scale();
736
6
            auto col_res =
737
6
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
155
            for (size_t i = 0; i < input_rows_count; ++i) {
740
149
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
149
                        general_val, input_scale, col_res->get_element(i).value,
742
149
                        col_scale_i32.get_data()[i]);
743
149
            }
744
745
155
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
149
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
149
                if (scale_arg <= 0) {
759
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
79
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
26
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
26
                }
763
149
            }
764
765
6
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
6
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE2ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE3ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE4ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE5ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE6ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE7ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
_ZN5doris10DispatcherILNS_13PrimitiveTypeE8ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
5
                                     [[maybe_unused]] Int16 result_scale) {
678
5
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
5
        const size_t input_rows_count = col_scale->size();
680
681
10
        for (size_t i = 0; i < input_rows_count; ++i) {
682
5
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
5
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
5
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
5
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
5
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
5
            const ColumnVector<T>& data_col_general =
769
5
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
5
            const auto& general_val = data_col_general.get_data()[0];
771
5
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
5
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
10
            for (size_t i = 0; i < input_rows_count; ++i) {
775
5
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
5
                if (scale_arg == 0) {
777
2
                    size_t scale = 1;
778
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
3
                } else if (scale_arg > 0) {
780
2
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
2
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
2
                                                                     vec_res[i]);
783
2
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
5
            }
789
790
5
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
5
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE9ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
6
                                     [[maybe_unused]] Int16 result_scale) {
678
6
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
6
        const size_t input_rows_count = col_scale->size();
680
681
12
        for (size_t i = 0; i < input_rows_count; ++i) {
682
6
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
6
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
6
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
6
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
        } else if constexpr (is_decimal(T)) {
731
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
                            const_col_general->get_data_column());
734
            const auto& general_val = data_col_general.get_data()[0];
735
            Int32 input_scale = data_col_general.get_scale();
736
            auto col_res =
737
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
            for (size_t i = 0; i < input_rows_count; ++i) {
740
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
                        general_val, input_scale, col_res->get_element(i).value,
742
                        col_scale_i32.get_data()[i]);
743
            }
744
745
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
                if (scale_arg <= 0) {
759
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
                }
763
            }
764
765
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
6
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
6
            const ColumnVector<T>& data_col_general =
769
6
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
6
            const auto& general_val = data_col_general.get_data()[0];
771
6
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
6
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
12
            for (size_t i = 0; i < input_rows_count; ++i) {
775
6
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
6
                if (scale_arg == 0) {
777
2
                    size_t scale = 1;
778
2
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
4
                } else if (scale_arg > 0) {
780
3
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
3
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
3
                                                                     vec_res[i]);
783
3
                } else {
784
1
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
1
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
1
                                                                     vec_res[i]);
787
1
                }
788
6
            }
789
790
6
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
6
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE28ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
15
                                     [[maybe_unused]] Int16 result_scale) {
678
15
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
15
        const size_t input_rows_count = col_scale->size();
680
681
294
        for (size_t i = 0; i < input_rows_count; ++i) {
682
279
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
279
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
279
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
279
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
15
        } else if constexpr (is_decimal(T)) {
731
15
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
15
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
15
                            const_col_general->get_data_column());
734
15
            const auto& general_val = data_col_general.get_data()[0];
735
15
            Int32 input_scale = data_col_general.get_scale();
736
15
            auto col_res =
737
15
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
294
            for (size_t i = 0; i < input_rows_count; ++i) {
740
279
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
279
                        general_val, input_scale, col_res->get_element(i).value,
742
279
                        col_scale_i32.get_data()[i]);
743
279
            }
744
745
294
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
279
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
279
                if (scale_arg <= 0) {
759
147
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
147
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
37
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
37
                }
763
279
            }
764
765
15
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
15
    }
_ZN5doris10DispatcherILNS_13PrimitiveTypeE29ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Line
Count
Source
677
6
                                     [[maybe_unused]] Int16 result_scale) {
678
6
        const auto& col_scale_i32 = assert_cast<const ColumnInt32&>(*col_scale);
679
6
        const size_t input_rows_count = col_scale->size();
680
681
155
        for (size_t i = 0; i < input_rows_count; ++i) {
682
149
            const Int32 scale_arg = col_scale_i32.get_data()[i];
683
684
149
            if (scale_arg > std::numeric_limits<Int16>::max() ||
685
149
                scale_arg < std::numeric_limits<Int16>::min()) {
686
0
                throw doris::Exception(ErrorCode::OUT_OF_BOUND,
687
0
                                       "Scale argument for function is out of bound: {}",
688
0
                                       scale_arg);
689
0
            }
690
149
        }
691
692
        if constexpr (T == TYPE_DECIMALV2) {
693
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
694
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
695
                            const_col_general->get_data_column());
696
            const auto& general_val = data_col_general.get_data()[0];
697
            Int32 input_scale = data_col_general.get_scale();
698
            auto col_res =
699
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
700
701
            for (size_t i = 0; i < input_rows_count; ++i) {
702
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
703
                        general_val, input_scale, col_res->get_element(i).value(),
704
                        col_scale_i32.get_data()[i]);
705
            }
706
707
            for (size_t i = 0; i < input_rows_count; ++i) {
708
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
709
                // So we need this check to make sure the result have correct digits count
710
                //
711
                // Case 0: scale_arg <= -(integer part digits count)
712
                //      do nothing, because result is 0
713
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
714
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
715
                // Case 2: scale_arg > 0 && scale_arg < result_scale
716
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
717
                // Case 3: scale_arg >= input_scale
718
                //      do nothing
719
                const Int32 scale_arg = col_scale_i32.get_data()[i];
720
                if (scale_arg <= 0) {
721
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
722
                                                             int_exp10(result_scale));
723
                } else if (scale_arg > 0 && scale_arg < result_scale) {
724
                    col_res->get_element(i) = DecimalV2Value(col_res->get_element(i).value() *
725
                                                             int_exp10(result_scale - scale_arg));
726
                }
727
            }
728
729
            return col_res;
730
6
        } else if constexpr (is_decimal(T)) {
731
6
            const typename PrimitiveTypeTraits<T>::ColumnType& data_col_general =
732
6
                    assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(
733
6
                            const_col_general->get_data_column());
734
6
            const auto& general_val = data_col_general.get_data()[0];
735
6
            Int32 input_scale = data_col_general.get_scale();
736
6
            auto col_res =
737
6
                    PrimitiveTypeTraits<T>::ColumnType::create(input_rows_count, result_scale);
738
739
155
            for (size_t i = 0; i < input_rows_count; ++i) {
740
149
                DecimalRoundingImpl<T, rounding_mode, tie_breaking_mode>::apply(
741
149
                        general_val, input_scale, col_res->get_element(i).value,
742
149
                        col_scale_i32.get_data()[i]);
743
149
            }
744
745
155
            for (size_t i = 0; i < input_rows_count; ++i) {
746
                // For func(ColumnDecimal, ColumnInt32), we should always have same scale with source Decimal column
747
                // So we need this check to make sure the result have correct digits count
748
                //
749
                // Case 0: scale_arg <= -(integer part digits count)
750
                //      do nothing, because result is 0
751
                // Case 1: scale_arg <= 0 && scale_arg > -(integer part digits count)
752
                //      decimal parts has been erased, so add them back by multiply 10^(scale_arg)
753
                // Case 2: scale_arg > 0 && scale_arg < result_scale
754
                //      decimal part now has scale_arg digits, so multiply 10^(result_scale - scal_arg)
755
                // Case 3: scale_arg >= input_scale
756
                //      do nothing
757
149
                const Int32 scale_arg = col_scale_i32.get_data()[i];
758
149
                if (scale_arg <= 0) {
759
70
                    col_res->get_element(i).value *= int_exp10(result_scale);
760
79
                } else if (scale_arg > 0 && scale_arg < result_scale) {
761
26
                    col_res->get_element(i).value *= int_exp10(result_scale - scale_arg);
762
26
                }
763
149
            }
764
765
6
            return col_res;
766
        } else if constexpr (is_int_or_bool(T) || is_date_type(T) || is_ip(T) ||
767
                             is_float_or_double(T) || T == TYPE_TIMEV2 || T == TYPE_TIME) {
768
            const ColumnVector<T>& data_col_general =
769
                    assert_cast<const ColumnVector<T>&>(const_col_general->get_data_column());
770
            const auto& general_val = data_col_general.get_data()[0];
771
            auto col_res = ColumnVector<T>::create(input_rows_count);
772
            typename ColumnVector<T>::Container& vec_res = col_res->get_data();
773
774
            for (size_t i = 0; i < input_rows_count; ++i) {
775
                const Int16 scale_arg = col_scale_i32.get_data()[i];
776
                if (scale_arg == 0) {
777
                    size_t scale = 1;
778
                    FunctionRoundingImpl<ScaleMode::Zero>::apply(general_val, scale, vec_res[i]);
779
                } else if (scale_arg > 0) {
780
                    size_t scale = int_exp10(col_scale_i32.get_data()[i]);
781
                    FunctionRoundingImpl<ScaleMode::Positive>::apply(general_val, scale,
782
                                                                     vec_res[i]);
783
                } else {
784
                    size_t scale = int_exp10(-col_scale_i32.get_data()[i]);
785
                    FunctionRoundingImpl<ScaleMode::Negative>::apply(general_val, scale,
786
                                                                     vec_res[i]);
787
                }
788
            }
789
790
            return col_res;
791
        } else {
792
            static_assert(false);
793
        }
794
6
    }
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE20ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE30ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
Unexecuted instantiation: _ZN5doris10DispatcherILNS_13PrimitiveTypeE35ELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE15apply_const_vecEPKNS_11ColumnConstEPKNS_7IColumnEs
795
};
796
797
template <typename Impl, RoundingMode rounding_mode, TieBreakingMode tie_breaking_mode>
798
class FunctionRounding : public IFunction {
799
public:
800
    static constexpr auto name = Impl::name;
801
2.09k
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
11
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
34
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
17
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
21
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
14
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
25
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
16
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
430
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
18
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
17
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
14
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
14
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
14
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
22
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
39
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
21
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
16
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
13
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
18
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
752
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
18
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
12
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
29
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
22
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
27
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
22
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
24
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
25
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
26
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
24
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
23
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
22
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
21
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
24
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
85
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
22
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
23
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
11
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE6createEv
Line
Count
Source
801
9
    static FunctionPtr create() { return std::make_shared<FunctionRounding>(); }
802
803
0
    String get_name() const override { return name; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE8get_nameB5cxx11Ev
804
805
1.65k
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
3
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
26
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
9
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
13
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
6
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
13
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
4
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
418
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
6
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
5
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
6
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
6
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
6
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
14
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
31
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
13
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
8
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
5
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
10
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
744
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
10
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
4
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
19
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
12
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
17
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
12
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
14
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
15
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
16
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
14
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
13
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
12
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
13
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
16
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
77
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
14
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
15
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
3
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE11is_variadicEv
Line
Count
Source
805
1
    bool is_variadic() const override { return true; }
806
0
    size_t get_number_of_arguments() const override { return 0; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE23get_number_of_argumentsEv
807
808
400
    DataTypes get_variadic_argument_types_impl() const override {
809
400
        return Impl::get_variadic_argument_types();
810
400
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE32get_variadic_argument_types_implEv
Line
Count
Source
808
8
    DataTypes get_variadic_argument_types_impl() const override {
809
8
        return Impl::get_variadic_argument_types();
810
8
    }
811
812
1.79k
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
27
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
9
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
10
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
5
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
39
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
7
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
459
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
10
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
8
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
9
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
9
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
9
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
5
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
208
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
15
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
11
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
75
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
15
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
385
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
23
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
5
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
26
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
18
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
20
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
17
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
14
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
31
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
22
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
20
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
18
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
16
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
14
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
19
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
171
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
17
    bool need_replace_null_data_to_default() const override { return true; }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
16
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Line
Count
Source
812
14
    bool need_replace_null_data_to_default() const override { return true; }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE33need_replace_null_data_to_defaultEv
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE33need_replace_null_data_to_defaultEv
813
814
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
815
1.60k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
1.60k
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
1.60k
        return arguments[0];
824
1.60k
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
2
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
2
        return arguments[0];
824
2
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
25
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
25
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
25
        return arguments[0];
824
25
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
8
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
8
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
8
        return arguments[0];
824
8
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
12
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
12
        return arguments[0];
824
12
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
5
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
5
        return arguments[0];
824
5
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
12
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
12
        return arguments[0];
824
12
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
3
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
3
        return arguments[0];
824
3
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
417
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
417
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
417
        return arguments[0];
824
417
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
5
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
5
        return arguments[0];
824
5
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
815
4
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
4
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
4
        return arguments[0];
824
4
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
5
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
5
        return arguments[0];
824
5
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
5
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
5
        return arguments[0];
824
5
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
5
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
5
        return arguments[0];
824
5
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
13
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
13
        return arguments[0];
824
13
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
30
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
30
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
30
        return arguments[0];
824
30
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
12
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
12
        return arguments[0];
824
12
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
7
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
7
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
7
        return arguments[0];
824
7
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
4
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
4
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
4
        return arguments[0];
824
4
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
9
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
9
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
9
        return arguments[0];
824
9
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
743
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
743
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
743
        return arguments[0];
824
743
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
9
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
9
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
9
        return arguments[0];
824
9
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
3
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
3
        return arguments[0];
824
3
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
18
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
18
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
18
        return arguments[0];
824
18
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
11
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
11
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
11
        return arguments[0];
824
11
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
16
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
16
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
16
        return arguments[0];
824
16
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
11
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
11
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
11
        return arguments[0];
824
11
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
13
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
13
        return arguments[0];
824
13
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
14
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
14
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
14
        return arguments[0];
824
14
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
15
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
15
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
15
        return arguments[0];
824
15
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
13
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
13
        return arguments[0];
824
13
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
12
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
12
        return arguments[0];
824
12
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
11
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
11
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
11
        return arguments[0];
824
11
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
12
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
12
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
12
        return arguments[0];
824
12
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
15
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
15
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
15
        return arguments[0];
824
15
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
76
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
76
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
76
        return arguments[0];
824
76
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
13
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
13
        return arguments[0];
824
13
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
14
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
14
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
14
        return arguments[0];
824
14
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Line
Count
Source
815
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
816
2
        if ((arguments.empty()) || (arguments.size() > 2)) {
817
0
            throw doris::Exception(
818
0
                    ErrorCode::INVALID_ARGUMENT,
819
0
                    "Number of arguments for function {}, doesn't match: should be 1 or 2. ",
820
0
                    get_name());
821
0
        }
822
823
2
        return arguments[0];
824
2
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EE
825
826
975
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
975
        const IColumn& scale_column = *arguments.column;
828
829
975
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
975
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
975
                                  .get_element(0);
832
833
975
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
975
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
975
        *scale = scale_arg;
840
975
        return Status::OK();
841
975
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
36
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
36
        const IColumn& scale_column = *arguments.column;
828
829
36
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
36
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
36
                                  .get_element(0);
832
833
36
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
36
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
36
        *scale = scale_arg;
840
36
        return Status::OK();
841
36
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
463
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
463
        const IColumn& scale_column = *arguments.column;
828
829
463
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
463
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
463
                                  .get_element(0);
832
833
463
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
463
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
463
        *scale = scale_arg;
840
463
        return Status::OK();
841
463
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
_ZN5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
8
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
8
        const IColumn& scale_column = *arguments.column;
828
829
8
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
8
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
8
                                  .get_element(0);
832
833
8
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
8
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
8
        *scale = scale_arg;
840
8
        return Status::OK();
841
8
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
30
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
30
        const IColumn& scale_column = *arguments.column;
828
829
30
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
30
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
30
                                  .get_element(0);
832
833
30
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
30
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
30
        *scale = scale_arg;
840
30
        return Status::OK();
841
30
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
20
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
20
        const IColumn& scale_column = *arguments.column;
828
829
20
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
20
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
20
                                  .get_element(0);
832
833
20
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
20
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
20
        *scale = scale_arg;
840
20
        return Status::OK();
841
20
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
21
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
21
        const IColumn& scale_column = *arguments.column;
828
829
21
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
21
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
21
                                  .get_element(0);
832
833
21
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
21
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
21
        *scale = scale_arg;
840
21
        return Status::OK();
841
21
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
19
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
19
        const IColumn& scale_column = *arguments.column;
828
829
19
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
19
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
19
                                  .get_element(0);
832
833
19
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
19
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
19
        *scale = scale_arg;
840
19
        return Status::OK();
841
19
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
12
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
12
        const IColumn& scale_column = *arguments.column;
828
829
12
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
12
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
12
                                  .get_element(0);
832
833
12
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
12
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
12
        *scale = scale_arg;
840
12
        return Status::OK();
841
12
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
26
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
26
        const IColumn& scale_column = *arguments.column;
828
829
26
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
26
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
26
                                  .get_element(0);
832
833
26
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
26
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
26
        *scale = scale_arg;
840
26
        return Status::OK();
841
26
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
21
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
21
        const IColumn& scale_column = *arguments.column;
828
829
21
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
21
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
21
                                  .get_element(0);
832
833
21
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
21
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
21
        *scale = scale_arg;
840
21
        return Status::OK();
841
21
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
20
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
20
        const IColumn& scale_column = *arguments.column;
828
829
20
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
20
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
20
                                  .get_element(0);
832
833
20
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
20
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
20
        *scale = scale_arg;
840
20
        return Status::OK();
841
20
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
20
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
20
        const IColumn& scale_column = *arguments.column;
828
829
20
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
20
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
20
                                  .get_element(0);
832
833
20
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
20
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
20
        *scale = scale_arg;
840
20
        return Status::OK();
841
20
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
12
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
12
        const IColumn& scale_column = *arguments.column;
828
829
12
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
12
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
12
                                  .get_element(0);
832
833
12
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
12
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
12
        *scale = scale_arg;
840
12
        return Status::OK();
841
12
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
15
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
15
        const IColumn& scale_column = *arguments.column;
828
829
15
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
15
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
15
                                  .get_element(0);
832
833
15
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
15
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
15
        *scale = scale_arg;
840
15
        return Status::OK();
841
15
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
23
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
23
        const IColumn& scale_column = *arguments.column;
828
829
23
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
23
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
23
                                  .get_element(0);
832
833
23
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
23
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
23
        *scale = scale_arg;
840
23
        return Status::OK();
841
23
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
176
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
176
        const IColumn& scale_column = *arguments.column;
828
829
176
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
176
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
176
                                  .get_element(0);
832
833
176
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
176
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
176
        *scale = scale_arg;
840
176
        return Status::OK();
841
176
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
22
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
22
        const IColumn& scale_column = *arguments.column;
828
829
22
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
22
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
22
                                  .get_element(0);
832
833
22
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
22
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
22
        *scale = scale_arg;
840
22
        return Status::OK();
841
22
    }
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
17
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
17
        const IColumn& scale_column = *arguments.column;
828
829
17
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
17
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
17
                                  .get_element(0);
832
833
17
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
17
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
17
        *scale = scale_arg;
840
17
        return Status::OK();
841
17
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
_ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Line
Count
Source
826
14
    static Status get_scale_arg(const ColumnWithTypeAndName& arguments, Int16* scale) {
827
14
        const IColumn& scale_column = *arguments.column;
828
829
14
        Int32 scale_arg = assert_cast<const ColumnInt32&>(
830
14
                                  assert_cast<const ColumnConst*>(&scale_column)->get_data_column())
831
14
                                  .get_element(0);
832
833
14
        if (scale_arg > std::numeric_limits<Int16>::max() ||
834
14
            scale_arg < std::numeric_limits<Int16>::min()) {
835
0
            return Status::InvalidArgument("Scale argument for function {} is out of bound: {}",
836
0
                                           name, scale_arg);
837
0
        }
838
839
14
        *scale = scale_arg;
840
14
        return Status::OK();
841
14
    }
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
Unexecuted instantiation: _ZN5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE13get_scale_argERKNS_21ColumnWithTypeAndNameEPs
842
843
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
844
2.74k
                        uint32_t result, size_t input_rows_count) const override {
845
2.74k
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
2.74k
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
2.74k
        const DataTypePtr result_type = block.get_by_position(result).type;
848
2.74k
        const bool is_col_general_const = is_column_const(*column_general.column);
849
2.74k
        const auto* col_general = is_col_general_const
850
2.74k
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
164
                                                    .get_data_column_ptr()
852
164
                                                    .get()
853
2.74k
                                          : column_general.column.get();
854
2.74k
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
2.74k
        auto call = [&](const auto& types) -> bool {
863
2.74k
            using Types = std::decay_t<decltype(types)>;
864
2.74k
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
2.74k
            Int16 result_scale = 0;
869
2.74k
            if constexpr (IsDataTypeDecimal<DataType>) {
870
2.00k
                if (column_result.type->is_nullable()) {
871
1.22k
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
1.22k
                                column_result.type)) {
873
1.22k
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
1.22k
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
1.22k
                } else {
879
786
                    result_scale = column_result.type->get_scale();
880
786
                }
881
2.00k
            }
882
883
2.74k
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
2.74k
                if (arguments.size() == 1 ||
885
2.74k
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
2.30k
                    Int16 scale_arg = 0;
888
2.30k
                    if (arguments.size() == 2) {
889
975
                        RETURN_IF_ERROR(
890
975
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
975
                    }
892
893
2.30k
                    res = Dispatcher<DataType::PType, rounding_mode,
894
2.30k
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
2.30k
                                                                         result_scale);
896
2.30k
                } else {
897
                    // the SECOND arugment is COLUMN
898
438
                    if (is_col_general_const) {
899
164
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
164
                                apply_const_vec(
901
164
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
164
                                        block.get_by_position(arguments[1]).column.get(),
903
164
                                        result_scale);
904
274
                    } else {
905
274
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
274
                                apply_vec_vec(col_general,
907
274
                                              block.get_by_position(arguments[1]).column.get(),
908
274
                                              result_scale);
909
274
                    }
910
438
                }
911
2.74k
                return true;
912
2.74k
            }
913
914
0
            return false;
915
2.74k
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
2
        auto call = [&](const auto& types) -> bool {
863
2
            using Types = std::decay_t<decltype(types)>;
864
2
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
2
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
2
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
2
                if (arguments.size() == 1 ||
885
2
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
2
                    Int16 scale_arg = 0;
888
2
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
2
                    res = Dispatcher<DataType::PType, rounding_mode,
894
2
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
2
                                                                         result_scale);
896
2
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
2
                return true;
912
2
            }
913
914
0
            return false;
915
2
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
40
        auto call = [&](const auto& types) -> bool {
863
40
            using Types = std::decay_t<decltype(types)>;
864
40
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
40
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
40
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
40
                if (arguments.size() == 1 ||
885
40
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
40
                    Int16 scale_arg = 0;
888
40
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
40
                    res = Dispatcher<DataType::PType, rounding_mode,
894
40
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
40
                                                                         result_scale);
896
40
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
40
                return true;
912
40
            }
913
914
0
            return false;
915
40
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
20
        auto call = [&](const auto& types) -> bool {
863
20
            using Types = std::decay_t<decltype(types)>;
864
20
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
20
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
20
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
20
                if (arguments.size() == 1 ||
885
20
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
20
                return true;
912
20
            }
913
914
0
            return false;
915
20
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
24
        auto call = [&](const auto& types) -> bool {
863
24
            using Types = std::decay_t<decltype(types)>;
864
24
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
24
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
24
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
24
                if (arguments.size() == 1 ||
885
24
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
24
                    Int16 scale_arg = 0;
888
24
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
24
                    res = Dispatcher<DataType::PType, rounding_mode,
894
24
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
24
                                                                         result_scale);
896
24
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
24
                return true;
912
24
            }
913
914
0
            return false;
915
24
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
11
        auto call = [&](const auto& types) -> bool {
863
11
            using Types = std::decay_t<decltype(types)>;
864
11
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
11
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
11
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
11
                if (arguments.size() == 1 ||
885
11
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
11
                    Int16 scale_arg = 0;
888
11
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
11
                    res = Dispatcher<DataType::PType, rounding_mode,
894
11
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
11
                                                                         result_scale);
896
11
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
11
                return true;
912
11
            }
913
914
0
            return false;
915
11
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
Line
Count
Source
862
8
        auto call = [&](const auto& types) -> bool {
863
8
            using Types = std::decay_t<decltype(types)>;
864
8
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
8
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
8
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
8
                if (arguments.size() == 1 ||
885
8
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
8
                } else {
897
                    // the SECOND arugment is COLUMN
898
8
                    if (is_col_general_const) {
899
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
4
                                apply_const_vec(
901
4
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
4
                                        block.get_by_position(arguments[1]).column.get(),
903
4
                                        result_scale);
904
4
                    } else {
905
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
4
                                apply_vec_vec(col_general,
907
4
                                              block.get_by_position(arguments[1]).column.get(),
908
4
                                              result_scale);
909
4
                    }
910
8
                }
911
8
                return true;
912
8
            }
913
914
0
            return false;
915
8
        };
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
54
        auto call = [&](const auto& types) -> bool {
863
54
            using Types = std::decay_t<decltype(types)>;
864
54
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
54
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
54
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
54
                if (arguments.size() == 1 ||
885
54
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
36
                    Int16 scale_arg = 0;
888
36
                    if (arguments.size() == 2) {
889
36
                        RETURN_IF_ERROR(
890
36
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
36
                    }
892
893
36
                    res = Dispatcher<DataType::PType, rounding_mode,
894
36
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
36
                                                                         result_scale);
896
36
                } else {
897
                    // the SECOND arugment is COLUMN
898
18
                    if (is_col_general_const) {
899
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
5
                                apply_const_vec(
901
5
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
5
                                        block.get_by_position(arguments[1]).column.get(),
903
5
                                        result_scale);
904
13
                    } else {
905
13
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
13
                                apply_vec_vec(col_general,
907
13
                                              block.get_by_position(arguments[1]).column.get(),
908
13
                                              result_scale);
909
13
                    }
910
18
                }
911
54
                return true;
912
54
            }
913
914
0
            return false;
915
54
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
Line
Count
Source
862
8
        auto call = [&](const auto& types) -> bool {
863
8
            using Types = std::decay_t<decltype(types)>;
864
8
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
8
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
8
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
8
                if (arguments.size() == 1 ||
885
8
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
8
                } else {
897
                    // the SECOND arugment is COLUMN
898
8
                    if (is_col_general_const) {
899
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
4
                                apply_const_vec(
901
4
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
4
                                        block.get_by_position(arguments[1]).column.get(),
903
4
                                        result_scale);
904
4
                    } else {
905
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
4
                                apply_vec_vec(col_general,
907
4
                                              block.get_by_position(arguments[1]).column.get(),
908
4
                                              result_scale);
909
4
                    }
910
8
                }
911
8
                return true;
912
8
            }
913
914
0
            return false;
915
8
        };
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
17
                    if (is_col_general_const) {
899
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
5
                                apply_const_vec(
901
5
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
5
                                        block.get_by_position(arguments[1]).column.get(),
903
5
                                        result_scale);
904
12
                    } else {
905
12
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
12
                                apply_vec_vec(col_general,
907
12
                                              block.get_by_position(arguments[1]).column.get(),
908
12
                                              result_scale);
909
12
                    }
910
17
                }
911
17
                return true;
912
17
            }
913
914
0
            return false;
915
17
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
Line
Count
Source
862
10
        auto call = [&](const auto& types) -> bool {
863
10
            using Types = std::decay_t<decltype(types)>;
864
10
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
10
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
10
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
10
                if (arguments.size() == 1 ||
885
10
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
10
                } else {
897
                    // the SECOND arugment is COLUMN
898
10
                    if (is_col_general_const) {
899
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
5
                                apply_const_vec(
901
5
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
5
                                        block.get_by_position(arguments[1]).column.get(),
903
5
                                        result_scale);
904
5
                    } else {
905
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
5
                                apply_vec_vec(col_general,
907
5
                                              block.get_by_position(arguments[1]).column.get(),
908
5
                                              result_scale);
909
5
                    }
910
10
                }
911
10
                return true;
912
10
            }
913
914
0
            return false;
915
10
        };
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
479
        auto call = [&](const auto& types) -> bool {
863
479
            using Types = std::decay_t<decltype(types)>;
864
479
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
479
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
479
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
479
                if (arguments.size() == 1 ||
885
479
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
463
                    Int16 scale_arg = 0;
888
463
                    if (arguments.size() == 2) {
889
463
                        RETURN_IF_ERROR(
890
463
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
463
                    }
892
893
463
                    res = Dispatcher<DataType::PType, rounding_mode,
894
463
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
463
                                                                         result_scale);
896
463
                } else {
897
                    // the SECOND arugment is COLUMN
898
16
                    if (is_col_general_const) {
899
6
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
6
                                apply_const_vec(
901
6
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
6
                                        block.get_by_position(arguments[1]).column.get(),
903
6
                                        result_scale);
904
10
                    } else {
905
10
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
10
                                apply_vec_vec(col_general,
907
10
                                              block.get_by_position(arguments[1]).column.get(),
908
10
                                              result_scale);
909
10
                    }
910
16
                }
911
479
                return true;
912
479
            }
913
914
0
            return false;
915
479
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
Line
Count
Source
862
8
        auto call = [&](const auto& types) -> bool {
863
8
            using Types = std::decay_t<decltype(types)>;
864
8
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
8
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
8
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
8
                if (arguments.size() == 1 ||
885
8
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
8
                } else {
897
                    // the SECOND arugment is COLUMN
898
8
                    if (is_col_general_const) {
899
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
4
                                apply_const_vec(
901
4
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
4
                                        block.get_by_position(arguments[1]).column.get(),
903
4
                                        result_scale);
904
4
                    } else {
905
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
4
                                apply_vec_vec(col_general,
907
4
                                              block.get_by_position(arguments[1]).column.get(),
908
4
                                              result_scale);
909
4
                    }
910
8
                }
911
8
                return true;
912
8
            }
913
914
0
            return false;
915
8
        };
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
20
        auto call = [&](const auto& types) -> bool {
863
20
            using Types = std::decay_t<decltype(types)>;
864
20
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
20
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
20
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
20
                if (arguments.size() == 1 ||
885
20
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
20
                    if (is_col_general_const) {
899
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
5
                                apply_const_vec(
901
5
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
5
                                        block.get_by_position(arguments[1]).column.get(),
903
5
                                        result_scale);
904
15
                    } else {
905
15
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
15
                                apply_vec_vec(col_general,
907
15
                                              block.get_by_position(arguments[1]).column.get(),
908
15
                                              result_scale);
909
15
                    }
910
20
                }
911
20
                return true;
912
20
            }
913
914
0
            return false;
915
20
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE2EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE3EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE4EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE5EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE6EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE7EEEvEEEEbSI_
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEvEEEEbSI_
Line
Count
Source
862
10
        auto call = [&](const auto& types) -> bool {
863
10
            using Types = std::decay_t<decltype(types)>;
864
10
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
10
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
10
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
10
                if (arguments.size() == 1 ||
885
10
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
0
                    Int16 scale_arg = 0;
888
0
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
0
                    res = Dispatcher<DataType::PType, rounding_mode,
894
0
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
0
                                                                         result_scale);
896
10
                } else {
897
                    // the SECOND arugment is COLUMN
898
10
                    if (is_col_general_const) {
899
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
5
                                apply_const_vec(
901
5
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
5
                                        block.get_by_position(arguments[1]).column.get(),
903
5
                                        result_scale);
904
5
                    } else {
905
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
5
                                apply_vec_vec(col_general,
907
5
                                              block.get_by_position(arguments[1]).column.get(),
908
5
                                              result_scale);
909
5
                    }
910
10
                }
911
10
                return true;
912
10
            }
913
914
0
            return false;
915
10
        };
_ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEvEEEEbSI_
Line
Count
Source
862
24
        auto call = [&](const auto& types) -> bool {
863
24
            using Types = std::decay_t<decltype(types)>;
864
24
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
24
            Int16 result_scale = 0;
869
            if constexpr (IsDataTypeDecimal<DataType>) {
870
                if (column_result.type->is_nullable()) {
871
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
                                column_result.type)) {
873
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
                    } else {
875
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
                                               "Illegal nullable column");
877
                    }
878
                } else {
879
                    result_scale = column_result.type->get_scale();
880
                }
881
            }
882
883
24
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
24
                if (arguments.size() == 1 ||
885
24
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
8
                    Int16 scale_arg = 0;
888
8
                    if (arguments.size() == 2) {
889
8
                        RETURN_IF_ERROR(
890
8
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
8
                    }
892
893
8
                    res = Dispatcher<DataType::PType, rounding_mode,
894
8
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
8
                                                                         result_scale);
896
16
                } else {
897
                    // the SECOND arugment is COLUMN
898
16
                    if (is_col_general_const) {
899
6
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
6
                                apply_const_vec(
901
6
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
6
                                        block.get_by_position(arguments[1]).column.get(),
903
6
                                        result_scale);
904
10
                    } else {
905
10
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
10
                                apply_vec_vec(col_general,
907
10
                                              block.get_by_position(arguments[1]).column.get(),
908
10
                                              result_scale);
909
10
                    }
910
16
                }
911
24
                return true;
912
24
            }
913
914
0
            return false;
915
24
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE28EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE29EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE20EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE30EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILNS_13PrimitiveTypeE35EEEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSI_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
9
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
9
                                column_result.type)) {
873
9
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
9
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
9
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
17
                return true;
912
17
            }
913
914
0
            return false;
915
17
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
9
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
9
                                column_result.type)) {
873
9
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
9
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
9
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
17
                return true;
912
17
            }
913
914
0
            return false;
915
17
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
9
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
9
                                column_result.type)) {
873
9
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
9
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
9
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
17
                return true;
912
17
            }
913
914
0
            return false;
915
17
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
19
        auto call = [&](const auto& types) -> bool {
863
19
            using Types = std::decay_t<decltype(types)>;
864
19
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
19
            Int16 result_scale = 0;
869
19
            if constexpr (IsDataTypeDecimal<DataType>) {
870
19
                if (column_result.type->is_nullable()) {
871
5
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
5
                                column_result.type)) {
873
5
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
5
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
14
                } else {
879
14
                    result_scale = column_result.type->get_scale();
880
14
                }
881
19
            }
882
883
19
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
19
                if (arguments.size() == 1 ||
885
19
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
19
                    Int16 scale_arg = 0;
888
19
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
19
                    res = Dispatcher<DataType::PType, rounding_mode,
894
19
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
19
                                                                         result_scale);
896
19
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
19
                return true;
912
19
            }
913
914
0
            return false;
915
19
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
216
        auto call = [&](const auto& types) -> bool {
863
216
            using Types = std::decay_t<decltype(types)>;
864
216
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
216
            Int16 result_scale = 0;
869
216
            if constexpr (IsDataTypeDecimal<DataType>) {
870
216
                if (column_result.type->is_nullable()) {
871
208
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
208
                                column_result.type)) {
873
208
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
208
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
208
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
216
            }
882
883
216
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
216
                if (arguments.size() == 1 ||
885
216
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
216
                    Int16 scale_arg = 0;
888
216
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
216
                    res = Dispatcher<DataType::PType, rounding_mode,
894
216
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
216
                                                                         result_scale);
896
216
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
216
                return true;
912
216
            }
913
914
0
            return false;
915
216
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
23
        auto call = [&](const auto& types) -> bool {
863
23
            using Types = std::decay_t<decltype(types)>;
864
23
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
23
            Int16 result_scale = 0;
869
23
            if constexpr (IsDataTypeDecimal<DataType>) {
870
23
                if (column_result.type->is_nullable()) {
871
15
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
15
                                column_result.type)) {
873
15
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
15
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
15
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
23
            }
882
883
23
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
23
                if (arguments.size() == 1 ||
885
23
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
23
                    Int16 scale_arg = 0;
888
23
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
23
                    res = Dispatcher<DataType::PType, rounding_mode,
894
23
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
23
                                                                         result_scale);
896
23
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
23
                return true;
912
23
            }
913
914
0
            return false;
915
23
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
19
        auto call = [&](const auto& types) -> bool {
863
19
            using Types = std::decay_t<decltype(types)>;
864
19
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
19
            Int16 result_scale = 0;
869
19
            if constexpr (IsDataTypeDecimal<DataType>) {
870
19
                if (column_result.type->is_nullable()) {
871
11
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
11
                                column_result.type)) {
873
11
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
11
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
11
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
19
            }
882
883
19
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
19
                if (arguments.size() == 1 ||
885
19
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
19
                    Int16 scale_arg = 0;
888
19
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
19
                    res = Dispatcher<DataType::PType, rounding_mode,
894
19
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
19
                                                                         result_scale);
896
19
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
19
                return true;
912
19
            }
913
914
0
            return false;
915
19
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
79
        auto call = [&](const auto& types) -> bool {
863
79
            using Types = std::decay_t<decltype(types)>;
864
79
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
79
            Int16 result_scale = 0;
869
79
            if constexpr (IsDataTypeDecimal<DataType>) {
870
79
                if (column_result.type->is_nullable()) {
871
75
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
75
                                column_result.type)) {
873
75
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
75
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
75
                } else {
879
4
                    result_scale = column_result.type->get_scale();
880
4
                }
881
79
            }
882
883
79
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
79
                if (arguments.size() == 1 ||
885
79
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
79
                    Int16 scale_arg = 0;
888
79
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
79
                    res = Dispatcher<DataType::PType, rounding_mode,
894
79
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
79
                                                                         result_scale);
896
79
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
79
                return true;
912
79
            }
913
914
0
            return false;
915
79
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
25
        auto call = [&](const auto& types) -> bool {
863
25
            using Types = std::decay_t<decltype(types)>;
864
25
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
25
            Int16 result_scale = 0;
869
25
            if constexpr (IsDataTypeDecimal<DataType>) {
870
25
                if (column_result.type->is_nullable()) {
871
15
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
15
                                column_result.type)) {
873
15
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
15
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
15
                } else {
879
10
                    result_scale = column_result.type->get_scale();
880
10
                }
881
25
            }
882
883
25
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
25
                if (arguments.size() == 1 ||
885
25
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
25
                    Int16 scale_arg = 0;
888
25
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
25
                    res = Dispatcher<DataType::PType, rounding_mode,
894
25
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
25
                                                                         result_scale);
896
25
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
25
                return true;
912
25
            }
913
914
0
            return false;
915
25
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
761
        auto call = [&](const auto& types) -> bool {
863
761
            using Types = std::decay_t<decltype(types)>;
864
761
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
761
            Int16 result_scale = 0;
869
761
            if constexpr (IsDataTypeDecimal<DataType>) {
870
761
                if (column_result.type->is_nullable()) {
871
385
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
385
                                column_result.type)) {
873
385
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
385
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
385
                } else {
879
376
                    result_scale = column_result.type->get_scale();
880
376
                }
881
761
            }
882
883
761
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
761
                if (arguments.size() == 1 ||
885
761
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
761
                    Int16 scale_arg = 0;
888
761
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
761
                    res = Dispatcher<DataType::PType, rounding_mode,
894
761
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
761
                                                                         result_scale);
896
761
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
761
                return true;
912
761
            }
913
914
0
            return false;
915
761
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
31
        auto call = [&](const auto& types) -> bool {
863
31
            using Types = std::decay_t<decltype(types)>;
864
31
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
31
            Int16 result_scale = 0;
869
31
            if constexpr (IsDataTypeDecimal<DataType>) {
870
31
                if (column_result.type->is_nullable()) {
871
23
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
23
                                column_result.type)) {
873
23
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
23
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
23
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
31
            }
882
883
31
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
31
                if (arguments.size() == 1 ||
885
31
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
31
                    Int16 scale_arg = 0;
888
31
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
31
                    res = Dispatcher<DataType::PType, rounding_mode,
894
31
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
31
                                                                         result_scale);
896
31
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
31
                return true;
912
31
            }
913
914
0
            return false;
915
31
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
9
        auto call = [&](const auto& types) -> bool {
863
9
            using Types = std::decay_t<decltype(types)>;
864
9
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
9
            Int16 result_scale = 0;
869
9
            if constexpr (IsDataTypeDecimal<DataType>) {
870
9
                if (column_result.type->is_nullable()) {
871
5
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
5
                                column_result.type)) {
873
5
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
5
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
5
                } else {
879
4
                    result_scale = column_result.type->get_scale();
880
4
                }
881
9
            }
882
883
9
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
9
                if (arguments.size() == 1 ||
885
9
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
9
                    Int16 scale_arg = 0;
888
9
                    if (arguments.size() == 2) {
889
0
                        RETURN_IF_ERROR(
890
0
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
0
                    }
892
893
9
                    res = Dispatcher<DataType::PType, rounding_mode,
894
9
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
9
                                                                         result_scale);
896
9
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
9
                return true;
912
9
            }
913
914
0
            return false;
915
9
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
66
        auto call = [&](const auto& types) -> bool {
863
66
            using Types = std::decay_t<decltype(types)>;
864
66
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
66
            Int16 result_scale = 0;
869
66
            if constexpr (IsDataTypeDecimal<DataType>) {
870
66
                if (column_result.type->is_nullable()) {
871
26
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
26
                                column_result.type)) {
873
26
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
26
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
40
                } else {
879
40
                    result_scale = column_result.type->get_scale();
880
40
                }
881
66
            }
882
883
66
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
66
                if (arguments.size() == 1 ||
885
66
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
30
                    Int16 scale_arg = 0;
888
30
                    if (arguments.size() == 2) {
889
30
                        RETURN_IF_ERROR(
890
30
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
30
                    }
892
893
30
                    res = Dispatcher<DataType::PType, rounding_mode,
894
30
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
30
                                                                         result_scale);
896
36
                } else {
897
                    // the SECOND arugment is COLUMN
898
36
                    if (is_col_general_const) {
899
15
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
15
                                apply_const_vec(
901
15
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
15
                                        block.get_by_position(arguments[1]).column.get(),
903
15
                                        result_scale);
904
21
                    } else {
905
21
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
21
                                apply_vec_vec(col_general,
907
21
                                              block.get_by_position(arguments[1]).column.get(),
908
21
                                              result_scale);
909
21
                    }
910
36
                }
911
66
                return true;
912
66
            }
913
914
0
            return false;
915
66
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
56
        auto call = [&](const auto& types) -> bool {
863
56
            using Types = std::decay_t<decltype(types)>;
864
56
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
56
            Int16 result_scale = 0;
869
56
            if constexpr (IsDataTypeDecimal<DataType>) {
870
56
                if (column_result.type->is_nullable()) {
871
18
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
18
                                column_result.type)) {
873
18
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
18
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
38
                } else {
879
38
                    result_scale = column_result.type->get_scale();
880
38
                }
881
56
            }
882
883
56
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
56
                if (arguments.size() == 1 ||
885
56
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
20
                        RETURN_IF_ERROR(
890
20
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
20
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
36
                } else {
897
                    // the SECOND arugment is COLUMN
898
36
                    if (is_col_general_const) {
899
15
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
15
                                apply_const_vec(
901
15
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
15
                                        block.get_by_position(arguments[1]).column.get(),
903
15
                                        result_scale);
904
21
                    } else {
905
21
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
21
                                apply_vec_vec(col_general,
907
21
                                              block.get_by_position(arguments[1]).column.get(),
908
21
                                              result_scale);
909
21
                    }
910
36
                }
911
56
                return true;
912
56
            }
913
914
0
            return false;
915
56
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
59
        auto call = [&](const auto& types) -> bool {
863
59
            using Types = std::decay_t<decltype(types)>;
864
59
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
59
            Int16 result_scale = 0;
869
59
            if constexpr (IsDataTypeDecimal<DataType>) {
870
59
                if (column_result.type->is_nullable()) {
871
20
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
20
                                column_result.type)) {
873
20
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
20
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
39
                } else {
879
39
                    result_scale = column_result.type->get_scale();
880
39
                }
881
59
            }
882
883
59
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
59
                if (arguments.size() == 1 ||
885
59
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
21
                    Int16 scale_arg = 0;
888
21
                    if (arguments.size() == 2) {
889
21
                        RETURN_IF_ERROR(
890
21
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
21
                    }
892
893
21
                    res = Dispatcher<DataType::PType, rounding_mode,
894
21
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
21
                                                                         result_scale);
896
38
                } else {
897
                    // the SECOND arugment is COLUMN
898
38
                    if (is_col_general_const) {
899
16
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
16
                                apply_const_vec(
901
16
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
16
                                        block.get_by_position(arguments[1]).column.get(),
903
16
                                        result_scale);
904
22
                    } else {
905
22
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
22
                                apply_vec_vec(col_general,
907
22
                                              block.get_by_position(arguments[1]).column.get(),
908
22
                                              result_scale);
909
22
                    }
910
38
                }
911
59
                return true;
912
59
            }
913
914
0
            return false;
915
59
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
56
        auto call = [&](const auto& types) -> bool {
863
56
            using Types = std::decay_t<decltype(types)>;
864
56
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
56
            Int16 result_scale = 0;
869
56
            if constexpr (IsDataTypeDecimal<DataType>) {
870
56
                if (column_result.type->is_nullable()) {
871
17
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
17
                                column_result.type)) {
873
17
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
17
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
39
                } else {
879
39
                    result_scale = column_result.type->get_scale();
880
39
                }
881
56
            }
882
883
56
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
56
                if (arguments.size() == 1 ||
885
56
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
19
                    Int16 scale_arg = 0;
888
19
                    if (arguments.size() == 2) {
889
19
                        RETURN_IF_ERROR(
890
19
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
19
                    }
892
893
19
                    res = Dispatcher<DataType::PType, rounding_mode,
894
19
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
19
                                                                         result_scale);
896
37
                } else {
897
                    // the SECOND arugment is COLUMN
898
37
                    if (is_col_general_const) {
899
15
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
15
                                apply_const_vec(
901
15
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
15
                                        block.get_by_position(arguments[1]).column.get(),
903
15
                                        result_scale);
904
22
                    } else {
905
22
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
22
                                apply_vec_vec(col_general,
907
22
                                              block.get_by_position(arguments[1]).column.get(),
908
22
                                              result_scale);
909
22
                    }
910
37
                }
911
56
                return true;
912
56
            }
913
914
0
            return false;
915
56
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Line
Count
Source
862
52
        auto call = [&](const auto& types) -> bool {
863
52
            using Types = std::decay_t<decltype(types)>;
864
52
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
52
            Int16 result_scale = 0;
869
52
            if constexpr (IsDataTypeDecimal<DataType>) {
870
52
                if (column_result.type->is_nullable()) {
871
14
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
14
                                column_result.type)) {
873
14
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
14
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
38
                } else {
879
38
                    result_scale = column_result.type->get_scale();
880
38
                }
881
52
            }
882
883
52
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
52
                if (arguments.size() == 1 ||
885
52
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
12
                    Int16 scale_arg = 0;
888
12
                    if (arguments.size() == 2) {
889
12
                        RETURN_IF_ERROR(
890
12
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
12
                    }
892
893
12
                    res = Dispatcher<DataType::PType, rounding_mode,
894
12
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
12
                                                                         result_scale);
896
40
                } else {
897
                    // the SECOND arugment is COLUMN
898
40
                    if (is_col_general_const) {
899
15
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
15
                                apply_const_vec(
901
15
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
15
                                        block.get_by_position(arguments[1]).column.get(),
903
15
                                        result_scale);
904
25
                    } else {
905
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
25
                                apply_vec_vec(col_general,
907
25
                                              block.get_by_position(arguments[1]).column.get(),
908
25
                                              result_scale);
909
25
                    }
910
40
                }
911
52
                return true;
912
52
            }
913
914
0
            return false;
915
52
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
48
        auto call = [&](const auto& types) -> bool {
863
48
            using Types = std::decay_t<decltype(types)>;
864
48
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
48
            Int16 result_scale = 0;
869
48
            if constexpr (IsDataTypeDecimal<DataType>) {
870
48
                if (column_result.type->is_nullable()) {
871
31
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
31
                                column_result.type)) {
873
31
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
31
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
31
                } else {
879
17
                    result_scale = column_result.type->get_scale();
880
17
                }
881
48
            }
882
883
48
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
48
                if (arguments.size() == 1 ||
885
48
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
26
                    Int16 scale_arg = 0;
888
26
                    if (arguments.size() == 2) {
889
26
                        RETURN_IF_ERROR(
890
26
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
26
                    }
892
893
26
                    res = Dispatcher<DataType::PType, rounding_mode,
894
26
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
26
                                                                         result_scale);
896
26
                } else {
897
                    // the SECOND arugment is COLUMN
898
22
                    if (is_col_general_const) {
899
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
14
                                apply_const_vec(
901
14
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
14
                                        block.get_by_position(arguments[1]).column.get(),
903
14
                                        result_scale);
904
14
                    } else {
905
8
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
8
                                apply_vec_vec(col_general,
907
8
                                              block.get_by_position(arguments[1]).column.get(),
908
8
                                              result_scale);
909
8
                    }
910
22
                }
911
48
                return true;
912
48
            }
913
914
0
            return false;
915
48
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
42
        auto call = [&](const auto& types) -> bool {
863
42
            using Types = std::decay_t<decltype(types)>;
864
42
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
42
            Int16 result_scale = 0;
869
42
            if constexpr (IsDataTypeDecimal<DataType>) {
870
42
                if (column_result.type->is_nullable()) {
871
22
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
22
                                column_result.type)) {
873
22
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
22
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
22
                } else {
879
20
                    result_scale = column_result.type->get_scale();
880
20
                }
881
42
            }
882
883
42
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
42
                if (arguments.size() == 1 ||
885
42
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
21
                    Int16 scale_arg = 0;
888
21
                    if (arguments.size() == 2) {
889
21
                        RETURN_IF_ERROR(
890
21
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
21
                    }
892
893
21
                    res = Dispatcher<DataType::PType, rounding_mode,
894
21
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
21
                                                                         result_scale);
896
21
                } else {
897
                    // the SECOND arugment is COLUMN
898
21
                    if (is_col_general_const) {
899
7
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
7
                                apply_const_vec(
901
7
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
7
                                        block.get_by_position(arguments[1]).column.get(),
903
7
                                        result_scale);
904
14
                    } else {
905
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
14
                                apply_vec_vec(col_general,
907
14
                                              block.get_by_position(arguments[1]).column.get(),
908
14
                                              result_scale);
909
14
                    }
910
21
                }
911
42
                return true;
912
42
            }
913
914
0
            return false;
915
42
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
40
        auto call = [&](const auto& types) -> bool {
863
40
            using Types = std::decay_t<decltype(types)>;
864
40
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
40
            Int16 result_scale = 0;
869
40
            if constexpr (IsDataTypeDecimal<DataType>) {
870
40
                if (column_result.type->is_nullable()) {
871
20
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
20
                                column_result.type)) {
873
20
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
20
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
20
                } else {
879
20
                    result_scale = column_result.type->get_scale();
880
20
                }
881
40
            }
882
883
40
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
40
                if (arguments.size() == 1 ||
885
40
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
20
                        RETURN_IF_ERROR(
890
20
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
20
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
20
                    if (is_col_general_const) {
899
6
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
6
                                apply_const_vec(
901
6
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
6
                                        block.get_by_position(arguments[1]).column.get(),
903
6
                                        result_scale);
904
14
                    } else {
905
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
14
                                apply_vec_vec(col_general,
907
14
                                              block.get_by_position(arguments[1]).column.get(),
908
14
                                              result_scale);
909
14
                    }
910
20
                }
911
40
                return true;
912
40
            }
913
914
0
            return false;
915
40
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
39
        auto call = [&](const auto& types) -> bool {
863
39
            using Types = std::decay_t<decltype(types)>;
864
39
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
39
            Int16 result_scale = 0;
869
39
            if constexpr (IsDataTypeDecimal<DataType>) {
870
39
                if (column_result.type->is_nullable()) {
871
18
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
18
                                column_result.type)) {
873
18
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
18
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
21
                } else {
879
21
                    result_scale = column_result.type->get_scale();
880
21
                }
881
39
            }
882
883
39
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
39
                if (arguments.size() == 1 ||
885
39
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
20
                        RETURN_IF_ERROR(
890
20
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
20
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
19
                    if (is_col_general_const) {
899
6
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
6
                                apply_const_vec(
901
6
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
6
                                        block.get_by_position(arguments[1]).column.get(),
903
6
                                        result_scale);
904
13
                    } else {
905
13
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
13
                                apply_vec_vec(col_general,
907
13
                                              block.get_by_position(arguments[1]).column.get(),
908
13
                                              result_scale);
909
13
                    }
910
19
                }
911
39
                return true;
912
39
            }
913
914
0
            return false;
915
39
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Line
Count
Source
862
32
        auto call = [&](const auto& types) -> bool {
863
32
            using Types = std::decay_t<decltype(types)>;
864
32
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
32
            Int16 result_scale = 0;
869
32
            if constexpr (IsDataTypeDecimal<DataType>) {
870
32
                if (column_result.type->is_nullable()) {
871
16
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
16
                                column_result.type)) {
873
16
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
16
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
16
                } else {
879
16
                    result_scale = column_result.type->get_scale();
880
16
                }
881
32
            }
882
883
32
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
32
                if (arguments.size() == 1 ||
885
32
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
12
                    Int16 scale_arg = 0;
888
12
                    if (arguments.size() == 2) {
889
12
                        RETURN_IF_ERROR(
890
12
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
12
                    }
892
893
12
                    res = Dispatcher<DataType::PType, rounding_mode,
894
12
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
12
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
20
                    if (is_col_general_const) {
899
6
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
6
                                apply_const_vec(
901
6
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
6
                                        block.get_by_position(arguments[1]).column.get(),
903
6
                                        result_scale);
904
14
                    } else {
905
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
14
                                apply_vec_vec(col_general,
907
14
                                              block.get_by_position(arguments[1]).column.get(),
908
14
                                              result_scale);
909
14
                    }
910
20
                }
911
32
                return true;
912
32
            }
913
914
0
            return false;
915
32
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
18
        auto call = [&](const auto& types) -> bool {
863
18
            using Types = std::decay_t<decltype(types)>;
864
18
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
18
            Int16 result_scale = 0;
869
18
            if constexpr (IsDataTypeDecimal<DataType>) {
870
18
                if (column_result.type->is_nullable()) {
871
14
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
14
                                column_result.type)) {
873
14
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
14
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
14
                } else {
879
4
                    result_scale = column_result.type->get_scale();
880
4
                }
881
18
            }
882
883
18
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
18
                if (arguments.size() == 1 ||
885
18
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
15
                    Int16 scale_arg = 0;
888
15
                    if (arguments.size() == 2) {
889
15
                        RETURN_IF_ERROR(
890
15
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
15
                    }
892
893
15
                    res = Dispatcher<DataType::PType, rounding_mode,
894
15
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
15
                                                                         result_scale);
896
15
                } else {
897
                    // the SECOND arugment is COLUMN
898
3
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
3
                    } else {
905
3
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
3
                                apply_vec_vec(col_general,
907
3
                                              block.get_by_position(arguments[1]).column.get(),
908
3
                                              result_scale);
909
3
                    }
910
3
                }
911
18
                return true;
912
18
            }
913
914
0
            return false;
915
18
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
27
        auto call = [&](const auto& types) -> bool {
863
27
            using Types = std::decay_t<decltype(types)>;
864
27
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
27
            Int16 result_scale = 0;
869
27
            if constexpr (IsDataTypeDecimal<DataType>) {
870
27
                if (column_result.type->is_nullable()) {
871
19
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
19
                                column_result.type)) {
873
19
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
19
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
19
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
27
            }
882
883
27
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
27
                if (arguments.size() == 1 ||
885
27
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
23
                    Int16 scale_arg = 0;
888
23
                    if (arguments.size() == 2) {
889
23
                        RETURN_IF_ERROR(
890
23
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
23
                    }
892
893
23
                    res = Dispatcher<DataType::PType, rounding_mode,
894
23
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
23
                                                                         result_scale);
896
23
                } else {
897
                    // the SECOND arugment is COLUMN
898
4
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
4
                    } else {
905
4
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
4
                                apply_vec_vec(col_general,
907
4
                                              block.get_by_position(arguments[1]).column.get(),
908
4
                                              result_scale);
909
4
                    }
910
4
                }
911
27
                return true;
912
27
            }
913
914
0
            return false;
915
27
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
181
        auto call = [&](const auto& types) -> bool {
863
181
            using Types = std::decay_t<decltype(types)>;
864
181
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
181
            Int16 result_scale = 0;
869
181
            if constexpr (IsDataTypeDecimal<DataType>) {
870
181
                if (column_result.type->is_nullable()) {
871
171
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
171
                                column_result.type)) {
873
171
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
171
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
171
                } else {
879
10
                    result_scale = column_result.type->get_scale();
880
10
                }
881
181
            }
882
883
181
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
181
                if (arguments.size() == 1 ||
885
181
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
176
                    Int16 scale_arg = 0;
888
176
                    if (arguments.size() == 2) {
889
176
                        RETURN_IF_ERROR(
890
176
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
176
                    }
892
893
176
                    res = Dispatcher<DataType::PType, rounding_mode,
894
176
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
176
                                                                         result_scale);
896
176
                } else {
897
                    // the SECOND arugment is COLUMN
898
5
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
5
                    } else {
905
5
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
5
                                apply_vec_vec(col_general,
907
5
                                              block.get_by_position(arguments[1]).column.get(),
908
5
                                              result_scale);
909
5
                    }
910
5
                }
911
181
                return true;
912
181
            }
913
914
0
            return false;
915
181
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
25
        auto call = [&](const auto& types) -> bool {
863
25
            using Types = std::decay_t<decltype(types)>;
864
25
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
25
            Int16 result_scale = 0;
869
25
            if constexpr (IsDataTypeDecimal<DataType>) {
870
25
                if (column_result.type->is_nullable()) {
871
17
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
17
                                column_result.type)) {
873
17
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
17
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
17
                } else {
879
8
                    result_scale = column_result.type->get_scale();
880
8
                }
881
25
            }
882
883
25
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
25
                if (arguments.size() == 1 ||
885
25
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
22
                    Int16 scale_arg = 0;
888
22
                    if (arguments.size() == 2) {
889
22
                        RETURN_IF_ERROR(
890
22
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
22
                    }
892
893
22
                    res = Dispatcher<DataType::PType, rounding_mode,
894
22
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
22
                                                                         result_scale);
896
22
                } else {
897
                    // the SECOND arugment is COLUMN
898
3
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
3
                    } else {
905
3
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
3
                                apply_vec_vec(col_general,
907
3
                                              block.get_by_position(arguments[1]).column.get(),
908
3
                                              result_scale);
909
3
                    }
910
3
                }
911
25
                return true;
912
25
            }
913
914
0
            return false;
915
25
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Line
Count
Source
862
20
        auto call = [&](const auto& types) -> bool {
863
20
            using Types = std::decay_t<decltype(types)>;
864
20
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
20
            Int16 result_scale = 0;
869
20
            if constexpr (IsDataTypeDecimal<DataType>) {
870
20
                if (column_result.type->is_nullable()) {
871
16
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
16
                                column_result.type)) {
873
16
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
16
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
16
                } else {
879
4
                    result_scale = column_result.type->get_scale();
880
4
                }
881
20
            }
882
883
20
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
20
                if (arguments.size() == 1 ||
885
20
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
17
                        RETURN_IF_ERROR(
890
17
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
17
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
3
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
3
                    } else {
905
3
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
3
                                apply_vec_vec(col_general,
907
3
                                              block.get_by_position(arguments[1]).column.get(),
908
3
                                              result_scale);
909
3
                    }
910
3
                }
911
20
                return true;
912
20
            }
913
914
0
            return false;
915
20
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
_ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Line
Count
Source
862
14
        auto call = [&](const auto& types) -> bool {
863
14
            using Types = std::decay_t<decltype(types)>;
864
14
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
14
            Int16 result_scale = 0;
869
14
            if constexpr (IsDataTypeDecimal<DataType>) {
870
14
                if (column_result.type->is_nullable()) {
871
14
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
14
                                column_result.type)) {
873
14
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
14
                    } else {
875
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
0
                                               "Illegal nullable column");
877
0
                    }
878
14
                } else {
879
0
                    result_scale = column_result.type->get_scale();
880
0
                }
881
14
            }
882
883
14
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
14
                if (arguments.size() == 1 ||
885
14
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
14
                    Int16 scale_arg = 0;
888
14
                    if (arguments.size() == 2) {
889
14
                        RETURN_IF_ERROR(
890
14
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
14
                    }
892
893
14
                    res = Dispatcher<DataType::PType, rounding_mode,
894
14
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
14
                                                                         result_scale);
896
14
                } else {
897
                    // the SECOND arugment is COLUMN
898
0
                    if (is_col_general_const) {
899
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
0
                                apply_const_vec(
901
0
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
0
                                        block.get_by_position(arguments[1]).column.get(),
903
0
                                        result_scale);
904
0
                    } else {
905
0
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
0
                                apply_vec_vec(col_general,
907
0
                                              block.get_by_position(arguments[1]).column.get(),
908
0
                                              result_scale);
909
0
                    }
910
0
                }
911
14
                return true;
912
14
            }
913
914
0
            return false;
915
14
        };
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_2EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_3EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_4EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_5EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_6EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_7EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_8EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeNumberILS3_9EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSJ_
Unexecuted instantiation: _ZZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSJ_
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
2.74k
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
2.74k
        column_result.column = std::move(res);
933
2.74k
        return Status::OK();
934
2.74k
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
2
                        uint32_t result, size_t input_rows_count) const override {
845
2
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
2
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
2
        const DataTypePtr result_type = block.get_by_position(result).type;
848
2
        const bool is_col_general_const = is_column_const(*column_general.column);
849
2
        const auto* col_general = is_col_general_const
850
2
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
2
                                          : column_general.column.get();
854
2
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
2
        auto call = [&](const auto& types) -> bool {
863
2
            using Types = std::decay_t<decltype(types)>;
864
2
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
2
            Int16 result_scale = 0;
869
2
            if constexpr (IsDataTypeDecimal<DataType>) {
870
2
                if (column_result.type->is_nullable()) {
871
2
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
2
                                column_result.type)) {
873
2
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
2
                    } else {
875
2
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
2
                                               "Illegal nullable column");
877
2
                    }
878
2
                } else {
879
2
                    result_scale = column_result.type->get_scale();
880
2
                }
881
2
            }
882
883
2
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
2
                if (arguments.size() == 1 ||
885
2
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
2
                    Int16 scale_arg = 0;
888
2
                    if (arguments.size() == 2) {
889
2
                        RETURN_IF_ERROR(
890
2
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
2
                    }
892
893
2
                    res = Dispatcher<DataType::PType, rounding_mode,
894
2
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
2
                                                                         result_scale);
896
2
                } else {
897
                    // the SECOND arugment is COLUMN
898
2
                    if (is_col_general_const) {
899
2
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
2
                                apply_const_vec(
901
2
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
2
                                        block.get_by_position(arguments[1]).column.get(),
903
2
                                        result_scale);
904
2
                    } else {
905
2
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
2
                                apply_vec_vec(col_general,
907
2
                                              block.get_by_position(arguments[1]).column.get(),
908
2
                                              result_scale);
909
2
                    }
910
2
                }
911
2
                return true;
912
2
            }
913
914
2
            return false;
915
2
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
2
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
2
        column_result.column = std::move(res);
933
2
        return Status::OK();
934
2
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
40
                        uint32_t result, size_t input_rows_count) const override {
845
40
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
40
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
40
        const DataTypePtr result_type = block.get_by_position(result).type;
848
40
        const bool is_col_general_const = is_column_const(*column_general.column);
849
40
        const auto* col_general = is_col_general_const
850
40
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
40
                                          : column_general.column.get();
854
40
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
40
        auto call = [&](const auto& types) -> bool {
863
40
            using Types = std::decay_t<decltype(types)>;
864
40
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
40
            Int16 result_scale = 0;
869
40
            if constexpr (IsDataTypeDecimal<DataType>) {
870
40
                if (column_result.type->is_nullable()) {
871
40
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
40
                                column_result.type)) {
873
40
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
40
                    } else {
875
40
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
40
                                               "Illegal nullable column");
877
40
                    }
878
40
                } else {
879
40
                    result_scale = column_result.type->get_scale();
880
40
                }
881
40
            }
882
883
40
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
40
                if (arguments.size() == 1 ||
885
40
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
40
                    Int16 scale_arg = 0;
888
40
                    if (arguments.size() == 2) {
889
40
                        RETURN_IF_ERROR(
890
40
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
40
                    }
892
893
40
                    res = Dispatcher<DataType::PType, rounding_mode,
894
40
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
40
                                                                         result_scale);
896
40
                } else {
897
                    // the SECOND arugment is COLUMN
898
40
                    if (is_col_general_const) {
899
40
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
40
                                apply_const_vec(
901
40
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
40
                                        block.get_by_position(arguments[1]).column.get(),
903
40
                                        result_scale);
904
40
                    } else {
905
40
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
40
                                apply_vec_vec(col_general,
907
40
                                              block.get_by_position(arguments[1]).column.get(),
908
40
                                              result_scale);
909
40
                    }
910
40
                }
911
40
                return true;
912
40
            }
913
914
40
            return false;
915
40
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
40
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
40
        column_result.column = std::move(res);
933
40
        return Status::OK();
934
40
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
20
                        uint32_t result, size_t input_rows_count) const override {
845
20
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
20
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
20
        const DataTypePtr result_type = block.get_by_position(result).type;
848
20
        const bool is_col_general_const = is_column_const(*column_general.column);
849
20
        const auto* col_general = is_col_general_const
850
20
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
20
                                          : column_general.column.get();
854
20
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
20
        auto call = [&](const auto& types) -> bool {
863
20
            using Types = std::decay_t<decltype(types)>;
864
20
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
20
            Int16 result_scale = 0;
869
20
            if constexpr (IsDataTypeDecimal<DataType>) {
870
20
                if (column_result.type->is_nullable()) {
871
20
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
20
                                column_result.type)) {
873
20
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
20
                    } else {
875
20
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
20
                                               "Illegal nullable column");
877
20
                    }
878
20
                } else {
879
20
                    result_scale = column_result.type->get_scale();
880
20
                }
881
20
            }
882
883
20
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
20
                if (arguments.size() == 1 ||
885
20
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
20
                        RETURN_IF_ERROR(
890
20
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
20
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
20
                    if (is_col_general_const) {
899
20
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
20
                                apply_const_vec(
901
20
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
20
                                        block.get_by_position(arguments[1]).column.get(),
903
20
                                        result_scale);
904
20
                    } else {
905
20
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
20
                                apply_vec_vec(col_general,
907
20
                                              block.get_by_position(arguments[1]).column.get(),
908
20
                                              result_scale);
909
20
                    }
910
20
                }
911
20
                return true;
912
20
            }
913
914
20
            return false;
915
20
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
20
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
20
        column_result.column = std::move(res);
933
20
        return Status::OK();
934
20
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
24
                        uint32_t result, size_t input_rows_count) const override {
845
24
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
24
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
24
        const DataTypePtr result_type = block.get_by_position(result).type;
848
24
        const bool is_col_general_const = is_column_const(*column_general.column);
849
24
        const auto* col_general = is_col_general_const
850
24
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
24
                                          : column_general.column.get();
854
24
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
24
        auto call = [&](const auto& types) -> bool {
863
24
            using Types = std::decay_t<decltype(types)>;
864
24
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
24
            Int16 result_scale = 0;
869
24
            if constexpr (IsDataTypeDecimal<DataType>) {
870
24
                if (column_result.type->is_nullable()) {
871
24
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
24
                                column_result.type)) {
873
24
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
24
                    } else {
875
24
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
24
                                               "Illegal nullable column");
877
24
                    }
878
24
                } else {
879
24
                    result_scale = column_result.type->get_scale();
880
24
                }
881
24
            }
882
883
24
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
24
                if (arguments.size() == 1 ||
885
24
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
24
                    Int16 scale_arg = 0;
888
24
                    if (arguments.size() == 2) {
889
24
                        RETURN_IF_ERROR(
890
24
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
24
                    }
892
893
24
                    res = Dispatcher<DataType::PType, rounding_mode,
894
24
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
24
                                                                         result_scale);
896
24
                } else {
897
                    // the SECOND arugment is COLUMN
898
24
                    if (is_col_general_const) {
899
24
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
24
                                apply_const_vec(
901
24
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
24
                                        block.get_by_position(arguments[1]).column.get(),
903
24
                                        result_scale);
904
24
                    } else {
905
24
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
24
                                apply_vec_vec(col_general,
907
24
                                              block.get_by_position(arguments[1]).column.get(),
908
24
                                              result_scale);
909
24
                    }
910
24
                }
911
24
                return true;
912
24
            }
913
914
24
            return false;
915
24
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
24
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
24
        column_result.column = std::move(res);
933
24
        return Status::OK();
934
24
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundOneImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
11
                        uint32_t result, size_t input_rows_count) const override {
845
11
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
11
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
11
        const DataTypePtr result_type = block.get_by_position(result).type;
848
11
        const bool is_col_general_const = is_column_const(*column_general.column);
849
11
        const auto* col_general = is_col_general_const
850
11
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
11
                                          : column_general.column.get();
854
11
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
11
        auto call = [&](const auto& types) -> bool {
863
11
            using Types = std::decay_t<decltype(types)>;
864
11
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
11
            Int16 result_scale = 0;
869
11
            if constexpr (IsDataTypeDecimal<DataType>) {
870
11
                if (column_result.type->is_nullable()) {
871
11
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
11
                                column_result.type)) {
873
11
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
11
                    } else {
875
11
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
11
                                               "Illegal nullable column");
877
11
                    }
878
11
                } else {
879
11
                    result_scale = column_result.type->get_scale();
880
11
                }
881
11
            }
882
883
11
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
11
                if (arguments.size() == 1 ||
885
11
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
11
                    Int16 scale_arg = 0;
888
11
                    if (arguments.size() == 2) {
889
11
                        RETURN_IF_ERROR(
890
11
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
11
                    }
892
893
11
                    res = Dispatcher<DataType::PType, rounding_mode,
894
11
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
11
                                                                         result_scale);
896
11
                } else {
897
                    // the SECOND arugment is COLUMN
898
11
                    if (is_col_general_const) {
899
11
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
11
                                apply_const_vec(
901
11
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
11
                                        block.get_by_position(arguments[1]).column.get(),
903
11
                                        result_scale);
904
11
                    } else {
905
11
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
11
                                apply_vec_vec(col_general,
907
11
                                              block.get_by_position(arguments[1]).column.get(),
908
11
                                              result_scale);
909
11
                    }
910
11
                }
911
11
                return true;
912
11
            }
913
914
11
            return false;
915
11
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
11
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
11
        column_result.column = std::move(res);
933
11
        return Status::OK();
934
11
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_12TruncateNameEEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
62
                        uint32_t result, size_t input_rows_count) const override {
845
62
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
62
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
62
        const DataTypePtr result_type = block.get_by_position(result).type;
848
62
        const bool is_col_general_const = is_column_const(*column_general.column);
849
62
        const auto* col_general = is_col_general_const
850
62
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
9
                                                    .get_data_column_ptr()
852
9
                                                    .get()
853
62
                                          : column_general.column.get();
854
62
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
62
        auto call = [&](const auto& types) -> bool {
863
62
            using Types = std::decay_t<decltype(types)>;
864
62
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
62
            Int16 result_scale = 0;
869
62
            if constexpr (IsDataTypeDecimal<DataType>) {
870
62
                if (column_result.type->is_nullable()) {
871
62
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
62
                                column_result.type)) {
873
62
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
62
                    } else {
875
62
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
62
                                               "Illegal nullable column");
877
62
                    }
878
62
                } else {
879
62
                    result_scale = column_result.type->get_scale();
880
62
                }
881
62
            }
882
883
62
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
62
                if (arguments.size() == 1 ||
885
62
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
62
                    Int16 scale_arg = 0;
888
62
                    if (arguments.size() == 2) {
889
62
                        RETURN_IF_ERROR(
890
62
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
62
                    }
892
893
62
                    res = Dispatcher<DataType::PType, rounding_mode,
894
62
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
62
                                                                         result_scale);
896
62
                } else {
897
                    // the SECOND arugment is COLUMN
898
62
                    if (is_col_general_const) {
899
62
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
62
                                apply_const_vec(
901
62
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
62
                                        block.get_by_position(arguments[1]).column.get(),
903
62
                                        result_scale);
904
62
                    } else {
905
62
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
62
                                apply_vec_vec(col_general,
907
62
                                              block.get_by_position(arguments[1]).column.get(),
908
62
                                              result_scale);
909
62
                    }
910
62
                }
911
62
                return true;
912
62
            }
913
914
62
            return false;
915
62
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
62
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
62
        column_result.column = std::move(res);
933
62
        return Status::OK();
934
62
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9FloorNameEEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
25
                        uint32_t result, size_t input_rows_count) const override {
845
25
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
25
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
25
        const DataTypePtr result_type = block.get_by_position(result).type;
848
25
        const bool is_col_general_const = is_column_const(*column_general.column);
849
25
        const auto* col_general = is_col_general_const
850
25
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
9
                                                    .get_data_column_ptr()
852
9
                                                    .get()
853
25
                                          : column_general.column.get();
854
25
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
25
        auto call = [&](const auto& types) -> bool {
863
25
            using Types = std::decay_t<decltype(types)>;
864
25
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
25
            Int16 result_scale = 0;
869
25
            if constexpr (IsDataTypeDecimal<DataType>) {
870
25
                if (column_result.type->is_nullable()) {
871
25
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
25
                                column_result.type)) {
873
25
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
25
                    } else {
875
25
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
25
                                               "Illegal nullable column");
877
25
                    }
878
25
                } else {
879
25
                    result_scale = column_result.type->get_scale();
880
25
                }
881
25
            }
882
883
25
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
25
                if (arguments.size() == 1 ||
885
25
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
25
                    Int16 scale_arg = 0;
888
25
                    if (arguments.size() == 2) {
889
25
                        RETURN_IF_ERROR(
890
25
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
25
                    }
892
893
25
                    res = Dispatcher<DataType::PType, rounding_mode,
894
25
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
25
                                                                         result_scale);
896
25
                } else {
897
                    // the SECOND arugment is COLUMN
898
25
                    if (is_col_general_const) {
899
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
25
                                apply_const_vec(
901
25
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
25
                                        block.get_by_position(arguments[1]).column.get(),
903
25
                                        result_scale);
904
25
                    } else {
905
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
25
                                apply_vec_vec(col_general,
907
25
                                              block.get_by_position(arguments[1]).column.get(),
908
25
                                              result_scale);
909
25
                    }
910
25
                }
911
25
                return true;
912
25
            }
913
914
25
            return false;
915
25
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
25
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
25
        column_result.column = std::move(res);
933
25
        return Status::OK();
934
25
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_9RoundNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
489
                        uint32_t result, size_t input_rows_count) const override {
845
489
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
489
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
489
        const DataTypePtr result_type = block.get_by_position(result).type;
848
489
        const bool is_col_general_const = is_column_const(*column_general.column);
849
489
        const auto* col_general = is_col_general_const
850
489
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
11
                                                    .get_data_column_ptr()
852
11
                                                    .get()
853
489
                                          : column_general.column.get();
854
489
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
489
        auto call = [&](const auto& types) -> bool {
863
489
            using Types = std::decay_t<decltype(types)>;
864
489
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
489
            Int16 result_scale = 0;
869
489
            if constexpr (IsDataTypeDecimal<DataType>) {
870
489
                if (column_result.type->is_nullable()) {
871
489
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
489
                                column_result.type)) {
873
489
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
489
                    } else {
875
489
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
489
                                               "Illegal nullable column");
877
489
                    }
878
489
                } else {
879
489
                    result_scale = column_result.type->get_scale();
880
489
                }
881
489
            }
882
883
489
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
489
                if (arguments.size() == 1 ||
885
489
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
489
                    Int16 scale_arg = 0;
888
489
                    if (arguments.size() == 2) {
889
489
                        RETURN_IF_ERROR(
890
489
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
489
                    }
892
893
489
                    res = Dispatcher<DataType::PType, rounding_mode,
894
489
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
489
                                                                         result_scale);
896
489
                } else {
897
                    // the SECOND arugment is COLUMN
898
489
                    if (is_col_general_const) {
899
489
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
489
                                apply_const_vec(
901
489
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
489
                                        block.get_by_position(arguments[1]).column.get(),
903
489
                                        result_scale);
904
489
                    } else {
905
489
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
489
                                apply_vec_vec(col_general,
907
489
                                              block.get_by_position(arguments[1]).column.get(),
908
489
                                              result_scale);
909
489
                    }
910
489
                }
911
489
                return true;
912
489
            }
913
914
489
            return false;
915
489
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
489
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
489
        column_result.column = std::move(res);
933
489
        return Status::OK();
934
489
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_8CeilNameEEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
28
                        uint32_t result, size_t input_rows_count) const override {
845
28
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
28
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
28
        const DataTypePtr result_type = block.get_by_position(result).type;
848
28
        const bool is_col_general_const = is_column_const(*column_general.column);
849
28
        const auto* col_general = is_col_general_const
850
28
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
9
                                                    .get_data_column_ptr()
852
9
                                                    .get()
853
28
                                          : column_general.column.get();
854
28
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
28
        auto call = [&](const auto& types) -> bool {
863
28
            using Types = std::decay_t<decltype(types)>;
864
28
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
28
            Int16 result_scale = 0;
869
28
            if constexpr (IsDataTypeDecimal<DataType>) {
870
28
                if (column_result.type->is_nullable()) {
871
28
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
28
                                column_result.type)) {
873
28
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
28
                    } else {
875
28
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
28
                                               "Illegal nullable column");
877
28
                    }
878
28
                } else {
879
28
                    result_scale = column_result.type->get_scale();
880
28
                }
881
28
            }
882
883
28
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
28
                if (arguments.size() == 1 ||
885
28
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
28
                    Int16 scale_arg = 0;
888
28
                    if (arguments.size() == 2) {
889
28
                        RETURN_IF_ERROR(
890
28
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
28
                    }
892
893
28
                    res = Dispatcher<DataType::PType, rounding_mode,
894
28
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
28
                                                                         result_scale);
896
28
                } else {
897
                    // the SECOND arugment is COLUMN
898
28
                    if (is_col_general_const) {
899
28
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
28
                                apply_const_vec(
901
28
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
28
                                        block.get_by_position(arguments[1]).column.get(),
903
28
                                        result_scale);
904
28
                    } else {
905
28
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
28
                                apply_vec_vec(col_general,
907
28
                                              block.get_by_position(arguments[1]).column.get(),
908
28
                                              result_scale);
909
28
                    }
910
28
                }
911
28
                return true;
912
28
            }
913
914
28
            return false;
915
28
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
28
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
28
        column_result.column = std::move(res);
933
28
        return Status::OK();
934
28
    }
_ZNK5doris16FunctionRoundingINS_18DoubleRoundTwoImplINS_16RoundBankersNameEEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
34
                        uint32_t result, size_t input_rows_count) const override {
845
34
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
34
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
34
        const DataTypePtr result_type = block.get_by_position(result).type;
848
34
        const bool is_col_general_const = is_column_const(*column_general.column);
849
34
        const auto* col_general = is_col_general_const
850
34
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
11
                                                    .get_data_column_ptr()
852
11
                                                    .get()
853
34
                                          : column_general.column.get();
854
34
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
34
        auto call = [&](const auto& types) -> bool {
863
34
            using Types = std::decay_t<decltype(types)>;
864
34
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
34
            Int16 result_scale = 0;
869
34
            if constexpr (IsDataTypeDecimal<DataType>) {
870
34
                if (column_result.type->is_nullable()) {
871
34
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
34
                                column_result.type)) {
873
34
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
34
                    } else {
875
34
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
34
                                               "Illegal nullable column");
877
34
                    }
878
34
                } else {
879
34
                    result_scale = column_result.type->get_scale();
880
34
                }
881
34
            }
882
883
34
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
34
                if (arguments.size() == 1 ||
885
34
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
34
                    Int16 scale_arg = 0;
888
34
                    if (arguments.size() == 2) {
889
34
                        RETURN_IF_ERROR(
890
34
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
34
                    }
892
893
34
                    res = Dispatcher<DataType::PType, rounding_mode,
894
34
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
34
                                                                         result_scale);
896
34
                } else {
897
                    // the SECOND arugment is COLUMN
898
34
                    if (is_col_general_const) {
899
34
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
34
                                apply_const_vec(
901
34
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
34
                                        block.get_by_position(arguments[1]).column.get(),
903
34
                                        result_scale);
904
34
                    } else {
905
34
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
34
                                apply_vec_vec(col_general,
907
34
                                              block.get_by_position(arguments[1]).column.get(),
908
34
                                              result_scale);
909
34
                    }
910
34
                }
911
34
                return true;
912
34
            }
913
914
34
            return false;
915
34
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
34
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
34
        column_result.column = std::move(res);
933
34
        return Status::OK();
934
34
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
17
                        uint32_t result, size_t input_rows_count) const override {
845
17
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
17
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
17
        const DataTypePtr result_type = block.get_by_position(result).type;
848
17
        const bool is_col_general_const = is_column_const(*column_general.column);
849
17
        const auto* col_general = is_col_general_const
850
17
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
17
                                          : column_general.column.get();
854
17
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
17
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
17
                                column_result.type)) {
873
17
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
17
                    } else {
875
17
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
17
                                               "Illegal nullable column");
877
17
                    }
878
17
                } else {
879
17
                    result_scale = column_result.type->get_scale();
880
17
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
17
                        RETURN_IF_ERROR(
890
17
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
17
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
17
                    if (is_col_general_const) {
899
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
17
                                apply_const_vec(
901
17
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
17
                                        block.get_by_position(arguments[1]).column.get(),
903
17
                                        result_scale);
904
17
                    } else {
905
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
17
                                apply_vec_vec(col_general,
907
17
                                              block.get_by_position(arguments[1]).column.get(),
908
17
                                              result_scale);
909
17
                    }
910
17
                }
911
17
                return true;
912
17
            }
913
914
17
            return false;
915
17
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
17
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
17
        column_result.column = std::move(res);
933
17
        return Status::OK();
934
17
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
17
                        uint32_t result, size_t input_rows_count) const override {
845
17
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
17
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
17
        const DataTypePtr result_type = block.get_by_position(result).type;
848
17
        const bool is_col_general_const = is_column_const(*column_general.column);
849
17
        const auto* col_general = is_col_general_const
850
17
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
17
                                          : column_general.column.get();
854
17
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
17
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
17
                                column_result.type)) {
873
17
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
17
                    } else {
875
17
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
17
                                               "Illegal nullable column");
877
17
                    }
878
17
                } else {
879
17
                    result_scale = column_result.type->get_scale();
880
17
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
17
                        RETURN_IF_ERROR(
890
17
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
17
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
17
                    if (is_col_general_const) {
899
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
17
                                apply_const_vec(
901
17
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
17
                                        block.get_by_position(arguments[1]).column.get(),
903
17
                                        result_scale);
904
17
                    } else {
905
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
17
                                apply_vec_vec(col_general,
907
17
                                              block.get_by_position(arguments[1]).column.get(),
908
17
                                              result_scale);
909
17
                    }
910
17
                }
911
17
                return true;
912
17
            }
913
914
17
            return false;
915
17
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
17
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
17
        column_result.column = std::move(res);
933
17
        return Status::OK();
934
17
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
17
                        uint32_t result, size_t input_rows_count) const override {
845
17
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
17
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
17
        const DataTypePtr result_type = block.get_by_position(result).type;
848
17
        const bool is_col_general_const = is_column_const(*column_general.column);
849
17
        const auto* col_general = is_col_general_const
850
17
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
17
                                          : column_general.column.get();
854
17
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
17
        auto call = [&](const auto& types) -> bool {
863
17
            using Types = std::decay_t<decltype(types)>;
864
17
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
17
            Int16 result_scale = 0;
869
17
            if constexpr (IsDataTypeDecimal<DataType>) {
870
17
                if (column_result.type->is_nullable()) {
871
17
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
17
                                column_result.type)) {
873
17
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
17
                    } else {
875
17
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
17
                                               "Illegal nullable column");
877
17
                    }
878
17
                } else {
879
17
                    result_scale = column_result.type->get_scale();
880
17
                }
881
17
            }
882
883
17
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
17
                if (arguments.size() == 1 ||
885
17
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
17
                    Int16 scale_arg = 0;
888
17
                    if (arguments.size() == 2) {
889
17
                        RETURN_IF_ERROR(
890
17
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
17
                    }
892
893
17
                    res = Dispatcher<DataType::PType, rounding_mode,
894
17
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
17
                                                                         result_scale);
896
17
                } else {
897
                    // the SECOND arugment is COLUMN
898
17
                    if (is_col_general_const) {
899
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
17
                                apply_const_vec(
901
17
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
17
                                        block.get_by_position(arguments[1]).column.get(),
903
17
                                        result_scale);
904
17
                    } else {
905
17
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
17
                                apply_vec_vec(col_general,
907
17
                                              block.get_by_position(arguments[1]).column.get(),
908
17
                                              result_scale);
909
17
                    }
910
17
                }
911
17
                return true;
912
17
            }
913
914
17
            return false;
915
17
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
17
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
17
        column_result.column = std::move(res);
933
17
        return Status::OK();
934
17
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
19
                        uint32_t result, size_t input_rows_count) const override {
845
19
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
19
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
19
        const DataTypePtr result_type = block.get_by_position(result).type;
848
19
        const bool is_col_general_const = is_column_const(*column_general.column);
849
19
        const auto* col_general = is_col_general_const
850
19
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
19
                                          : column_general.column.get();
854
19
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
19
        auto call = [&](const auto& types) -> bool {
863
19
            using Types = std::decay_t<decltype(types)>;
864
19
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
19
            Int16 result_scale = 0;
869
19
            if constexpr (IsDataTypeDecimal<DataType>) {
870
19
                if (column_result.type->is_nullable()) {
871
19
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
19
                                column_result.type)) {
873
19
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
19
                    } else {
875
19
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
19
                                               "Illegal nullable column");
877
19
                    }
878
19
                } else {
879
19
                    result_scale = column_result.type->get_scale();
880
19
                }
881
19
            }
882
883
19
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
19
                if (arguments.size() == 1 ||
885
19
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
19
                    Int16 scale_arg = 0;
888
19
                    if (arguments.size() == 2) {
889
19
                        RETURN_IF_ERROR(
890
19
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
19
                    }
892
893
19
                    res = Dispatcher<DataType::PType, rounding_mode,
894
19
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
19
                                                                         result_scale);
896
19
                } else {
897
                    // the SECOND arugment is COLUMN
898
19
                    if (is_col_general_const) {
899
19
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
19
                                apply_const_vec(
901
19
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
19
                                        block.get_by_position(arguments[1]).column.get(),
903
19
                                        result_scale);
904
19
                    } else {
905
19
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
19
                                apply_vec_vec(col_general,
907
19
                                              block.get_by_position(arguments[1]).column.get(),
908
19
                                              result_scale);
909
19
                    }
910
19
                }
911
19
                return true;
912
19
            }
913
914
19
            return false;
915
19
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
19
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
19
        column_result.column = std::move(res);
933
19
        return Status::OK();
934
19
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
216
                        uint32_t result, size_t input_rows_count) const override {
845
216
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
216
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
216
        const DataTypePtr result_type = block.get_by_position(result).type;
848
216
        const bool is_col_general_const = is_column_const(*column_general.column);
849
216
        const auto* col_general = is_col_general_const
850
216
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
216
                                          : column_general.column.get();
854
216
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
216
        auto call = [&](const auto& types) -> bool {
863
216
            using Types = std::decay_t<decltype(types)>;
864
216
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
216
            Int16 result_scale = 0;
869
216
            if constexpr (IsDataTypeDecimal<DataType>) {
870
216
                if (column_result.type->is_nullable()) {
871
216
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
216
                                column_result.type)) {
873
216
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
216
                    } else {
875
216
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
216
                                               "Illegal nullable column");
877
216
                    }
878
216
                } else {
879
216
                    result_scale = column_result.type->get_scale();
880
216
                }
881
216
            }
882
883
216
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
216
                if (arguments.size() == 1 ||
885
216
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
216
                    Int16 scale_arg = 0;
888
216
                    if (arguments.size() == 2) {
889
216
                        RETURN_IF_ERROR(
890
216
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
216
                    }
892
893
216
                    res = Dispatcher<DataType::PType, rounding_mode,
894
216
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
216
                                                                         result_scale);
896
216
                } else {
897
                    // the SECOND arugment is COLUMN
898
216
                    if (is_col_general_const) {
899
216
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
216
                                apply_const_vec(
901
216
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
216
                                        block.get_by_position(arguments[1]).column.get(),
903
216
                                        result_scale);
904
216
                    } else {
905
216
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
216
                                apply_vec_vec(col_general,
907
216
                                              block.get_by_position(arguments[1]).column.get(),
908
216
                                              result_scale);
909
216
                    }
910
216
                }
911
216
                return true;
912
216
            }
913
914
216
            return false;
915
216
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
216
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
216
        column_result.column = std::move(res);
933
216
        return Status::OK();
934
216
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
23
                        uint32_t result, size_t input_rows_count) const override {
845
23
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
23
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
23
        const DataTypePtr result_type = block.get_by_position(result).type;
848
23
        const bool is_col_general_const = is_column_const(*column_general.column);
849
23
        const auto* col_general = is_col_general_const
850
23
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
23
                                          : column_general.column.get();
854
23
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
23
        auto call = [&](const auto& types) -> bool {
863
23
            using Types = std::decay_t<decltype(types)>;
864
23
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
23
            Int16 result_scale = 0;
869
23
            if constexpr (IsDataTypeDecimal<DataType>) {
870
23
                if (column_result.type->is_nullable()) {
871
23
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
23
                                column_result.type)) {
873
23
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
23
                    } else {
875
23
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
23
                                               "Illegal nullable column");
877
23
                    }
878
23
                } else {
879
23
                    result_scale = column_result.type->get_scale();
880
23
                }
881
23
            }
882
883
23
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
23
                if (arguments.size() == 1 ||
885
23
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
23
                    Int16 scale_arg = 0;
888
23
                    if (arguments.size() == 2) {
889
23
                        RETURN_IF_ERROR(
890
23
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
23
                    }
892
893
23
                    res = Dispatcher<DataType::PType, rounding_mode,
894
23
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
23
                                                                         result_scale);
896
23
                } else {
897
                    // the SECOND arugment is COLUMN
898
23
                    if (is_col_general_const) {
899
23
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
23
                                apply_const_vec(
901
23
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
23
                                        block.get_by_position(arguments[1]).column.get(),
903
23
                                        result_scale);
904
23
                    } else {
905
23
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
23
                                apply_vec_vec(col_general,
907
23
                                              block.get_by_position(arguments[1]).column.get(),
908
23
                                              result_scale);
909
23
                    }
910
23
                }
911
23
                return true;
912
23
            }
913
914
23
            return false;
915
23
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
23
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
23
        column_result.column = std::move(res);
933
23
        return Status::OK();
934
23
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
19
                        uint32_t result, size_t input_rows_count) const override {
845
19
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
19
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
19
        const DataTypePtr result_type = block.get_by_position(result).type;
848
19
        const bool is_col_general_const = is_column_const(*column_general.column);
849
19
        const auto* col_general = is_col_general_const
850
19
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
19
                                          : column_general.column.get();
854
19
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
19
        auto call = [&](const auto& types) -> bool {
863
19
            using Types = std::decay_t<decltype(types)>;
864
19
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
19
            Int16 result_scale = 0;
869
19
            if constexpr (IsDataTypeDecimal<DataType>) {
870
19
                if (column_result.type->is_nullable()) {
871
19
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
19
                                column_result.type)) {
873
19
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
19
                    } else {
875
19
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
19
                                               "Illegal nullable column");
877
19
                    }
878
19
                } else {
879
19
                    result_scale = column_result.type->get_scale();
880
19
                }
881
19
            }
882
883
19
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
19
                if (arguments.size() == 1 ||
885
19
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
19
                    Int16 scale_arg = 0;
888
19
                    if (arguments.size() == 2) {
889
19
                        RETURN_IF_ERROR(
890
19
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
19
                    }
892
893
19
                    res = Dispatcher<DataType::PType, rounding_mode,
894
19
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
19
                                                                         result_scale);
896
19
                } else {
897
                    // the SECOND arugment is COLUMN
898
19
                    if (is_col_general_const) {
899
19
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
19
                                apply_const_vec(
901
19
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
19
                                        block.get_by_position(arguments[1]).column.get(),
903
19
                                        result_scale);
904
19
                    } else {
905
19
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
19
                                apply_vec_vec(col_general,
907
19
                                              block.get_by_position(arguments[1]).column.get(),
908
19
                                              result_scale);
909
19
                    }
910
19
                }
911
19
                return true;
912
19
            }
913
914
19
            return false;
915
19
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
19
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
19
        column_result.column = std::move(res);
933
19
        return Status::OK();
934
19
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
79
                        uint32_t result, size_t input_rows_count) const override {
845
79
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
79
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
79
        const DataTypePtr result_type = block.get_by_position(result).type;
848
79
        const bool is_col_general_const = is_column_const(*column_general.column);
849
79
        const auto* col_general = is_col_general_const
850
79
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
79
                                          : column_general.column.get();
854
79
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
79
        auto call = [&](const auto& types) -> bool {
863
79
            using Types = std::decay_t<decltype(types)>;
864
79
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
79
            Int16 result_scale = 0;
869
79
            if constexpr (IsDataTypeDecimal<DataType>) {
870
79
                if (column_result.type->is_nullable()) {
871
79
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
79
                                column_result.type)) {
873
79
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
79
                    } else {
875
79
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
79
                                               "Illegal nullable column");
877
79
                    }
878
79
                } else {
879
79
                    result_scale = column_result.type->get_scale();
880
79
                }
881
79
            }
882
883
79
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
79
                if (arguments.size() == 1 ||
885
79
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
79
                    Int16 scale_arg = 0;
888
79
                    if (arguments.size() == 2) {
889
79
                        RETURN_IF_ERROR(
890
79
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
79
                    }
892
893
79
                    res = Dispatcher<DataType::PType, rounding_mode,
894
79
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
79
                                                                         result_scale);
896
79
                } else {
897
                    // the SECOND arugment is COLUMN
898
79
                    if (is_col_general_const) {
899
79
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
79
                                apply_const_vec(
901
79
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
79
                                        block.get_by_position(arguments[1]).column.get(),
903
79
                                        result_scale);
904
79
                    } else {
905
79
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
79
                                apply_vec_vec(col_general,
907
79
                                              block.get_by_position(arguments[1]).column.get(),
908
79
                                              result_scale);
909
79
                    }
910
79
                }
911
79
                return true;
912
79
            }
913
914
79
            return false;
915
79
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
79
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
79
        column_result.column = std::move(res);
933
79
        return Status::OK();
934
79
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
25
                        uint32_t result, size_t input_rows_count) const override {
845
25
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
25
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
25
        const DataTypePtr result_type = block.get_by_position(result).type;
848
25
        const bool is_col_general_const = is_column_const(*column_general.column);
849
25
        const auto* col_general = is_col_general_const
850
25
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
25
                                          : column_general.column.get();
854
25
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
25
        auto call = [&](const auto& types) -> bool {
863
25
            using Types = std::decay_t<decltype(types)>;
864
25
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
25
            Int16 result_scale = 0;
869
25
            if constexpr (IsDataTypeDecimal<DataType>) {
870
25
                if (column_result.type->is_nullable()) {
871
25
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
25
                                column_result.type)) {
873
25
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
25
                    } else {
875
25
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
25
                                               "Illegal nullable column");
877
25
                    }
878
25
                } else {
879
25
                    result_scale = column_result.type->get_scale();
880
25
                }
881
25
            }
882
883
25
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
25
                if (arguments.size() == 1 ||
885
25
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
25
                    Int16 scale_arg = 0;
888
25
                    if (arguments.size() == 2) {
889
25
                        RETURN_IF_ERROR(
890
25
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
25
                    }
892
893
25
                    res = Dispatcher<DataType::PType, rounding_mode,
894
25
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
25
                                                                         result_scale);
896
25
                } else {
897
                    // the SECOND arugment is COLUMN
898
25
                    if (is_col_general_const) {
899
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
25
                                apply_const_vec(
901
25
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
25
                                        block.get_by_position(arguments[1]).column.get(),
903
25
                                        result_scale);
904
25
                    } else {
905
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
25
                                apply_vec_vec(col_general,
907
25
                                              block.get_by_position(arguments[1]).column.get(),
908
25
                                              result_scale);
909
25
                    }
910
25
                }
911
25
                return true;
912
25
            }
913
914
25
            return false;
915
25
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
25
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
25
        column_result.column = std::move(res);
933
25
        return Status::OK();
934
25
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
761
                        uint32_t result, size_t input_rows_count) const override {
845
761
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
761
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
761
        const DataTypePtr result_type = block.get_by_position(result).type;
848
761
        const bool is_col_general_const = is_column_const(*column_general.column);
849
761
        const auto* col_general = is_col_general_const
850
761
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
761
                                          : column_general.column.get();
854
761
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
761
        auto call = [&](const auto& types) -> bool {
863
761
            using Types = std::decay_t<decltype(types)>;
864
761
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
761
            Int16 result_scale = 0;
869
761
            if constexpr (IsDataTypeDecimal<DataType>) {
870
761
                if (column_result.type->is_nullable()) {
871
761
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
761
                                column_result.type)) {
873
761
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
761
                    } else {
875
761
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
761
                                               "Illegal nullable column");
877
761
                    }
878
761
                } else {
879
761
                    result_scale = column_result.type->get_scale();
880
761
                }
881
761
            }
882
883
761
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
761
                if (arguments.size() == 1 ||
885
761
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
761
                    Int16 scale_arg = 0;
888
761
                    if (arguments.size() == 2) {
889
761
                        RETURN_IF_ERROR(
890
761
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
761
                    }
892
893
761
                    res = Dispatcher<DataType::PType, rounding_mode,
894
761
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
761
                                                                         result_scale);
896
761
                } else {
897
                    // the SECOND arugment is COLUMN
898
761
                    if (is_col_general_const) {
899
761
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
761
                                apply_const_vec(
901
761
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
761
                                        block.get_by_position(arguments[1]).column.get(),
903
761
                                        result_scale);
904
761
                    } else {
905
761
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
761
                                apply_vec_vec(col_general,
907
761
                                              block.get_by_position(arguments[1]).column.get(),
908
761
                                              result_scale);
909
761
                    }
910
761
                }
911
761
                return true;
912
761
            }
913
914
761
            return false;
915
761
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
761
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
761
        column_result.column = std::move(res);
933
761
        return Status::OK();
934
761
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
31
                        uint32_t result, size_t input_rows_count) const override {
845
31
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
31
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
31
        const DataTypePtr result_type = block.get_by_position(result).type;
848
31
        const bool is_col_general_const = is_column_const(*column_general.column);
849
31
        const auto* col_general = is_col_general_const
850
31
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
31
                                          : column_general.column.get();
854
31
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
31
        auto call = [&](const auto& types) -> bool {
863
31
            using Types = std::decay_t<decltype(types)>;
864
31
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
31
            Int16 result_scale = 0;
869
31
            if constexpr (IsDataTypeDecimal<DataType>) {
870
31
                if (column_result.type->is_nullable()) {
871
31
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
31
                                column_result.type)) {
873
31
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
31
                    } else {
875
31
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
31
                                               "Illegal nullable column");
877
31
                    }
878
31
                } else {
879
31
                    result_scale = column_result.type->get_scale();
880
31
                }
881
31
            }
882
883
31
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
31
                if (arguments.size() == 1 ||
885
31
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
31
                    Int16 scale_arg = 0;
888
31
                    if (arguments.size() == 2) {
889
31
                        RETURN_IF_ERROR(
890
31
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
31
                    }
892
893
31
                    res = Dispatcher<DataType::PType, rounding_mode,
894
31
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
31
                                                                         result_scale);
896
31
                } else {
897
                    // the SECOND arugment is COLUMN
898
31
                    if (is_col_general_const) {
899
31
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
31
                                apply_const_vec(
901
31
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
31
                                        block.get_by_position(arguments[1]).column.get(),
903
31
                                        result_scale);
904
31
                    } else {
905
31
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
31
                                apply_vec_vec(col_general,
907
31
                                              block.get_by_position(arguments[1]).column.get(),
908
31
                                              result_scale);
909
31
                    }
910
31
                }
911
31
                return true;
912
31
            }
913
914
31
            return false;
915
31
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
31
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
31
        column_result.column = std::move(res);
933
31
        return Status::OK();
934
31
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
9
                        uint32_t result, size_t input_rows_count) const override {
845
9
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
9
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
9
        const DataTypePtr result_type = block.get_by_position(result).type;
848
9
        const bool is_col_general_const = is_column_const(*column_general.column);
849
9
        const auto* col_general = is_col_general_const
850
9
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
9
                                          : column_general.column.get();
854
9
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
9
        auto call = [&](const auto& types) -> bool {
863
9
            using Types = std::decay_t<decltype(types)>;
864
9
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
9
            Int16 result_scale = 0;
869
9
            if constexpr (IsDataTypeDecimal<DataType>) {
870
9
                if (column_result.type->is_nullable()) {
871
9
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
9
                                column_result.type)) {
873
9
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
9
                    } else {
875
9
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
9
                                               "Illegal nullable column");
877
9
                    }
878
9
                } else {
879
9
                    result_scale = column_result.type->get_scale();
880
9
                }
881
9
            }
882
883
9
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
9
                if (arguments.size() == 1 ||
885
9
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
9
                    Int16 scale_arg = 0;
888
9
                    if (arguments.size() == 2) {
889
9
                        RETURN_IF_ERROR(
890
9
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
9
                    }
892
893
9
                    res = Dispatcher<DataType::PType, rounding_mode,
894
9
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
9
                                                                         result_scale);
896
9
                } else {
897
                    // the SECOND arugment is COLUMN
898
9
                    if (is_col_general_const) {
899
9
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
9
                                apply_const_vec(
901
9
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
9
                                        block.get_by_position(arguments[1]).column.get(),
903
9
                                        result_scale);
904
9
                    } else {
905
9
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
9
                                apply_vec_vec(col_general,
907
9
                                              block.get_by_position(arguments[1]).column.get(),
908
9
                                              result_scale);
909
9
                    }
910
9
                }
911
9
                return true;
912
9
            }
913
914
9
            return false;
915
9
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
9
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
9
        column_result.column = std::move(res);
933
9
        return Status::OK();
934
9
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
66
                        uint32_t result, size_t input_rows_count) const override {
845
66
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
66
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
66
        const DataTypePtr result_type = block.get_by_position(result).type;
848
66
        const bool is_col_general_const = is_column_const(*column_general.column);
849
66
        const auto* col_general = is_col_general_const
850
66
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
15
                                                    .get_data_column_ptr()
852
15
                                                    .get()
853
66
                                          : column_general.column.get();
854
66
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
66
        auto call = [&](const auto& types) -> bool {
863
66
            using Types = std::decay_t<decltype(types)>;
864
66
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
66
            Int16 result_scale = 0;
869
66
            if constexpr (IsDataTypeDecimal<DataType>) {
870
66
                if (column_result.type->is_nullable()) {
871
66
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
66
                                column_result.type)) {
873
66
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
66
                    } else {
875
66
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
66
                                               "Illegal nullable column");
877
66
                    }
878
66
                } else {
879
66
                    result_scale = column_result.type->get_scale();
880
66
                }
881
66
            }
882
883
66
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
66
                if (arguments.size() == 1 ||
885
66
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
66
                    Int16 scale_arg = 0;
888
66
                    if (arguments.size() == 2) {
889
66
                        RETURN_IF_ERROR(
890
66
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
66
                    }
892
893
66
                    res = Dispatcher<DataType::PType, rounding_mode,
894
66
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
66
                                                                         result_scale);
896
66
                } else {
897
                    // the SECOND arugment is COLUMN
898
66
                    if (is_col_general_const) {
899
66
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
66
                                apply_const_vec(
901
66
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
66
                                        block.get_by_position(arguments[1]).column.get(),
903
66
                                        result_scale);
904
66
                    } else {
905
66
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
66
                                apply_vec_vec(col_general,
907
66
                                              block.get_by_position(arguments[1]).column.get(),
908
66
                                              result_scale);
909
66
                    }
910
66
                }
911
66
                return true;
912
66
            }
913
914
66
            return false;
915
66
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
66
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
66
        column_result.column = std::move(res);
933
66
        return Status::OK();
934
66
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
56
                        uint32_t result, size_t input_rows_count) const override {
845
56
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
56
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
56
        const DataTypePtr result_type = block.get_by_position(result).type;
848
56
        const bool is_col_general_const = is_column_const(*column_general.column);
849
56
        const auto* col_general = is_col_general_const
850
56
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
15
                                                    .get_data_column_ptr()
852
15
                                                    .get()
853
56
                                          : column_general.column.get();
854
56
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
56
        auto call = [&](const auto& types) -> bool {
863
56
            using Types = std::decay_t<decltype(types)>;
864
56
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
56
            Int16 result_scale = 0;
869
56
            if constexpr (IsDataTypeDecimal<DataType>) {
870
56
                if (column_result.type->is_nullable()) {
871
56
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
56
                                column_result.type)) {
873
56
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
56
                    } else {
875
56
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
56
                                               "Illegal nullable column");
877
56
                    }
878
56
                } else {
879
56
                    result_scale = column_result.type->get_scale();
880
56
                }
881
56
            }
882
883
56
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
56
                if (arguments.size() == 1 ||
885
56
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
56
                    Int16 scale_arg = 0;
888
56
                    if (arguments.size() == 2) {
889
56
                        RETURN_IF_ERROR(
890
56
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
56
                    }
892
893
56
                    res = Dispatcher<DataType::PType, rounding_mode,
894
56
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
56
                                                                         result_scale);
896
56
                } else {
897
                    // the SECOND arugment is COLUMN
898
56
                    if (is_col_general_const) {
899
56
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
56
                                apply_const_vec(
901
56
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
56
                                        block.get_by_position(arguments[1]).column.get(),
903
56
                                        result_scale);
904
56
                    } else {
905
56
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
56
                                apply_vec_vec(col_general,
907
56
                                              block.get_by_position(arguments[1]).column.get(),
908
56
                                              result_scale);
909
56
                    }
910
56
                }
911
56
                return true;
912
56
            }
913
914
56
            return false;
915
56
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
56
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
56
        column_result.column = std::move(res);
933
56
        return Status::OK();
934
56
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
59
                        uint32_t result, size_t input_rows_count) const override {
845
59
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
59
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
59
        const DataTypePtr result_type = block.get_by_position(result).type;
848
59
        const bool is_col_general_const = is_column_const(*column_general.column);
849
59
        const auto* col_general = is_col_general_const
850
59
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
16
                                                    .get_data_column_ptr()
852
16
                                                    .get()
853
59
                                          : column_general.column.get();
854
59
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
59
        auto call = [&](const auto& types) -> bool {
863
59
            using Types = std::decay_t<decltype(types)>;
864
59
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
59
            Int16 result_scale = 0;
869
59
            if constexpr (IsDataTypeDecimal<DataType>) {
870
59
                if (column_result.type->is_nullable()) {
871
59
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
59
                                column_result.type)) {
873
59
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
59
                    } else {
875
59
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
59
                                               "Illegal nullable column");
877
59
                    }
878
59
                } else {
879
59
                    result_scale = column_result.type->get_scale();
880
59
                }
881
59
            }
882
883
59
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
59
                if (arguments.size() == 1 ||
885
59
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
59
                    Int16 scale_arg = 0;
888
59
                    if (arguments.size() == 2) {
889
59
                        RETURN_IF_ERROR(
890
59
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
59
                    }
892
893
59
                    res = Dispatcher<DataType::PType, rounding_mode,
894
59
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
59
                                                                         result_scale);
896
59
                } else {
897
                    // the SECOND arugment is COLUMN
898
59
                    if (is_col_general_const) {
899
59
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
59
                                apply_const_vec(
901
59
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
59
                                        block.get_by_position(arguments[1]).column.get(),
903
59
                                        result_scale);
904
59
                    } else {
905
59
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
59
                                apply_vec_vec(col_general,
907
59
                                              block.get_by_position(arguments[1]).column.get(),
908
59
                                              result_scale);
909
59
                    }
910
59
                }
911
59
                return true;
912
59
            }
913
914
59
            return false;
915
59
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
59
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
59
        column_result.column = std::move(res);
933
59
        return Status::OK();
934
59
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
56
                        uint32_t result, size_t input_rows_count) const override {
845
56
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
56
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
56
        const DataTypePtr result_type = block.get_by_position(result).type;
848
56
        const bool is_col_general_const = is_column_const(*column_general.column);
849
56
        const auto* col_general = is_col_general_const
850
56
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
15
                                                    .get_data_column_ptr()
852
15
                                                    .get()
853
56
                                          : column_general.column.get();
854
56
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
56
        auto call = [&](const auto& types) -> bool {
863
56
            using Types = std::decay_t<decltype(types)>;
864
56
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
56
            Int16 result_scale = 0;
869
56
            if constexpr (IsDataTypeDecimal<DataType>) {
870
56
                if (column_result.type->is_nullable()) {
871
56
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
56
                                column_result.type)) {
873
56
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
56
                    } else {
875
56
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
56
                                               "Illegal nullable column");
877
56
                    }
878
56
                } else {
879
56
                    result_scale = column_result.type->get_scale();
880
56
                }
881
56
            }
882
883
56
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
56
                if (arguments.size() == 1 ||
885
56
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
56
                    Int16 scale_arg = 0;
888
56
                    if (arguments.size() == 2) {
889
56
                        RETURN_IF_ERROR(
890
56
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
56
                    }
892
893
56
                    res = Dispatcher<DataType::PType, rounding_mode,
894
56
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
56
                                                                         result_scale);
896
56
                } else {
897
                    // the SECOND arugment is COLUMN
898
56
                    if (is_col_general_const) {
899
56
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
56
                                apply_const_vec(
901
56
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
56
                                        block.get_by_position(arguments[1]).column.get(),
903
56
                                        result_scale);
904
56
                    } else {
905
56
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
56
                                apply_vec_vec(col_general,
907
56
                                              block.get_by_position(arguments[1]).column.get(),
908
56
                                              result_scale);
909
56
                    }
910
56
                }
911
56
                return true;
912
56
            }
913
914
56
            return false;
915
56
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
56
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
56
        column_result.column = std::move(res);
933
56
        return Status::OK();
934
56
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
52
                        uint32_t result, size_t input_rows_count) const override {
845
52
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
52
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
52
        const DataTypePtr result_type = block.get_by_position(result).type;
848
52
        const bool is_col_general_const = is_column_const(*column_general.column);
849
52
        const auto* col_general = is_col_general_const
850
52
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
15
                                                    .get_data_column_ptr()
852
15
                                                    .get()
853
52
                                          : column_general.column.get();
854
52
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
52
        auto call = [&](const auto& types) -> bool {
863
52
            using Types = std::decay_t<decltype(types)>;
864
52
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
52
            Int16 result_scale = 0;
869
52
            if constexpr (IsDataTypeDecimal<DataType>) {
870
52
                if (column_result.type->is_nullable()) {
871
52
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
52
                                column_result.type)) {
873
52
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
52
                    } else {
875
52
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
52
                                               "Illegal nullable column");
877
52
                    }
878
52
                } else {
879
52
                    result_scale = column_result.type->get_scale();
880
52
                }
881
52
            }
882
883
52
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
52
                if (arguments.size() == 1 ||
885
52
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
52
                    Int16 scale_arg = 0;
888
52
                    if (arguments.size() == 2) {
889
52
                        RETURN_IF_ERROR(
890
52
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
52
                    }
892
893
52
                    res = Dispatcher<DataType::PType, rounding_mode,
894
52
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
52
                                                                         result_scale);
896
52
                } else {
897
                    // the SECOND arugment is COLUMN
898
52
                    if (is_col_general_const) {
899
52
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
52
                                apply_const_vec(
901
52
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
52
                                        block.get_by_position(arguments[1]).column.get(),
903
52
                                        result_scale);
904
52
                    } else {
905
52
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
52
                                apply_vec_vec(col_general,
907
52
                                              block.get_by_position(arguments[1]).column.get(),
908
52
                                              result_scale);
909
52
                    }
910
52
                }
911
52
                return true;
912
52
            }
913
914
52
            return false;
915
52
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
52
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
52
        column_result.column = std::move(res);
933
52
        return Status::OK();
934
52
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
48
                        uint32_t result, size_t input_rows_count) const override {
845
48
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
48
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
48
        const DataTypePtr result_type = block.get_by_position(result).type;
848
48
        const bool is_col_general_const = is_column_const(*column_general.column);
849
48
        const auto* col_general = is_col_general_const
850
48
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
14
                                                    .get_data_column_ptr()
852
14
                                                    .get()
853
48
                                          : column_general.column.get();
854
48
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
48
        auto call = [&](const auto& types) -> bool {
863
48
            using Types = std::decay_t<decltype(types)>;
864
48
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
48
            Int16 result_scale = 0;
869
48
            if constexpr (IsDataTypeDecimal<DataType>) {
870
48
                if (column_result.type->is_nullable()) {
871
48
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
48
                                column_result.type)) {
873
48
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
48
                    } else {
875
48
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
48
                                               "Illegal nullable column");
877
48
                    }
878
48
                } else {
879
48
                    result_scale = column_result.type->get_scale();
880
48
                }
881
48
            }
882
883
48
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
48
                if (arguments.size() == 1 ||
885
48
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
48
                    Int16 scale_arg = 0;
888
48
                    if (arguments.size() == 2) {
889
48
                        RETURN_IF_ERROR(
890
48
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
48
                    }
892
893
48
                    res = Dispatcher<DataType::PType, rounding_mode,
894
48
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
48
                                                                         result_scale);
896
48
                } else {
897
                    // the SECOND arugment is COLUMN
898
48
                    if (is_col_general_const) {
899
48
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
48
                                apply_const_vec(
901
48
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
48
                                        block.get_by_position(arguments[1]).column.get(),
903
48
                                        result_scale);
904
48
                    } else {
905
48
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
48
                                apply_vec_vec(col_general,
907
48
                                              block.get_by_position(arguments[1]).column.get(),
908
48
                                              result_scale);
909
48
                    }
910
48
                }
911
48
                return true;
912
48
            }
913
914
48
            return false;
915
48
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
48
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
48
        column_result.column = std::move(res);
933
48
        return Status::OK();
934
48
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
42
                        uint32_t result, size_t input_rows_count) const override {
845
42
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
42
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
42
        const DataTypePtr result_type = block.get_by_position(result).type;
848
42
        const bool is_col_general_const = is_column_const(*column_general.column);
849
42
        const auto* col_general = is_col_general_const
850
42
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
7
                                                    .get_data_column_ptr()
852
7
                                                    .get()
853
42
                                          : column_general.column.get();
854
42
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
42
        auto call = [&](const auto& types) -> bool {
863
42
            using Types = std::decay_t<decltype(types)>;
864
42
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
42
            Int16 result_scale = 0;
869
42
            if constexpr (IsDataTypeDecimal<DataType>) {
870
42
                if (column_result.type->is_nullable()) {
871
42
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
42
                                column_result.type)) {
873
42
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
42
                    } else {
875
42
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
42
                                               "Illegal nullable column");
877
42
                    }
878
42
                } else {
879
42
                    result_scale = column_result.type->get_scale();
880
42
                }
881
42
            }
882
883
42
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
42
                if (arguments.size() == 1 ||
885
42
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
42
                    Int16 scale_arg = 0;
888
42
                    if (arguments.size() == 2) {
889
42
                        RETURN_IF_ERROR(
890
42
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
42
                    }
892
893
42
                    res = Dispatcher<DataType::PType, rounding_mode,
894
42
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
42
                                                                         result_scale);
896
42
                } else {
897
                    // the SECOND arugment is COLUMN
898
42
                    if (is_col_general_const) {
899
42
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
42
                                apply_const_vec(
901
42
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
42
                                        block.get_by_position(arguments[1]).column.get(),
903
42
                                        result_scale);
904
42
                    } else {
905
42
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
42
                                apply_vec_vec(col_general,
907
42
                                              block.get_by_position(arguments[1]).column.get(),
908
42
                                              result_scale);
909
42
                    }
910
42
                }
911
42
                return true;
912
42
            }
913
914
42
            return false;
915
42
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
42
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
42
        column_result.column = std::move(res);
933
42
        return Status::OK();
934
42
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
40
                        uint32_t result, size_t input_rows_count) const override {
845
40
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
40
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
40
        const DataTypePtr result_type = block.get_by_position(result).type;
848
40
        const bool is_col_general_const = is_column_const(*column_general.column);
849
40
        const auto* col_general = is_col_general_const
850
40
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
6
                                                    .get_data_column_ptr()
852
6
                                                    .get()
853
40
                                          : column_general.column.get();
854
40
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
40
        auto call = [&](const auto& types) -> bool {
863
40
            using Types = std::decay_t<decltype(types)>;
864
40
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
40
            Int16 result_scale = 0;
869
40
            if constexpr (IsDataTypeDecimal<DataType>) {
870
40
                if (column_result.type->is_nullable()) {
871
40
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
40
                                column_result.type)) {
873
40
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
40
                    } else {
875
40
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
40
                                               "Illegal nullable column");
877
40
                    }
878
40
                } else {
879
40
                    result_scale = column_result.type->get_scale();
880
40
                }
881
40
            }
882
883
40
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
40
                if (arguments.size() == 1 ||
885
40
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
40
                    Int16 scale_arg = 0;
888
40
                    if (arguments.size() == 2) {
889
40
                        RETURN_IF_ERROR(
890
40
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
40
                    }
892
893
40
                    res = Dispatcher<DataType::PType, rounding_mode,
894
40
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
40
                                                                         result_scale);
896
40
                } else {
897
                    // the SECOND arugment is COLUMN
898
40
                    if (is_col_general_const) {
899
40
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
40
                                apply_const_vec(
901
40
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
40
                                        block.get_by_position(arguments[1]).column.get(),
903
40
                                        result_scale);
904
40
                    } else {
905
40
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
40
                                apply_vec_vec(col_general,
907
40
                                              block.get_by_position(arguments[1]).column.get(),
908
40
                                              result_scale);
909
40
                    }
910
40
                }
911
40
                return true;
912
40
            }
913
914
40
            return false;
915
40
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
40
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
40
        column_result.column = std::move(res);
933
40
        return Status::OK();
934
40
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
39
                        uint32_t result, size_t input_rows_count) const override {
845
39
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
39
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
39
        const DataTypePtr result_type = block.get_by_position(result).type;
848
39
        const bool is_col_general_const = is_column_const(*column_general.column);
849
39
        const auto* col_general = is_col_general_const
850
39
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
6
                                                    .get_data_column_ptr()
852
6
                                                    .get()
853
39
                                          : column_general.column.get();
854
39
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
39
        auto call = [&](const auto& types) -> bool {
863
39
            using Types = std::decay_t<decltype(types)>;
864
39
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
39
            Int16 result_scale = 0;
869
39
            if constexpr (IsDataTypeDecimal<DataType>) {
870
39
                if (column_result.type->is_nullable()) {
871
39
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
39
                                column_result.type)) {
873
39
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
39
                    } else {
875
39
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
39
                                               "Illegal nullable column");
877
39
                    }
878
39
                } else {
879
39
                    result_scale = column_result.type->get_scale();
880
39
                }
881
39
            }
882
883
39
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
39
                if (arguments.size() == 1 ||
885
39
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
39
                    Int16 scale_arg = 0;
888
39
                    if (arguments.size() == 2) {
889
39
                        RETURN_IF_ERROR(
890
39
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
39
                    }
892
893
39
                    res = Dispatcher<DataType::PType, rounding_mode,
894
39
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
39
                                                                         result_scale);
896
39
                } else {
897
                    // the SECOND arugment is COLUMN
898
39
                    if (is_col_general_const) {
899
39
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
39
                                apply_const_vec(
901
39
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
39
                                        block.get_by_position(arguments[1]).column.get(),
903
39
                                        result_scale);
904
39
                    } else {
905
39
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
39
                                apply_vec_vec(col_general,
907
39
                                              block.get_by_position(arguments[1]).column.get(),
908
39
                                              result_scale);
909
39
                    }
910
39
                }
911
39
                return true;
912
39
            }
913
914
39
            return false;
915
39
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
39
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
39
        column_result.column = std::move(res);
933
39
        return Status::OK();
934
39
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
32
                        uint32_t result, size_t input_rows_count) const override {
845
32
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
32
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
32
        const DataTypePtr result_type = block.get_by_position(result).type;
848
32
        const bool is_col_general_const = is_column_const(*column_general.column);
849
32
        const auto* col_general = is_col_general_const
850
32
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
6
                                                    .get_data_column_ptr()
852
6
                                                    .get()
853
32
                                          : column_general.column.get();
854
32
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
32
        auto call = [&](const auto& types) -> bool {
863
32
            using Types = std::decay_t<decltype(types)>;
864
32
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
32
            Int16 result_scale = 0;
869
32
            if constexpr (IsDataTypeDecimal<DataType>) {
870
32
                if (column_result.type->is_nullable()) {
871
32
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
32
                                column_result.type)) {
873
32
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
32
                    } else {
875
32
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
32
                                               "Illegal nullable column");
877
32
                    }
878
32
                } else {
879
32
                    result_scale = column_result.type->get_scale();
880
32
                }
881
32
            }
882
883
32
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
32
                if (arguments.size() == 1 ||
885
32
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
32
                    Int16 scale_arg = 0;
888
32
                    if (arguments.size() == 2) {
889
32
                        RETURN_IF_ERROR(
890
32
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
32
                    }
892
893
32
                    res = Dispatcher<DataType::PType, rounding_mode,
894
32
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
32
                                                                         result_scale);
896
32
                } else {
897
                    // the SECOND arugment is COLUMN
898
32
                    if (is_col_general_const) {
899
32
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
32
                                apply_const_vec(
901
32
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
32
                                        block.get_by_position(arguments[1]).column.get(),
903
32
                                        result_scale);
904
32
                    } else {
905
32
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
32
                                apply_vec_vec(col_general,
907
32
                                              block.get_by_position(arguments[1]).column.get(),
908
32
                                              result_scale);
909
32
                    }
910
32
                }
911
32
                return true;
912
32
            }
913
914
32
            return false;
915
32
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
32
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
32
        column_result.column = std::move(res);
933
32
        return Status::OK();
934
32
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
18
                        uint32_t result, size_t input_rows_count) const override {
845
18
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
18
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
18
        const DataTypePtr result_type = block.get_by_position(result).type;
848
18
        const bool is_col_general_const = is_column_const(*column_general.column);
849
18
        const auto* col_general = is_col_general_const
850
18
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
18
                                          : column_general.column.get();
854
18
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
18
        auto call = [&](const auto& types) -> bool {
863
18
            using Types = std::decay_t<decltype(types)>;
864
18
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
18
            Int16 result_scale = 0;
869
18
            if constexpr (IsDataTypeDecimal<DataType>) {
870
18
                if (column_result.type->is_nullable()) {
871
18
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
18
                                column_result.type)) {
873
18
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
18
                    } else {
875
18
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
18
                                               "Illegal nullable column");
877
18
                    }
878
18
                } else {
879
18
                    result_scale = column_result.type->get_scale();
880
18
                }
881
18
            }
882
883
18
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
18
                if (arguments.size() == 1 ||
885
18
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
18
                    Int16 scale_arg = 0;
888
18
                    if (arguments.size() == 2) {
889
18
                        RETURN_IF_ERROR(
890
18
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
18
                    }
892
893
18
                    res = Dispatcher<DataType::PType, rounding_mode,
894
18
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
18
                                                                         result_scale);
896
18
                } else {
897
                    // the SECOND arugment is COLUMN
898
18
                    if (is_col_general_const) {
899
18
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
18
                                apply_const_vec(
901
18
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
18
                                        block.get_by_position(arguments[1]).column.get(),
903
18
                                        result_scale);
904
18
                    } else {
905
18
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
18
                                apply_vec_vec(col_general,
907
18
                                              block.get_by_position(arguments[1]).column.get(),
908
18
                                              result_scale);
909
18
                    }
910
18
                }
911
18
                return true;
912
18
            }
913
914
18
            return false;
915
18
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
18
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
18
        column_result.column = std::move(res);
933
18
        return Status::OK();
934
18
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
27
                        uint32_t result, size_t input_rows_count) const override {
845
27
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
27
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
27
        const DataTypePtr result_type = block.get_by_position(result).type;
848
27
        const bool is_col_general_const = is_column_const(*column_general.column);
849
27
        const auto* col_general = is_col_general_const
850
27
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
27
                                          : column_general.column.get();
854
27
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
27
        auto call = [&](const auto& types) -> bool {
863
27
            using Types = std::decay_t<decltype(types)>;
864
27
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
27
            Int16 result_scale = 0;
869
27
            if constexpr (IsDataTypeDecimal<DataType>) {
870
27
                if (column_result.type->is_nullable()) {
871
27
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
27
                                column_result.type)) {
873
27
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
27
                    } else {
875
27
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
27
                                               "Illegal nullable column");
877
27
                    }
878
27
                } else {
879
27
                    result_scale = column_result.type->get_scale();
880
27
                }
881
27
            }
882
883
27
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
27
                if (arguments.size() == 1 ||
885
27
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
27
                    Int16 scale_arg = 0;
888
27
                    if (arguments.size() == 2) {
889
27
                        RETURN_IF_ERROR(
890
27
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
27
                    }
892
893
27
                    res = Dispatcher<DataType::PType, rounding_mode,
894
27
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
27
                                                                         result_scale);
896
27
                } else {
897
                    // the SECOND arugment is COLUMN
898
27
                    if (is_col_general_const) {
899
27
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
27
                                apply_const_vec(
901
27
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
27
                                        block.get_by_position(arguments[1]).column.get(),
903
27
                                        result_scale);
904
27
                    } else {
905
27
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
27
                                apply_vec_vec(col_general,
907
27
                                              block.get_by_position(arguments[1]).column.get(),
908
27
                                              result_scale);
909
27
                    }
910
27
                }
911
27
                return true;
912
27
            }
913
914
27
            return false;
915
27
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
27
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
27
        column_result.column = std::move(res);
933
27
        return Status::OK();
934
27
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
181
                        uint32_t result, size_t input_rows_count) const override {
845
181
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
181
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
181
        const DataTypePtr result_type = block.get_by_position(result).type;
848
181
        const bool is_col_general_const = is_column_const(*column_general.column);
849
181
        const auto* col_general = is_col_general_const
850
181
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
181
                                          : column_general.column.get();
854
181
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
181
        auto call = [&](const auto& types) -> bool {
863
181
            using Types = std::decay_t<decltype(types)>;
864
181
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
181
            Int16 result_scale = 0;
869
181
            if constexpr (IsDataTypeDecimal<DataType>) {
870
181
                if (column_result.type->is_nullable()) {
871
181
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
181
                                column_result.type)) {
873
181
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
181
                    } else {
875
181
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
181
                                               "Illegal nullable column");
877
181
                    }
878
181
                } else {
879
181
                    result_scale = column_result.type->get_scale();
880
181
                }
881
181
            }
882
883
181
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
181
                if (arguments.size() == 1 ||
885
181
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
181
                    Int16 scale_arg = 0;
888
181
                    if (arguments.size() == 2) {
889
181
                        RETURN_IF_ERROR(
890
181
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
181
                    }
892
893
181
                    res = Dispatcher<DataType::PType, rounding_mode,
894
181
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
181
                                                                         result_scale);
896
181
                } else {
897
                    // the SECOND arugment is COLUMN
898
181
                    if (is_col_general_const) {
899
181
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
181
                                apply_const_vec(
901
181
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
181
                                        block.get_by_position(arguments[1]).column.get(),
903
181
                                        result_scale);
904
181
                    } else {
905
181
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
181
                                apply_vec_vec(col_general,
907
181
                                              block.get_by_position(arguments[1]).column.get(),
908
181
                                              result_scale);
909
181
                    }
910
181
                }
911
181
                return true;
912
181
            }
913
914
181
            return false;
915
181
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
181
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
181
        column_result.column = std::move(res);
933
181
        return Status::OK();
934
181
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
25
                        uint32_t result, size_t input_rows_count) const override {
845
25
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
25
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
25
        const DataTypePtr result_type = block.get_by_position(result).type;
848
25
        const bool is_col_general_const = is_column_const(*column_general.column);
849
25
        const auto* col_general = is_col_general_const
850
25
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
25
                                          : column_general.column.get();
854
25
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
25
        auto call = [&](const auto& types) -> bool {
863
25
            using Types = std::decay_t<decltype(types)>;
864
25
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
25
            Int16 result_scale = 0;
869
25
            if constexpr (IsDataTypeDecimal<DataType>) {
870
25
                if (column_result.type->is_nullable()) {
871
25
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
25
                                column_result.type)) {
873
25
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
25
                    } else {
875
25
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
25
                                               "Illegal nullable column");
877
25
                    }
878
25
                } else {
879
25
                    result_scale = column_result.type->get_scale();
880
25
                }
881
25
            }
882
883
25
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
25
                if (arguments.size() == 1 ||
885
25
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
25
                    Int16 scale_arg = 0;
888
25
                    if (arguments.size() == 2) {
889
25
                        RETURN_IF_ERROR(
890
25
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
25
                    }
892
893
25
                    res = Dispatcher<DataType::PType, rounding_mode,
894
25
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
25
                                                                         result_scale);
896
25
                } else {
897
                    // the SECOND arugment is COLUMN
898
25
                    if (is_col_general_const) {
899
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
25
                                apply_const_vec(
901
25
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
25
                                        block.get_by_position(arguments[1]).column.get(),
903
25
                                        result_scale);
904
25
                    } else {
905
25
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
25
                                apply_vec_vec(col_general,
907
25
                                              block.get_by_position(arguments[1]).column.get(),
908
25
                                              result_scale);
909
25
                    }
910
25
                }
911
25
                return true;
912
25
            }
913
914
25
            return false;
915
25
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
25
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
25
        column_result.column = std::move(res);
933
25
        return Status::OK();
934
25
    }
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
20
                        uint32_t result, size_t input_rows_count) const override {
845
20
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
20
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
20
        const DataTypePtr result_type = block.get_by_position(result).type;
848
20
        const bool is_col_general_const = is_column_const(*column_general.column);
849
20
        const auto* col_general = is_col_general_const
850
20
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
20
                                          : column_general.column.get();
854
20
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
20
        auto call = [&](const auto& types) -> bool {
863
20
            using Types = std::decay_t<decltype(types)>;
864
20
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
20
            Int16 result_scale = 0;
869
20
            if constexpr (IsDataTypeDecimal<DataType>) {
870
20
                if (column_result.type->is_nullable()) {
871
20
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
20
                                column_result.type)) {
873
20
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
20
                    } else {
875
20
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
20
                                               "Illegal nullable column");
877
20
                    }
878
20
                } else {
879
20
                    result_scale = column_result.type->get_scale();
880
20
                }
881
20
            }
882
883
20
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
20
                if (arguments.size() == 1 ||
885
20
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
20
                    Int16 scale_arg = 0;
888
20
                    if (arguments.size() == 2) {
889
20
                        RETURN_IF_ERROR(
890
20
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
20
                    }
892
893
20
                    res = Dispatcher<DataType::PType, rounding_mode,
894
20
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
20
                                                                         result_scale);
896
20
                } else {
897
                    // the SECOND arugment is COLUMN
898
20
                    if (is_col_general_const) {
899
20
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
20
                                apply_const_vec(
901
20
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
20
                                        block.get_by_position(arguments[1]).column.get(),
903
20
                                        result_scale);
904
20
                    } else {
905
20
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
20
                                apply_vec_vec(col_general,
907
20
                                              block.get_by_position(arguments[1]).column.get(),
908
20
                                              result_scale);
909
20
                    }
910
20
                }
911
20
                return true;
912
20
            }
913
914
20
            return false;
915
20
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
20
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
20
        column_result.column = std::move(res);
933
20
        return Status::OK();
934
20
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE11ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE9ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
844
14
                        uint32_t result, size_t input_rows_count) const override {
845
14
        const ColumnWithTypeAndName& column_general = block.get_by_position(arguments[0]);
846
14
        ColumnWithTypeAndName& column_result = block.get_by_position(result);
847
14
        const DataTypePtr result_type = block.get_by_position(result).type;
848
14
        const bool is_col_general_const = is_column_const(*column_general.column);
849
14
        const auto* col_general = is_col_general_const
850
14
                                          ? assert_cast<const ColumnConst&>(*column_general.column)
851
0
                                                    .get_data_column_ptr()
852
0
                                                    .get()
853
14
                                          : column_general.column.get();
854
14
        ColumnPtr res;
855
856
        /// potential argument types:
857
        /// if the SECOND argument is MISSING(would be considered as ZERO const) or CONST, then we have the following type:
858
        ///    1. func(Column), func(Column, ColumnConst)
859
        /// otherwise, the SECOND arugment is COLUMN, we have another type:
860
        ///    2. func(Column, Column), func(ColumnConst, Column)
861
862
14
        auto call = [&](const auto& types) -> bool {
863
14
            using Types = std::decay_t<decltype(types)>;
864
14
            using DataType = typename Types::LeftType;
865
866
            // For decimal, we will always make sure result Decimal has exactly same precision and scale with
867
            // arguments from query plan.
868
14
            Int16 result_scale = 0;
869
14
            if constexpr (IsDataTypeDecimal<DataType>) {
870
14
                if (column_result.type->is_nullable()) {
871
14
                    if (auto nullable_type = std::dynamic_pointer_cast<const DataTypeNullable>(
872
14
                                column_result.type)) {
873
14
                        result_scale = nullable_type->get_nested_type()->get_scale();
874
14
                    } else {
875
14
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR,
876
14
                                               "Illegal nullable column");
877
14
                    }
878
14
                } else {
879
14
                    result_scale = column_result.type->get_scale();
880
14
                }
881
14
            }
882
883
14
            if constexpr (IsDataTypeNumber<DataType> || IsDataTypeDecimal<DataType>) {
884
14
                if (arguments.size() == 1 ||
885
14
                    is_column_const(*block.get_by_position(arguments[1]).column)) {
886
                    // the SECOND argument is MISSING or CONST
887
14
                    Int16 scale_arg = 0;
888
14
                    if (arguments.size() == 2) {
889
14
                        RETURN_IF_ERROR(
890
14
                                get_scale_arg(block.get_by_position(arguments[1]), &scale_arg));
891
14
                    }
892
893
14
                    res = Dispatcher<DataType::PType, rounding_mode,
894
14
                                     tie_breaking_mode>::apply_vec_const(col_general, scale_arg,
895
14
                                                                         result_scale);
896
14
                } else {
897
                    // the SECOND arugment is COLUMN
898
14
                    if (is_col_general_const) {
899
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
900
14
                                apply_const_vec(
901
14
                                        &assert_cast<const ColumnConst&>(*column_general.column),
902
14
                                        block.get_by_position(arguments[1]).column.get(),
903
14
                                        result_scale);
904
14
                    } else {
905
14
                        res = Dispatcher<DataType::PType, rounding_mode, tie_breaking_mode>::
906
14
                                apply_vec_vec(col_general,
907
14
                                              block.get_by_position(arguments[1]).column.get(),
908
14
                                              result_scale);
909
14
                    }
910
14
                }
911
14
                return true;
912
14
            }
913
914
14
            return false;
915
14
        };
916
917
#if !defined(__SSE4_1__) && !defined(__aarch64__)
918
        /// In case of "nearbyint" function is used, we should ensure the expected rounding mode for the Banker's rounding.
919
        /// Actually it is by default. But we will set it just in case.
920
        if constexpr (rounding_mode == RoundingMode::Round) {
921
            if (0 != fesetround(FE_TONEAREST)) {
922
                return Status::InvalidArgument("Cannot set floating point rounding mode");
923
            }
924
        }
925
#endif
926
927
14
        if (!call_on_index_and_data_type<void>(column_general.type->get_primitive_type(), call)) {
928
0
            return Status::InvalidArgument("Invalid argument type {} for function {}",
929
0
                                           column_general.type->get_name(), name);
930
0
        }
931
932
14
        column_result.column = std::move(res);
933
14
        return Status::OK();
934
14
    }
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE10ELNS_15TieBreakingModeE0EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris16FunctionRoundingINS_19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EEELNS_12RoundingModeE8ELNS_15TieBreakingModeE1EE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
935
};
936
937
struct TruncateName {
938
    static constexpr auto name = "truncate";
939
};
940
941
struct FloorName {
942
    static constexpr auto name = "floor";
943
};
944
945
struct CeilName {
946
    static constexpr auto name = "ceil";
947
};
948
949
struct RoundName {
950
    static constexpr auto name = "round";
951
};
952
953
struct RoundBankersName {
954
    static constexpr auto name = "round_bankers";
955
};
956
957
/// round(double,int32)-->double
958
/// key_str:roundFloat64Int32
959
template <typename Name>
960
struct DoubleRoundTwoImpl {
961
    static constexpr auto name = Name::name;
962
963
40
    static DataTypes get_variadic_argument_types() {
964
40
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
40
    }
_ZN5doris18DoubleRoundTwoImplINS_12TruncateNameEE27get_variadic_argument_typesEv
Line
Count
Source
963
8
    static DataTypes get_variadic_argument_types() {
964
8
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
8
    }
_ZN5doris18DoubleRoundTwoImplINS_9FloorNameEE27get_variadic_argument_typesEv
Line
Count
Source
963
8
    static DataTypes get_variadic_argument_types() {
964
8
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
8
    }
_ZN5doris18DoubleRoundTwoImplINS_9RoundNameEE27get_variadic_argument_typesEv
Line
Count
Source
963
8
    static DataTypes get_variadic_argument_types() {
964
8
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
8
    }
_ZN5doris18DoubleRoundTwoImplINS_8CeilNameEE27get_variadic_argument_typesEv
Line
Count
Source
963
8
    static DataTypes get_variadic_argument_types() {
964
8
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
8
    }
_ZN5doris18DoubleRoundTwoImplINS_16RoundBankersNameEE27get_variadic_argument_typesEv
Line
Count
Source
963
8
    static DataTypes get_variadic_argument_types() {
964
8
        return {std::make_shared<DataTypeFloat64>(), std::make_shared<DataTypeInt32>()};
965
8
    }
966
};
967
968
template <typename Name>
969
struct DoubleRoundOneImpl {
970
    static constexpr auto name = Name::name;
971
972
40
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
_ZN5doris18DoubleRoundOneImplINS_12TruncateNameEE27get_variadic_argument_typesEv
Line
Count
Source
972
8
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
_ZN5doris18DoubleRoundOneImplINS_9FloorNameEE27get_variadic_argument_typesEv
Line
Count
Source
972
8
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
_ZN5doris18DoubleRoundOneImplINS_9RoundNameEE27get_variadic_argument_typesEv
Line
Count
Source
972
8
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
_ZN5doris18DoubleRoundOneImplINS_8CeilNameEE27get_variadic_argument_typesEv
Line
Count
Source
972
8
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
_ZN5doris18DoubleRoundOneImplINS_16RoundBankersNameEE27get_variadic_argument_typesEv
Line
Count
Source
972
8
    static DataTypes get_variadic_argument_types() { return {std::make_shared<DataTypeFloat64>()}; }
973
};
974
975
template <typename Name, PrimitiveType Type>
976
struct DecimalRoundTwoImpl {
977
    static constexpr auto name = Name::name;
978
979
160
    static DataTypes get_variadic_argument_types() {
980
160
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
160
                std::make_shared<DataTypeInt32>()};
982
160
    }
_ZN5doris19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_12TruncateNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9FloorNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_9RoundNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_8CeilNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
_ZN5doris19DecimalRoundTwoImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
979
8
    static DataTypes get_variadic_argument_types() {
980
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
981
8
                std::make_shared<DataTypeInt32>()};
982
8
    }
983
};
984
985
template <typename Name, PrimitiveType Type>
986
struct DecimalRoundOneImpl {
987
    static constexpr auto name = Name::name;
988
989
160
    static DataTypes get_variadic_argument_types() {
990
160
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
160
    }
_ZN5doris19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE28EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE29EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE30EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_12TruncateNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9FloorNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_9RoundNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_8CeilNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
_ZN5doris19DecimalRoundOneImplINS_16RoundBankersNameELNS_13PrimitiveTypeE35EE27get_variadic_argument_typesEv
Line
Count
Source
989
8
    static DataTypes get_variadic_argument_types() {
990
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
991
8
    }
992
};
993
#include "common/compile_check_avoid_end.h"
994
} // namespace doris