Coverage Report

Created: 2026-09-13 19:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/binary_arithmetic.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/FunctionBinaryArithmetic.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include "core/column/column_decimal.h"
24
#include "core/column/column_vector.h"
25
#include "core/data_type/data_type_decimal.h"
26
#include "core/data_type/data_type_number.h"
27
#include "core/data_type/number_traits.h"
28
#include "core/data_type/primitive_type.h"
29
#include "core/types.h"
30
#include "core/value/decimalv2_value.h"
31
#include "exec/common/arithmetic_overflow.h"
32
#include "exprs/function/cast_type_to_either.h"
33
#include "exprs/function/simple_function_factory.h"
34
35
namespace doris {
36
#include "common/compile_check_avoid_begin.h"
37
template <typename Impl>
38
struct PlusMinusIntegralImpl {
39
    static constexpr PrimitiveType Type = Impl::PType;
40
    static constexpr bool result_is_decimal = false;
41
    static constexpr auto name = Impl::name;
42
    constexpr static bool need_replace_null_data_to_default = false;
43
    using Arg = typename Impl::Arg;
44
    using ColumnType = typename PrimitiveTypeTraits<Type>::ColumnType;
45
    using ArgA = Arg;
46
    using ArgB = Arg;
47
    using DataTypeA = typename PrimitiveTypeTraits<Type>::DataType;
48
    using DataTypeB = typename PrimitiveTypeTraits<Type>::DataType;
49
    static constexpr PrimitiveType ResultType = Type;
50
51
112
    static DataTypes get_variadic_argument_types() {
52
112
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
112
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
112
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE27get_variadic_argument_typesEv
Line
Count
Source
51
8
    static DataTypes get_variadic_argument_types() {
52
8
        return {std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>(),
53
8
                std::make_shared<typename PrimitiveTypeTraits<Type>::DataType>()};
54
8
    }
55
56
143
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
143
        auto column_result = ColumnType ::create(1);
58
143
        column_result->get_element(0) = Impl::apply(a, b);
59
143
        return column_result;
60
143
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE17constant_constantEaa
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE17constant_constantEss
Line
Count
Source
56
2
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
2
        auto column_result = ColumnType ::create(1);
58
2
        column_result->get_element(0) = Impl::apply(a, b);
59
2
        return column_result;
60
2
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE17constant_constantEii
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE17constant_constantEll
Line
Count
Source
56
33
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
33
        auto column_result = ColumnType ::create(1);
58
33
        column_result->get_element(0) = Impl::apply(a, b);
59
33
        return column_result;
60
33
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE17constant_constantEnn
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE17constant_constantEdd
Line
Count
Source
56
24
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
24
        auto column_result = ColumnType ::create(1);
58
24
        column_result->get_element(0) = Impl::apply(a, b);
59
24
        return column_result;
60
24
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE17constant_constantEff
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE17constant_constantEaa
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE17constant_constantEss
Line
Count
Source
56
2
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
2
        auto column_result = ColumnType ::create(1);
58
2
        column_result->get_element(0) = Impl::apply(a, b);
59
2
        return column_result;
60
2
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE17constant_constantEii
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE17constant_constantEll
Line
Count
Source
56
62
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
62
        auto column_result = ColumnType ::create(1);
58
62
        column_result->get_element(0) = Impl::apply(a, b);
59
62
        return column_result;
60
62
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE17constant_constantEnn
Line
Count
Source
56
1
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
1
        auto column_result = ColumnType ::create(1);
58
1
        column_result->get_element(0) = Impl::apply(a, b);
59
1
        return column_result;
60
1
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE17constant_constantEdd
Line
Count
Source
56
19
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
19
        auto column_result = ColumnType ::create(1);
58
19
        column_result->get_element(0) = Impl::apply(a, b);
59
19
        return column_result;
60
19
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE17constant_constantEff
61
62
5.16k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
5.16k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
5.16k
        auto column_result = ColumnType::create(column_left->size());
65
66
5.16k
        auto& a = column_left_ptr->get_data();
67
5.16k
        auto& c = column_result->get_data();
68
5.16k
        size_t size = a.size();
69
750k
        for (size_t i = 0; i < size; ++i) {
70
745k
            c[i] = Impl::apply(a[i], b);
71
745k
        }
72
5.16k
        return column_result;
73
5.16k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEa
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEs
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEi
Line
Count
Source
62
7
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
7
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
7
        auto column_result = ColumnType::create(column_left->size());
65
66
7
        auto& a = column_left_ptr->get_data();
67
7
        auto& c = column_result->get_data();
68
7
        size_t size = a.size();
69
52
        for (size_t i = 0; i < size; ++i) {
70
45
            c[i] = Impl::apply(a[i], b);
71
45
        }
72
7
        return column_result;
73
7
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEl
Line
Count
Source
62
819
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
819
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
819
        auto column_result = ColumnType::create(column_left->size());
65
66
819
        auto& a = column_left_ptr->get_data();
67
819
        auto& c = column_result->get_data();
68
819
        size_t size = a.size();
69
2.57k
        for (size_t i = 0; i < size; ++i) {
70
1.75k
            c[i] = Impl::apply(a[i], b);
71
1.75k
        }
72
819
        return column_result;
73
819
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
53
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
53
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
53
        auto column_result = ColumnType::create(column_left->size());
65
66
53
        auto& a = column_left_ptr->get_data();
67
53
        auto& c = column_result->get_data();
68
53
        size_t size = a.size();
69
154
        for (size_t i = 0; i < size; ++i) {
70
101
            c[i] = Impl::apply(a[i], b);
71
101
        }
72
53
        return column_result;
73
53
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEa
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEs
Line
Count
Source
62
455
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
455
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
455
        auto column_result = ColumnType::create(column_left->size());
65
66
455
        auto& a = column_left_ptr->get_data();
67
455
        auto& c = column_result->get_data();
68
455
        size_t size = a.size();
69
2.15k
        for (size_t i = 0; i < size; ++i) {
70
1.70k
            c[i] = Impl::apply(a[i], b);
71
1.70k
        }
72
455
        return column_result;
73
455
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEi
Line
Count
Source
62
39
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
39
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
39
        auto column_result = ColumnType::create(column_left->size());
65
66
39
        auto& a = column_left_ptr->get_data();
67
39
        auto& c = column_result->get_data();
68
39
        size_t size = a.size();
69
439
        for (size_t i = 0; i < size; ++i) {
70
400
            c[i] = Impl::apply(a[i], b);
71
400
        }
72
39
        return column_result;
73
39
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEl
Line
Count
Source
62
3.45k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
3.45k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
3.45k
        auto column_result = ColumnType::create(column_left->size());
65
66
3.45k
        auto& a = column_left_ptr->get_data();
67
3.45k
        auto& c = column_result->get_data();
68
3.45k
        size_t size = a.size();
69
142k
        for (size_t i = 0; i < size; ++i) {
70
139k
            c[i] = Impl::apply(a[i], b);
71
139k
        }
72
3.45k
        return column_result;
73
3.45k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
Line
Count
Source
62
111
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
111
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
111
        auto column_result = ColumnType::create(column_left->size());
65
66
111
        auto& a = column_left_ptr->get_data();
67
111
        auto& c = column_result->get_data();
68
111
        size_t size = a.size();
69
4.38k
        for (size_t i = 0; i < size; ++i) {
70
4.27k
            c[i] = Impl::apply(a[i], b);
71
4.27k
        }
72
111
        return column_result;
73
111
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
235
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
235
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
235
        auto column_result = ColumnType::create(column_left->size());
65
66
235
        auto& a = column_left_ptr->get_data();
67
235
        auto& c = column_result->get_data();
68
235
        size_t size = a.size();
69
598k
        for (size_t i = 0; i < size; ++i) {
70
597k
            c[i] = Impl::apply(a[i], b);
71
597k
        }
72
235
        return column_result;
73
235
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
74
75
718
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
718
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
718
        auto column_result = ColumnType::create(column_right->size());
78
718
        DCHECK(column_right_ptr != nullptr);
79
80
718
        auto& b = column_right_ptr->get_data();
81
718
        auto& c = column_result->get_data();
82
718
        size_t size = b.size();
83
656k
        for (size_t i = 0; i < size; ++i) {
84
655k
            c[i] = Impl::apply(a, b[i]);
85
655k
        }
86
718
        return column_result;
87
718
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE15constant_vectorEaNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE15constant_vectorEsNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE15constant_vectorEiNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
36
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
36
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
36
        auto column_result = ColumnType::create(column_right->size());
78
36
        DCHECK(column_right_ptr != nullptr);
79
80
36
        auto& b = column_right_ptr->get_data();
81
36
        auto& c = column_result->get_data();
82
36
        size_t size = b.size();
83
99
        for (size_t i = 0; i < size; ++i) {
84
63
            c[i] = Impl::apply(a, b[i]);
85
63
        }
86
36
        return column_result;
87
36
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
43
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
43
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
43
        auto column_result = ColumnType::create(column_right->size());
78
43
        DCHECK(column_right_ptr != nullptr);
79
80
43
        auto& b = column_right_ptr->get_data();
81
43
        auto& c = column_result->get_data();
82
43
        size_t size = b.size();
83
616
        for (size_t i = 0; i < size; ++i) {
84
573
            c[i] = Impl::apply(a, b[i]);
85
573
        }
86
43
        return column_result;
87
43
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
639
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
639
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
639
        auto column_result = ColumnType::create(column_right->size());
78
639
        DCHECK(column_right_ptr != nullptr);
79
80
639
        auto& b = column_right_ptr->get_data();
81
639
        auto& c = column_result->get_data();
82
639
        size_t size = b.size();
83
655k
        for (size_t i = 0; i < size; ++i) {
84
655k
            c[i] = Impl::apply(a, b[i]);
85
655k
        }
86
639
        return column_result;
87
639
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE15constant_vectorEfNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE15constant_vectorEaNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE15constant_vectorEsNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE15constant_vectorEiNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15constant_vectorEfNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
88
89
22.9k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
22.9k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
22.9k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
22.9k
        auto column_result = ColumnType::create(column_left->size());
94
95
22.9k
        auto& a = column_left_ptr->get_data();
96
22.9k
        auto& b = column_right_ptr->get_data();
97
22.9k
        auto& c = column_result->get_data();
98
22.9k
        size_t size = a.size();
99
4.70M
        for (size_t i = 0; i < size; ++i) {
100
4.67M
            c[i] = Impl::apply(a[i], b[i]);
101
4.67M
        }
102
22.9k
        return column_result;
103
22.9k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
38
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
38
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
38
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
38
        auto column_result = ColumnType::create(column_left->size());
94
95
38
        auto& a = column_left_ptr->get_data();
96
38
        auto& b = column_right_ptr->get_data();
97
38
        auto& c = column_result->get_data();
98
38
        size_t size = a.size();
99
256
        for (size_t i = 0; i < size; ++i) {
100
218
            c[i] = Impl::apply(a[i], b[i]);
101
218
        }
102
38
        return column_result;
103
38
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
52
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
52
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
52
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
52
        auto column_result = ColumnType::create(column_left->size());
94
95
52
        auto& a = column_left_ptr->get_data();
96
52
        auto& b = column_right_ptr->get_data();
97
52
        auto& c = column_result->get_data();
98
52
        size_t size = a.size();
99
315
        for (size_t i = 0; i < size; ++i) {
100
263
            c[i] = Impl::apply(a[i], b[i]);
101
263
        }
102
52
        return column_result;
103
52
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
14.0k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
14.0k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
14.0k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
14.0k
        auto column_result = ColumnType::create(column_left->size());
94
95
14.0k
        auto& a = column_left_ptr->get_data();
96
14.0k
        auto& b = column_right_ptr->get_data();
97
14.0k
        auto& c = column_result->get_data();
98
14.0k
        size_t size = a.size();
99
243k
        for (size_t i = 0; i < size; ++i) {
100
229k
            c[i] = Impl::apply(a[i], b[i]);
101
229k
        }
102
14.0k
        return column_result;
103
14.0k
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
152
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
152
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
152
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
152
        auto column_result = ColumnType::create(column_left->size());
94
95
152
        auto& a = column_left_ptr->get_data();
96
152
        auto& b = column_right_ptr->get_data();
97
152
        auto& c = column_result->get_data();
98
152
        size_t size = a.size();
99
1.08k
        for (size_t i = 0; i < size; ++i) {
100
931
            c[i] = Impl::apply(a[i], b[i]);
101
931
        }
102
152
        return column_result;
103
152
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
2.00k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
2.00k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
2.00k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
2.00k
        auto column_result = ColumnType::create(column_left->size());
94
95
2.00k
        auto& a = column_left_ptr->get_data();
96
2.00k
        auto& b = column_right_ptr->get_data();
97
2.00k
        auto& c = column_result->get_data();
98
2.00k
        size_t size = a.size();
99
42.2k
        for (size_t i = 0; i < size; ++i) {
100
40.2k
            c[i] = Impl::apply(a[i], b[i]);
101
40.2k
        }
102
2.00k
        return column_result;
103
2.00k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
46
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
46
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
46
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
46
        auto column_result = ColumnType::create(column_left->size());
94
95
46
        auto& a = column_left_ptr->get_data();
96
46
        auto& b = column_right_ptr->get_data();
97
46
        auto& c = column_result->get_data();
98
46
        size_t size = a.size();
99
267
        for (size_t i = 0; i < size; ++i) {
100
221
            c[i] = Impl::apply(a[i], b[i]);
101
221
        }
102
46
        return column_result;
103
46
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
102
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
102
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
102
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
102
        auto column_result = ColumnType::create(column_left->size());
94
95
102
        auto& a = column_left_ptr->get_data();
96
102
        auto& b = column_right_ptr->get_data();
97
102
        auto& c = column_result->get_data();
98
102
        size_t size = a.size();
99
4.38k
        for (size_t i = 0; i < size; ++i) {
100
4.28k
            c[i] = Impl::apply(a[i], b[i]);
101
4.28k
        }
102
102
        return column_result;
103
102
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
4.84k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
4.84k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
4.84k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
4.84k
        auto column_result = ColumnType::create(column_left->size());
94
95
4.84k
        auto& a = column_left_ptr->get_data();
96
4.84k
        auto& b = column_right_ptr->get_data();
97
4.84k
        auto& c = column_result->get_data();
98
4.84k
        size_t size = a.size();
99
4.39M
        for (size_t i = 0; i < size; ++i) {
100
4.39M
            c[i] = Impl::apply(a[i], b[i]);
101
4.39M
        }
102
4.84k
        return column_result;
103
4.84k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
194
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
194
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
194
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
194
        auto column_result = ColumnType::create(column_left->size());
94
95
194
        auto& a = column_left_ptr->get_data();
96
194
        auto& b = column_right_ptr->get_data();
97
194
        auto& c = column_result->get_data();
98
194
        size_t size = a.size();
99
1.19k
        for (size_t i = 0; i < size; ++i) {
100
1.00k
            c[i] = Impl::apply(a[i], b[i]);
101
1.00k
        }
102
194
        return column_result;
103
194
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
1.48k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
1.48k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
1.48k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
1.48k
        auto column_result = ColumnType::create(column_left->size());
94
95
1.48k
        auto& a = column_left_ptr->get_data();
96
1.48k
        auto& b = column_right_ptr->get_data();
97
1.48k
        auto& c = column_result->get_data();
98
1.48k
        size_t size = a.size();
99
9.48k
        for (size_t i = 0; i < size; ++i) {
100
7.99k
            c[i] = Impl::apply(a[i], b[i]);
101
7.99k
        }
102
1.48k
        return column_result;
103
1.48k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
104
};
105
106
template <typename Impl>
107
struct PlusMinusDecimalImpl {
108
    static constexpr bool result_is_decimal = true;
109
    static constexpr auto name = Impl::name;
110
    static constexpr PrimitiveType TypeA = Impl::PTypeA;
111
    static constexpr PrimitiveType TypeB = Impl::PTypeB;
112
    using ArgA = typename PrimitiveTypeTraits<TypeA>::CppType;
113
    using ArgB = typename PrimitiveTypeTraits<TypeB>::CppType;
114
    using ArgNativeTypeA = typename Impl::ArgNativeTypeA;
115
    using ArgNativeTypeB = typename Impl::ArgNativeTypeA;
116
    using DataTypeA = typename PrimitiveTypeTraits<TypeA>::DataType;
117
    using DataTypeB = typename PrimitiveTypeTraits<TypeB>::DataType;
118
    using ColumnTypeA = typename PrimitiveTypeTraits<TypeA>::ColumnType;
119
    using ColumnTypeB = typename PrimitiveTypeTraits<TypeB>::ColumnType;
120
121
    constexpr static bool need_replace_null_data_to_default = true;
122
123
80
    static DataTypes get_variadic_argument_types() {
124
80
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
80
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
80
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
127
128
    template <PrimitiveType ResultType>
129
        requires(is_decimal(ResultType))
130
    static ColumnPtr constant_constant(
131
            ArgA a, ArgB b, const DataTypeA* type_left, const DataTypeB* type_right,
132
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
133
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
134
73
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
73
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
73
        if (check_overflow_for_decimal) {
138
73
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
12
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
12
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
12
                                    max_result_number, scale_diff_multiplier));
142
61
            } else {
143
61
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
61
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
61
                                    scale_diff_multiplier));
146
61
            }
147
148
73
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
73
        return column_result;
160
73
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE17constant_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESB_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
134
6
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
6
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
6
        if (check_overflow_for_decimal) {
138
6
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
6
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
6
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
6
                                    max_result_number, scale_diff_multiplier));
142
            } else {
143
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
                                    scale_diff_multiplier));
146
            }
147
148
6
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
            } else {
154
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
                                     max_result_number, scale_diff_multiplier));
157
            }
158
0
        }
159
6
        return column_result;
160
6
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
134
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
1
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
1
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
1
            } else {
143
1
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
1
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
1
                                    scale_diff_multiplier));
146
1
            }
147
148
1
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
1
        return column_result;
160
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
134
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
1
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
1
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
1
            } else {
143
1
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
1
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
1
                                    scale_diff_multiplier));
146
1
            }
147
148
1
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
1
        return column_result;
160
1
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE17constant_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESB_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
134
6
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
6
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
6
        if (check_overflow_for_decimal) {
138
6
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
6
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
6
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
6
                                    max_result_number, scale_diff_multiplier));
142
            } else {
143
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
                                    scale_diff_multiplier));
146
            }
147
148
6
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
            } else {
154
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
                                     max_result_number, scale_diff_multiplier));
157
            }
158
0
        }
159
6
        return column_result;
160
6
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
134
57
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
57
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
57
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
57
            } else {
143
57
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
57
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
57
                                    scale_diff_multiplier));
146
57
            }
147
148
57
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
57
        return column_result;
160
57
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
134
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
2
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
2
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
2
            } else {
143
2
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
2
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
2
                                    scale_diff_multiplier));
146
2
            }
147
148
2
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
2
        return column_result;
160
2
    }
161
162
    template <PrimitiveType ResultType>
163
        requires(is_decimal(ResultType))
164
    static ColumnPtr vector_constant(
165
            ColumnPtr column_left, ArgB b, const DataTypeA* type_left, const DataTypeB* type_right,
166
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
167
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
168
305
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
305
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
305
        auto column_result =
171
305
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
305
        DCHECK(column_left_ptr != nullptr);
173
174
305
        const auto& a = column_left_ptr->get_data();
175
305
        auto& c = column_result->get_data();
176
305
        std::visit(
177
305
                [&](auto check_overflow_for_decimal) {
178
1.77k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
1.46k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
4
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
4
                                    apply<check_overflow_for_decimal>(
182
4
                                            a[i].value(), b.value(), *type_left, *type_right,
183
4
                                            res_data_type, max_result_number,
184
4
                                            scale_diff_multiplier));
185
1.46k
                        } else {
186
1.46k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.46k
                                    apply<check_overflow_for_decimal>(
188
1.46k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.46k
                                            max_result_number, scale_diff_multiplier));
190
1.46k
                        }
191
1.46k
                    }
192
305
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
177
2
                [&](auto check_overflow_for_decimal) {
178
4
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
2
                                    apply<check_overflow_for_decimal>(
182
2
                                            a[i].value(), b.value(), *type_left, *type_right,
183
2
                                            res_data_type, max_result_number,
184
2
                                            scale_diff_multiplier));
185
                        } else {
186
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
                                    apply<check_overflow_for_decimal>(
188
                                            a[i], b, *type_left, *type_right, res_data_type,
189
                                            max_result_number, scale_diff_multiplier));
190
                        }
191
2
                    }
192
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
177
8
                [&](auto check_overflow_for_decimal) {
178
20
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
12
                        } else {
186
12
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
12
                                    apply<check_overflow_for_decimal>(
188
12
                                            a[i], b, *type_left, *type_right, res_data_type,
189
12
                                            max_result_number, scale_diff_multiplier));
190
12
                        }
191
12
                    }
192
8
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
177
12
                [&](auto check_overflow_for_decimal) {
178
30
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
18
                        } else {
186
18
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
18
                                    apply<check_overflow_for_decimal>(
188
18
                                            a[i], b, *type_left, *type_right, res_data_type,
189
18
                                            max_result_number, scale_diff_multiplier));
190
18
                        }
191
18
                    }
192
12
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
177
8
                [&](auto check_overflow_for_decimal) {
178
18
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
10
                        } else {
186
10
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
10
                                    apply<check_overflow_for_decimal>(
188
10
                                            a[i], b, *type_left, *type_right, res_data_type,
189
10
                                            max_result_number, scale_diff_multiplier));
190
10
                        }
191
10
                    }
192
8
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Line
Count
Source
177
2
                [&](auto check_overflow_for_decimal) {
178
4
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
2
                        } else {
186
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
2
                                    apply<check_overflow_for_decimal>(
188
2
                                            a[i], b, *type_left, *type_right, res_data_type,
189
2
                                            max_result_number, scale_diff_multiplier));
190
2
                        }
191
2
                    }
192
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
177
2
                [&](auto check_overflow_for_decimal) {
178
4
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
2
                                    apply<check_overflow_for_decimal>(
182
2
                                            a[i].value(), b.value(), *type_left, *type_right,
183
2
                                            res_data_type, max_result_number,
184
2
                                            scale_diff_multiplier));
185
                        } else {
186
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
                                    apply<check_overflow_for_decimal>(
188
                                            a[i], b, *type_left, *type_right, res_data_type,
189
                                            max_result_number, scale_diff_multiplier));
190
                        }
191
2
                    }
192
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
177
13
                [&](auto check_overflow_for_decimal) {
178
35
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
22
                        } else {
186
22
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
22
                                    apply<check_overflow_for_decimal>(
188
22
                                            a[i], b, *type_left, *type_right, res_data_type,
189
22
                                            max_result_number, scale_diff_multiplier));
190
22
                        }
191
22
                    }
192
13
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
177
222
                [&](auto check_overflow_for_decimal) {
178
1.33k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
1.11k
                        } else {
186
1.11k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.11k
                                    apply<check_overflow_for_decimal>(
188
1.11k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.11k
                                            max_result_number, scale_diff_multiplier));
190
1.11k
                        }
191
1.11k
                    }
192
222
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
177
29
                [&](auto check_overflow_for_decimal) {
178
304
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
275
                        } else {
186
275
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
275
                                    apply<check_overflow_for_decimal>(
188
275
                                            a[i], b, *type_left, *type_right, res_data_type,
189
275
                                            max_result_number, scale_diff_multiplier));
190
275
                        }
191
275
                    }
192
29
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Line
Count
Source
177
7
                [&](auto check_overflow_for_decimal) {
178
15
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
8
                        } else {
186
8
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
8
                                    apply<check_overflow_for_decimal>(
188
8
                                            a[i], b, *type_left, *type_right, res_data_type,
189
8
                                            max_result_number, scale_diff_multiplier));
190
8
                        }
191
8
                    }
192
7
                },
193
305
                make_bool_variant(check_overflow_for_decimal));
194
195
305
        return column_result;
196
305
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
168
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
2
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
2
        auto column_result =
171
2
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
2
        DCHECK(column_left_ptr != nullptr);
173
174
2
        const auto& a = column_left_ptr->get_data();
175
2
        auto& c = column_result->get_data();
176
2
        std::visit(
177
2
                [&](auto check_overflow_for_decimal) {
178
2
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
2
                                    apply<check_overflow_for_decimal>(
182
2
                                            a[i].value(), b.value(), *type_left, *type_right,
183
2
                                            res_data_type, max_result_number,
184
2
                                            scale_diff_multiplier));
185
2
                        } else {
186
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
2
                                    apply<check_overflow_for_decimal>(
188
2
                                            a[i], b, *type_left, *type_right, res_data_type,
189
2
                                            max_result_number, scale_diff_multiplier));
190
2
                        }
191
2
                    }
192
2
                },
193
2
                make_bool_variant(check_overflow_for_decimal));
194
195
2
        return column_result;
196
2
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
168
8
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
8
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
8
        auto column_result =
171
8
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
8
        DCHECK(column_left_ptr != nullptr);
173
174
8
        const auto& a = column_left_ptr->get_data();
175
8
        auto& c = column_result->get_data();
176
8
        std::visit(
177
8
                [&](auto check_overflow_for_decimal) {
178
8
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
8
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
8
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
8
                                    apply<check_overflow_for_decimal>(
182
8
                                            a[i].value(), b.value(), *type_left, *type_right,
183
8
                                            res_data_type, max_result_number,
184
8
                                            scale_diff_multiplier));
185
8
                        } else {
186
8
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
8
                                    apply<check_overflow_for_decimal>(
188
8
                                            a[i], b, *type_left, *type_right, res_data_type,
189
8
                                            max_result_number, scale_diff_multiplier));
190
8
                        }
191
8
                    }
192
8
                },
193
8
                make_bool_variant(check_overflow_for_decimal));
194
195
8
        return column_result;
196
8
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
168
12
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
12
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
12
        auto column_result =
171
12
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
12
        DCHECK(column_left_ptr != nullptr);
173
174
12
        const auto& a = column_left_ptr->get_data();
175
12
        auto& c = column_result->get_data();
176
12
        std::visit(
177
12
                [&](auto check_overflow_for_decimal) {
178
12
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
12
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
12
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
12
                                    apply<check_overflow_for_decimal>(
182
12
                                            a[i].value(), b.value(), *type_left, *type_right,
183
12
                                            res_data_type, max_result_number,
184
12
                                            scale_diff_multiplier));
185
12
                        } else {
186
12
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
12
                                    apply<check_overflow_for_decimal>(
188
12
                                            a[i], b, *type_left, *type_right, res_data_type,
189
12
                                            max_result_number, scale_diff_multiplier));
190
12
                        }
191
12
                    }
192
12
                },
193
12
                make_bool_variant(check_overflow_for_decimal));
194
195
12
        return column_result;
196
12
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
168
8
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
8
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
8
        auto column_result =
171
8
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
8
        DCHECK(column_left_ptr != nullptr);
173
174
8
        const auto& a = column_left_ptr->get_data();
175
8
        auto& c = column_result->get_data();
176
8
        std::visit(
177
8
                [&](auto check_overflow_for_decimal) {
178
8
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
8
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
8
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
8
                                    apply<check_overflow_for_decimal>(
182
8
                                            a[i].value(), b.value(), *type_left, *type_right,
183
8
                                            res_data_type, max_result_number,
184
8
                                            scale_diff_multiplier));
185
8
                        } else {
186
8
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
8
                                    apply<check_overflow_for_decimal>(
188
8
                                            a[i], b, *type_left, *type_right, res_data_type,
189
8
                                            max_result_number, scale_diff_multiplier));
190
8
                        }
191
8
                    }
192
8
                },
193
8
                make_bool_variant(check_overflow_for_decimal));
194
195
8
        return column_result;
196
8
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
168
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
2
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
2
        auto column_result =
171
2
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
2
        DCHECK(column_left_ptr != nullptr);
173
174
2
        const auto& a = column_left_ptr->get_data();
175
2
        auto& c = column_result->get_data();
176
2
        std::visit(
177
2
                [&](auto check_overflow_for_decimal) {
178
2
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
2
                                    apply<check_overflow_for_decimal>(
182
2
                                            a[i].value(), b.value(), *type_left, *type_right,
183
2
                                            res_data_type, max_result_number,
184
2
                                            scale_diff_multiplier));
185
2
                        } else {
186
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
2
                                    apply<check_overflow_for_decimal>(
188
2
                                            a[i], b, *type_left, *type_right, res_data_type,
189
2
                                            max_result_number, scale_diff_multiplier));
190
2
                        }
191
2
                    }
192
2
                },
193
2
                make_bool_variant(check_overflow_for_decimal));
194
195
2
        return column_result;
196
2
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15vector_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_14DecimalV2ValueEPKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
168
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
2
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
2
        auto column_result =
171
2
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
2
        DCHECK(column_left_ptr != nullptr);
173
174
2
        const auto& a = column_left_ptr->get_data();
175
2
        auto& c = column_result->get_data();
176
2
        std::visit(
177
2
                [&](auto check_overflow_for_decimal) {
178
2
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
2
                                    apply<check_overflow_for_decimal>(
182
2
                                            a[i].value(), b.value(), *type_left, *type_right,
183
2
                                            res_data_type, max_result_number,
184
2
                                            scale_diff_multiplier));
185
2
                        } else {
186
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
2
                                    apply<check_overflow_for_decimal>(
188
2
                                            a[i], b, *type_left, *type_right, res_data_type,
189
2
                                            max_result_number, scale_diff_multiplier));
190
2
                        }
191
2
                    }
192
2
                },
193
2
                make_bool_variant(check_overflow_for_decimal));
194
195
2
        return column_result;
196
2
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
168
13
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
13
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
13
        auto column_result =
171
13
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
13
        DCHECK(column_left_ptr != nullptr);
173
174
13
        const auto& a = column_left_ptr->get_data();
175
13
        auto& c = column_result->get_data();
176
13
        std::visit(
177
13
                [&](auto check_overflow_for_decimal) {
178
13
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
13
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
13
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
13
                                    apply<check_overflow_for_decimal>(
182
13
                                            a[i].value(), b.value(), *type_left, *type_right,
183
13
                                            res_data_type, max_result_number,
184
13
                                            scale_diff_multiplier));
185
13
                        } else {
186
13
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
13
                                    apply<check_overflow_for_decimal>(
188
13
                                            a[i], b, *type_left, *type_right, res_data_type,
189
13
                                            max_result_number, scale_diff_multiplier));
190
13
                        }
191
13
                    }
192
13
                },
193
13
                make_bool_variant(check_overflow_for_decimal));
194
195
13
        return column_result;
196
13
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIiEEPKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
168
222
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
222
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
222
        auto column_result =
171
222
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
222
        DCHECK(column_left_ptr != nullptr);
173
174
222
        const auto& a = column_left_ptr->get_data();
175
222
        auto& c = column_result->get_data();
176
222
        std::visit(
177
222
                [&](auto check_overflow_for_decimal) {
178
222
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
222
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
222
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
222
                                    apply<check_overflow_for_decimal>(
182
222
                                            a[i].value(), b.value(), *type_left, *type_right,
183
222
                                            res_data_type, max_result_number,
184
222
                                            scale_diff_multiplier));
185
222
                        } else {
186
222
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
222
                                    apply<check_overflow_for_decimal>(
188
222
                                            a[i], b, *type_left, *type_right, res_data_type,
189
222
                                            max_result_number, scale_diff_multiplier));
190
222
                        }
191
222
                    }
192
222
                },
193
222
                make_bool_variant(check_overflow_for_decimal));
194
195
222
        return column_result;
196
222
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIlEEPKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
168
29
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
29
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
29
        auto column_result =
171
29
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
29
        DCHECK(column_left_ptr != nullptr);
173
174
29
        const auto& a = column_left_ptr->get_data();
175
29
        auto& c = column_result->get_data();
176
29
        std::visit(
177
29
                [&](auto check_overflow_for_decimal) {
178
29
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
29
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
29
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
29
                                    apply<check_overflow_for_decimal>(
182
29
                                            a[i].value(), b.value(), *type_left, *type_right,
183
29
                                            res_data_type, max_result_number,
184
29
                                            scale_diff_multiplier));
185
29
                        } else {
186
29
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
29
                                    apply<check_overflow_for_decimal>(
188
29
                                            a[i], b, *type_left, *type_right, res_data_type,
189
29
                                            max_result_number, scale_diff_multiplier));
190
29
                        }
191
29
                    }
192
29
                },
193
29
                make_bool_variant(check_overflow_for_decimal));
194
195
29
        return column_result;
196
29
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_12Decimal128V3EPKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15vector_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_NS_7DecimalIN4wide7integerILm256EiEEEEPKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
168
7
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
7
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
7
        auto column_result =
171
7
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
7
        DCHECK(column_left_ptr != nullptr);
173
174
7
        const auto& a = column_left_ptr->get_data();
175
7
        auto& c = column_result->get_data();
176
7
        std::visit(
177
7
                [&](auto check_overflow_for_decimal) {
178
7
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
7
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
7
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
7
                                    apply<check_overflow_for_decimal>(
182
7
                                            a[i].value(), b.value(), *type_left, *type_right,
183
7
                                            res_data_type, max_result_number,
184
7
                                            scale_diff_multiplier));
185
7
                        } else {
186
7
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
7
                                    apply<check_overflow_for_decimal>(
188
7
                                            a[i], b, *type_left, *type_right, res_data_type,
189
7
                                            max_result_number, scale_diff_multiplier));
190
7
                        }
191
7
                    }
192
7
                },
193
7
                make_bool_variant(check_overflow_for_decimal));
194
195
7
        return column_result;
196
7
    }
197
198
    template <PrimitiveType ResultType>
199
        requires(is_decimal(ResultType))
200
    static ColumnPtr constant_vector(
201
            ArgA a, ColumnPtr column_right, const DataTypeA* type_left, const DataTypeB* type_right,
202
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
203
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
204
3.46k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.46k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.46k
        auto column_result =
207
3.46k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.46k
        auto& b = column_right_ptr->get_data();
210
3.46k
        auto& c = column_result->get_data();
211
3.46k
        std::visit(
212
3.46k
                [&](auto check_overflow_for_decimal) {
213
5.28M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5.27M
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
4
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
4
                                    apply<check_overflow_for_decimal>(
217
4
                                            a.value(), b[i].value(), *type_left, *type_right,
218
4
                                            res_data_type, max_result_number,
219
4
                                            scale_diff_multiplier));
220
5.27M
                        } else {
221
5.27M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5.27M
                                    apply<check_overflow_for_decimal>(
223
5.27M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5.27M
                                            max_result_number, scale_diff_multiplier));
225
5.27M
                        }
226
5.27M
                    }
227
3.46k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
6
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2.98k
                [&](auto check_overflow_for_decimal) {
213
2.99M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
2.98M
                        } else {
221
2.98M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.98M
                                    apply<check_overflow_for_decimal>(
223
2.98M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.98M
                                            max_result_number, scale_diff_multiplier));
225
2.98M
                        }
226
2.98M
                    }
227
2.98k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
5
                [&](auto check_overflow_for_decimal) {
213
16
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
11
                        } else {
221
11
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
11
                                    apply<check_overflow_for_decimal>(
223
11
                                            a, b[i], *type_left, *type_right, res_data_type,
224
11
                                            max_result_number, scale_diff_multiplier));
225
11
                        }
226
11
                    }
227
5
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
3
                        } else {
221
3
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3
                                    apply<check_overflow_for_decimal>(
223
3
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3
                                            max_result_number, scale_diff_multiplier));
225
3
                        }
226
3
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
471
                [&](auto check_overflow_for_decimal) {
213
2.29M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
2.29M
                        } else {
221
2.29M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.29M
                                    apply<check_overflow_for_decimal>(
223
2.29M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.29M
                                            max_result_number, scale_diff_multiplier));
225
2.29M
                        }
226
2.29M
                    }
227
471
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
228
3.46k
                make_bool_variant(check_overflow_for_decimal));
229
3.46k
        return column_result;
230
3.46k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2.98k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2.98k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2.98k
        auto column_result =
207
2.98k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2.98k
        auto& b = column_right_ptr->get_data();
210
2.98k
        auto& c = column_result->get_data();
211
2.98k
        std::visit(
212
2.98k
                [&](auto check_overflow_for_decimal) {
213
2.98k
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2.98k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2.98k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2.98k
                                    apply<check_overflow_for_decimal>(
217
2.98k
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2.98k
                                            res_data_type, max_result_number,
219
2.98k
                                            scale_diff_multiplier));
220
2.98k
                        } else {
221
2.98k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.98k
                                    apply<check_overflow_for_decimal>(
223
2.98k
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.98k
                                            max_result_number, scale_diff_multiplier));
225
2.98k
                        }
226
2.98k
                    }
227
2.98k
                },
228
2.98k
                make_bool_variant(check_overflow_for_decimal));
229
2.98k
        return column_result;
230
2.98k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
5
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
5
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
5
        auto column_result =
207
5
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
5
        auto& b = column_right_ptr->get_data();
210
5
        auto& c = column_result->get_data();
211
5
        std::visit(
212
5
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
5
                                    apply<check_overflow_for_decimal>(
217
5
                                            a.value(), b[i].value(), *type_left, *type_right,
218
5
                                            res_data_type, max_result_number,
219
5
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
5
                },
228
5
                make_bool_variant(check_overflow_for_decimal));
229
5
        return column_result;
230
5
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
471
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
471
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
471
        auto column_result =
207
471
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
471
        auto& b = column_right_ptr->get_data();
210
471
        auto& c = column_result->get_data();
211
471
        std::visit(
212
471
                [&](auto check_overflow_for_decimal) {
213
471
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
471
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
471
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
471
                                    apply<check_overflow_for_decimal>(
217
471
                                            a.value(), b[i].value(), *type_left, *type_right,
218
471
                                            res_data_type, max_result_number,
219
471
                                            scale_diff_multiplier));
220
471
                        } else {
221
471
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
471
                                    apply<check_overflow_for_decimal>(
223
471
                                            a, b[i], *type_left, *type_right, res_data_type,
224
471
                                            max_result_number, scale_diff_multiplier));
225
471
                        }
226
471
                    }
227
471
                },
228
471
                make_bool_variant(check_overflow_for_decimal));
229
471
        return column_result;
230
471
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
231
232
    /*
233
    select 999999999999999999999999999 * 999999999999999999999999999;
234
    999999999999999999999999998000000000.000000000000000001 54 digits
235
    */
236
    template <bool check_overflow>
237
    static void vector_vector(const ColumnDecimal128V2::Container::value_type* __restrict a,
238
                              const ColumnDecimal128V2::Container::value_type* __restrict b,
239
                              ColumnDecimal128V2::Container::value_type* c, size_t size) {
240
        auto sng_uptr = std::unique_ptr<int8_t[]>(new int8_t[size]);
241
        int8_t* sgn = sng_uptr.get();
242
        auto max = DecimalV2Value::get_max_decimal();
243
        auto min = DecimalV2Value::get_min_decimal();
244
245
        for (int i = 0; i < size; i++) {
246
            sgn[i] = ((DecimalV2Value(a[i]).value() > 0) && (DecimalV2Value(b[i]).value() > 0)) ||
247
                                     ((DecimalV2Value(a[i]).value() < 0) &&
248
                                      (DecimalV2Value(b[i]).value() < 0))
249
                             ? 1
250
                     : ((DecimalV2Value(a[i]).value() == 0) || (DecimalV2Value(b[i]).value() == 0))
251
                             ? 0
252
                             : -1;
253
        }
254
255
        for (int i = 0; i < size; i++) {
256
            if constexpr (check_overflow) {
257
                int128_t i128_mul_result;
258
                if (common::mul_overflow(DecimalV2Value(a[i]).value(), DecimalV2Value(b[i]).value(),
259
                                         i128_mul_result)) {
260
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
261
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
262
                                    DecimalV2Value(a[i]).to_string(), "add",
263
                                    DecimalV2Value(b[i]).to_string(),
264
                                    DecimalV2Value(i128_mul_result).to_string(), "decimalv2");
265
                }
266
                c[i] = DecimalV2Value((i128_mul_result - sgn[i]) / DecimalV2Value::ONE_BILLION +
267
                                      sgn[i]);
268
                if (c[i].value() > max.value() || c[i].value() < min.value()) {
269
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
270
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
271
                                    DecimalV2Value(a[i]).to_string(), "add",
272
                                    DecimalV2Value(b[i]).to_string(),
273
                                    DecimalV2Value(i128_mul_result).to_string(), "decimalv2");
274
                }
275
            } else {
276
                c[i] = DecimalV2Value(
277
                        (DecimalV2Value(a[i]).value() * DecimalV2Value(b[i]).value() - sgn[i]) /
278
                                DecimalV2Value::ONE_BILLION +
279
                        sgn[i]);
280
            }
281
        }
282
    }
283
284
    template <typename T>
285
    static int8_t sgn(const T& x) {
286
        return (x > 0) ? 1 : ((x < 0) ? -1 : 0);
287
    }
288
289
    template <PrimitiveType ResultType>
290
        requires(is_decimal(ResultType))
291
    static ColumnPtr vector_vector(
292
            ColumnPtr column_left, ColumnPtr column_right, const DataTypeA* type_left,
293
            const DataTypeB* type_right,
294
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
295
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
296
2.17k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
2.17k
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
2.17k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
2.17k
        auto column_result =
301
2.17k
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
2.17k
        auto sz = column_left->size();
303
2.17k
        const auto& a = column_left_ptr->get_data().data();
304
2.17k
        const auto& b = column_right_ptr->get_data().data();
305
2.17k
        const auto& c = column_result->get_data().data();
306
2.17k
        std::visit(
307
2.18k
                [&](auto check_overflow_for_decimal) {
308
142k
                    for (size_t i = 0; i < sz; i++) {
309
140k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
1.86k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
1.86k
                                    apply<check_overflow_for_decimal>(
312
1.86k
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
1.86k
                                            res_data_type, max_result_number,
314
1.86k
                                            scale_diff_multiplier));
315
138k
                        } else {
316
138k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
138k
                                    apply<check_overflow_for_decimal>(
318
138k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
138k
                                            max_result_number, scale_diff_multiplier));
320
138k
                        }
321
140k
                    }
322
2.18k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
154
                [&](auto check_overflow_for_decimal) {
308
1.08k
                    for (size_t i = 0; i < sz; i++) {
309
933
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
933
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
933
                                    apply<check_overflow_for_decimal>(
312
933
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
933
                                            res_data_type, max_result_number,
314
933
                                            scale_diff_multiplier));
315
                        } else {
316
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
                                    apply<check_overflow_for_decimal>(
318
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
                                            max_result_number, scale_diff_multiplier));
320
                        }
321
933
                    }
322
154
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
60
                [&](auto check_overflow_for_decimal) {
308
431
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
371
                        } else {
316
371
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
371
                                    apply<check_overflow_for_decimal>(
318
371
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
371
                                            max_result_number, scale_diff_multiplier));
320
371
                        }
321
371
                    }
322
60
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
167
                [&](auto check_overflow_for_decimal) {
308
1.07k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
909
                        } else {
316
909
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
909
                                    apply<check_overflow_for_decimal>(
318
909
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
909
                                            max_result_number, scale_diff_multiplier));
320
909
                        }
321
909
                    }
322
167
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
563
                [&](auto check_overflow_for_decimal) {
308
132k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
131k
                        } else {
316
131k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
131k
                                    apply<check_overflow_for_decimal>(
318
131k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
131k
                                            max_result_number, scale_diff_multiplier));
320
131k
                        }
321
131k
                    }
322
563
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
24
                [&](auto check_overflow_for_decimal) {
308
52
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
28
                        } else {
316
28
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
28
                                    apply<check_overflow_for_decimal>(
318
28
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
28
                                            max_result_number, scale_diff_multiplier));
320
28
                        }
321
28
                    }
322
24
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
154
                [&](auto check_overflow_for_decimal) {
308
1.08k
                    for (size_t i = 0; i < sz; i++) {
309
933
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
933
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
933
                                    apply<check_overflow_for_decimal>(
312
933
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
933
                                            res_data_type, max_result_number,
314
933
                                            scale_diff_multiplier));
315
                        } else {
316
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
                                    apply<check_overflow_for_decimal>(
318
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
                                            max_result_number, scale_diff_multiplier));
320
                        }
321
933
                    }
322
154
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
58
                [&](auto check_overflow_for_decimal) {
308
411
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
353
                        } else {
316
353
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
353
                                    apply<check_overflow_for_decimal>(
318
353
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
353
                                            max_result_number, scale_diff_multiplier));
320
353
                        }
321
353
                    }
322
58
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
250
                [&](auto check_overflow_for_decimal) {
308
1.37k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
1.12k
                        } else {
316
1.12k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
1.12k
                                    apply<check_overflow_for_decimal>(
318
1.12k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
1.12k
                                            max_result_number, scale_diff_multiplier));
320
1.12k
                        }
321
1.12k
                    }
322
250
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
683
                [&](auto check_overflow_for_decimal) {
308
4.25k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
3.57k
                        } else {
316
3.57k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
3.57k
                                    apply<check_overflow_for_decimal>(
318
3.57k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
3.57k
                                            max_result_number, scale_diff_multiplier));
320
3.57k
                        }
321
3.57k
                    }
322
683
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
74
                [&](auto check_overflow_for_decimal) {
308
150
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
76
                        } else {
316
76
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
76
                                    apply<check_overflow_for_decimal>(
318
76
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
76
                                            max_result_number, scale_diff_multiplier));
320
76
                        }
321
76
                    }
322
74
                },
323
2.17k
                make_bool_variant(check_overflow_for_decimal));
324
2.17k
        return column_result;
325
2.17k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
154
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
154
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
154
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
154
        auto column_result =
301
154
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
154
        auto sz = column_left->size();
303
154
        const auto& a = column_left_ptr->get_data().data();
304
154
        const auto& b = column_right_ptr->get_data().data();
305
154
        const auto& c = column_result->get_data().data();
306
154
        std::visit(
307
154
                [&](auto check_overflow_for_decimal) {
308
154
                    for (size_t i = 0; i < sz; i++) {
309
154
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
154
                                    apply<check_overflow_for_decimal>(
312
154
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
154
                                            res_data_type, max_result_number,
314
154
                                            scale_diff_multiplier));
315
154
                        } else {
316
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
154
                                    apply<check_overflow_for_decimal>(
318
154
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
154
                                            max_result_number, scale_diff_multiplier));
320
154
                        }
321
154
                    }
322
154
                },
323
154
                make_bool_variant(check_overflow_for_decimal));
324
154
        return column_result;
325
154
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
59
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
59
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
59
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
59
        auto column_result =
301
59
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
59
        auto sz = column_left->size();
303
59
        const auto& a = column_left_ptr->get_data().data();
304
59
        const auto& b = column_right_ptr->get_data().data();
305
59
        const auto& c = column_result->get_data().data();
306
59
        std::visit(
307
59
                [&](auto check_overflow_for_decimal) {
308
59
                    for (size_t i = 0; i < sz; i++) {
309
59
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
59
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
59
                                    apply<check_overflow_for_decimal>(
312
59
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
59
                                            res_data_type, max_result_number,
314
59
                                            scale_diff_multiplier));
315
59
                        } else {
316
59
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
59
                                    apply<check_overflow_for_decimal>(
318
59
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
59
                                            max_result_number, scale_diff_multiplier));
320
59
                        }
321
59
                    }
322
59
                },
323
59
                make_bool_variant(check_overflow_for_decimal));
324
59
        return column_result;
325
59
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
164
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
164
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
164
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
164
        auto column_result =
301
164
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
164
        auto sz = column_left->size();
303
164
        const auto& a = column_left_ptr->get_data().data();
304
164
        const auto& b = column_right_ptr->get_data().data();
305
164
        const auto& c = column_result->get_data().data();
306
164
        std::visit(
307
164
                [&](auto check_overflow_for_decimal) {
308
164
                    for (size_t i = 0; i < sz; i++) {
309
164
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
164
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
164
                                    apply<check_overflow_for_decimal>(
312
164
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
164
                                            res_data_type, max_result_number,
314
164
                                            scale_diff_multiplier));
315
164
                        } else {
316
164
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
164
                                    apply<check_overflow_for_decimal>(
318
164
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
164
                                            max_result_number, scale_diff_multiplier));
320
164
                        }
321
164
                    }
322
164
                },
323
164
                make_bool_variant(check_overflow_for_decimal));
324
164
        return column_result;
325
164
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
558
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
558
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
558
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
558
        auto column_result =
301
558
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
558
        auto sz = column_left->size();
303
558
        const auto& a = column_left_ptr->get_data().data();
304
558
        const auto& b = column_right_ptr->get_data().data();
305
558
        const auto& c = column_result->get_data().data();
306
558
        std::visit(
307
558
                [&](auto check_overflow_for_decimal) {
308
558
                    for (size_t i = 0; i < sz; i++) {
309
558
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
558
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
558
                                    apply<check_overflow_for_decimal>(
312
558
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
558
                                            res_data_type, max_result_number,
314
558
                                            scale_diff_multiplier));
315
558
                        } else {
316
558
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
558
                                    apply<check_overflow_for_decimal>(
318
558
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
558
                                            max_result_number, scale_diff_multiplier));
320
558
                        }
321
558
                    }
322
558
                },
323
558
                make_bool_variant(check_overflow_for_decimal));
324
558
        return column_result;
325
558
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
24
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
24
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
24
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
24
        auto column_result =
301
24
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
24
        auto sz = column_left->size();
303
24
        const auto& a = column_left_ptr->get_data().data();
304
24
        const auto& b = column_right_ptr->get_data().data();
305
24
        const auto& c = column_result->get_data().data();
306
24
        std::visit(
307
24
                [&](auto check_overflow_for_decimal) {
308
24
                    for (size_t i = 0; i < sz; i++) {
309
24
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
24
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
24
                                    apply<check_overflow_for_decimal>(
312
24
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
24
                                            res_data_type, max_result_number,
314
24
                                            scale_diff_multiplier));
315
24
                        } else {
316
24
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
24
                                    apply<check_overflow_for_decimal>(
318
24
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
24
                                            max_result_number, scale_diff_multiplier));
320
24
                        }
321
24
                    }
322
24
                },
323
24
                make_bool_variant(check_overflow_for_decimal));
324
24
        return column_result;
325
24
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
154
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
154
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
154
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
154
        auto column_result =
301
154
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
154
        auto sz = column_left->size();
303
154
        const auto& a = column_left_ptr->get_data().data();
304
154
        const auto& b = column_right_ptr->get_data().data();
305
154
        const auto& c = column_result->get_data().data();
306
154
        std::visit(
307
154
                [&](auto check_overflow_for_decimal) {
308
154
                    for (size_t i = 0; i < sz; i++) {
309
154
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
154
                                    apply<check_overflow_for_decimal>(
312
154
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
154
                                            res_data_type, max_result_number,
314
154
                                            scale_diff_multiplier));
315
154
                        } else {
316
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
154
                                    apply<check_overflow_for_decimal>(
318
154
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
154
                                            max_result_number, scale_diff_multiplier));
320
154
                        }
321
154
                    }
322
154
                },
323
154
                make_bool_variant(check_overflow_for_decimal));
324
154
        return column_result;
325
154
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
57
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
57
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
57
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
57
        auto column_result =
301
57
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
57
        auto sz = column_left->size();
303
57
        const auto& a = column_left_ptr->get_data().data();
304
57
        const auto& b = column_right_ptr->get_data().data();
305
57
        const auto& c = column_result->get_data().data();
306
57
        std::visit(
307
57
                [&](auto check_overflow_for_decimal) {
308
57
                    for (size_t i = 0; i < sz; i++) {
309
57
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
57
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
57
                                    apply<check_overflow_for_decimal>(
312
57
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
57
                                            res_data_type, max_result_number,
314
57
                                            scale_diff_multiplier));
315
57
                        } else {
316
57
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
57
                                    apply<check_overflow_for_decimal>(
318
57
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
57
                                            max_result_number, scale_diff_multiplier));
320
57
                        }
321
57
                    }
322
57
                },
323
57
                make_bool_variant(check_overflow_for_decimal));
324
57
        return column_result;
325
57
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
249
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
249
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
249
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
249
        auto column_result =
301
249
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
249
        auto sz = column_left->size();
303
249
        const auto& a = column_left_ptr->get_data().data();
304
249
        const auto& b = column_right_ptr->get_data().data();
305
249
        const auto& c = column_result->get_data().data();
306
249
        std::visit(
307
249
                [&](auto check_overflow_for_decimal) {
308
249
                    for (size_t i = 0; i < sz; i++) {
309
249
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
249
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
249
                                    apply<check_overflow_for_decimal>(
312
249
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
249
                                            res_data_type, max_result_number,
314
249
                                            scale_diff_multiplier));
315
249
                        } else {
316
249
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
249
                                    apply<check_overflow_for_decimal>(
318
249
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
249
                                            max_result_number, scale_diff_multiplier));
320
249
                        }
321
249
                    }
322
249
                },
323
249
                make_bool_variant(check_overflow_for_decimal));
324
249
        return column_result;
325
249
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
682
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
682
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
682
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
682
        auto column_result =
301
682
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
682
        auto sz = column_left->size();
303
682
        const auto& a = column_left_ptr->get_data().data();
304
682
        const auto& b = column_right_ptr->get_data().data();
305
682
        const auto& c = column_result->get_data().data();
306
682
        std::visit(
307
682
                [&](auto check_overflow_for_decimal) {
308
682
                    for (size_t i = 0; i < sz; i++) {
309
682
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
682
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
682
                                    apply<check_overflow_for_decimal>(
312
682
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
682
                                            res_data_type, max_result_number,
314
682
                                            scale_diff_multiplier));
315
682
                        } else {
316
682
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
682
                                    apply<check_overflow_for_decimal>(
318
682
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
682
                                            max_result_number, scale_diff_multiplier));
320
682
                        }
321
682
                    }
322
682
                },
323
682
                make_bool_variant(check_overflow_for_decimal));
324
682
        return column_result;
325
682
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
74
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
74
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
74
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
74
        auto column_result =
301
74
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
74
        auto sz = column_left->size();
303
74
        const auto& a = column_left_ptr->get_data().data();
304
74
        const auto& b = column_right_ptr->get_data().data();
305
74
        const auto& c = column_result->get_data().data();
306
74
        std::visit(
307
74
                [&](auto check_overflow_for_decimal) {
308
74
                    for (size_t i = 0; i < sz; i++) {
309
74
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
74
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
74
                                    apply<check_overflow_for_decimal>(
312
74
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
74
                                            res_data_type, max_result_number,
314
74
                                            scale_diff_multiplier));
315
74
                        } else {
316
74
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
74
                                    apply<check_overflow_for_decimal>(
318
74
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
74
                                            max_result_number, scale_diff_multiplier));
320
74
                        }
321
74
                    }
322
74
                },
323
74
                make_bool_variant(check_overflow_for_decimal));
324
74
        return column_result;
325
74
    }
326
327
    template <bool check_overflow, PrimitiveType ResultType>
328
        requires(is_decimal(ResultType))
329
    static ALWAYS_INLINE typename PrimitiveTypeTraits<ResultType>::CppType::NativeType apply(
330
            ArgNativeTypeA a, ArgNativeTypeB b, const DataTypeA& type_left,
331
            const DataTypeB& type_right, const DataTypeDecimal<ResultType>& type_result,
332
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
333
5.41M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
5.41M
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
1.88k
            if constexpr (check_overflow) {
337
1.88k
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
1.88k
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
18
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
18
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
18
                                    DecimalV2Value(a).to_string(), "add",
342
18
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
18
                                    type_to_string(ResultType));
344
18
                }
345
1.86k
                return res;
346
1.88k
            } else {
347
0
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
0
            }
349
5.40M
        } else {
350
5.40M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
5.40M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
5.40M
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
1
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
1
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
1
                                    type_left.to_string(ArgA(a)), "add",
357
1
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
1
                                    type_result.get_name());
359
5.40M
                } else {
360
5.40M
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
4
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
4
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
4
                                        type_left.to_string(ArgA(a)), "add",
364
4
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
4
                                        type_result.get_name());
366
4
                    }
367
5.40M
                }
368
5.40M
                return res;
369
5.40M
            } else {
370
0
                res = Impl::template apply<ResultType>(a, b);
371
0
                return res;
372
0
            }
373
5.40M
        }
374
5.41M
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb1ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
943
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
943
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
943
            if constexpr (check_overflow) {
337
943
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
943
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
9
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
9
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
9
                                    DecimalV2Value(a).to_string(), "add",
342
9
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
9
                                    type_to_string(ResultType));
344
9
                }
345
934
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
        } else {
350
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
                                    type_left.to_string(ArgA(a)), "add",
357
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
                                    type_result.get_name());
359
                } else {
360
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
                                        type_left.to_string(ArgA(a)), "add",
364
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
                                        type_result.get_name());
366
                    }
367
                }
368
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
        }
374
943
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb0ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
388
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
388
        } else {
350
388
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
388
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
388
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
388
                } else {
360
388
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
388
                }
368
388
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
388
        }
374
388
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
2.98M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
2.98M
        } else {
350
2.98M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.98M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.98M
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
2.98M
                } else {
360
2.98M
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
2.98M
                }
368
2.98M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.98M
        }
374
2.98M
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
131k
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
131k
        } else {
350
131k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
131k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
131k
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
131k
                } else {
360
131k
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
131k
                }
368
131k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
131k
        }
374
131k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Line
Count
Source
333
31
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
31
        } else {
350
31
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
31
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
31
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
31
                } else {
360
31
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
31
                }
368
31
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
31
        }
374
31
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb1ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
943
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
943
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
943
            if constexpr (check_overflow) {
337
943
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
943
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
9
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
9
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
9
                                    DecimalV2Value(a).to_string(), "add",
342
9
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
9
                                    type_to_string(ResultType));
344
9
                }
345
934
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
        } else {
350
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
                                    type_left.to_string(ArgA(a)), "add",
357
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
                                    type_result.get_name());
359
                } else {
360
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
                                        type_left.to_string(ArgA(a)), "add",
364
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
                                        type_result.get_name());
366
                    }
367
                }
368
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
        }
374
943
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb0ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
435
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
435
        } else {
350
435
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
435
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
435
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
435
                } else {
360
435
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
435
                }
368
435
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
435
        }
374
435
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
2.28M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
2.28M
        } else {
350
2.28M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.28M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.28M
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
2.28M
                } else {
360
2.28M
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
2.28M
                }
368
2.28M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.28M
        }
374
2.28M
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
3.84k
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
3.84k
        } else {
350
3.84k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.84k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.84k
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
1
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
1
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
1
                                    type_left.to_string(ArgA(a)), "add",
357
1
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
1
                                    type_result.get_name());
359
3.84k
                } else {
360
3.84k
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
4
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
4
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
4
                                        type_left.to_string(ArgA(a)), "add",
364
4
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
4
                                        type_result.get_name());
366
4
                    }
367
3.84k
                }
368
3.84k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.84k
        }
374
3.84k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Line
Count
Source
333
86
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
86
        } else {
350
86
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
86
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
86
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
86
                } else {
360
86
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
86
                }
368
86
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
86
        }
374
86
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
375
376
    template <PrimitiveType PT>
377
    static std::pair<typename PrimitiveTypeTraits<PT>::CppType,
378
                     typename PrimitiveTypeTraits<PT>::CppType>
379
    get_max_and_multiplier(const DataTypeA* type_left, const DataTypeB* type_right,
380
6.01k
                           const DataTypeDecimal<PT>& type_result) {
381
6.01k
        auto max_result_number =
382
6.01k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
6.01k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
6.01k
        auto result_scale = type_result.get_scale();
386
6.01k
        DCHECK(orig_result_scale >= result_scale);
387
6.01k
        auto scale_diff_multiplier =
388
6.01k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
6.01k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
6.01k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
6.01k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
164
                           const DataTypeDecimal<PT>& type_result) {
381
164
        auto max_result_number =
382
164
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
164
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
164
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
164
        auto scale_diff_multiplier =
388
164
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
164
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
164
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
164
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
67
                           const DataTypeDecimal<PT>& type_result) {
381
67
        auto max_result_number =
382
67
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
67
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
67
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
67
        auto scale_diff_multiplier =
388
67
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
67
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
67
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
67
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
3.16k
                           const DataTypeDecimal<PT>& type_result) {
381
3.16k
        auto max_result_number =
382
3.16k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
3.16k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
3.16k
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
3.16k
        auto scale_diff_multiplier =
388
3.16k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
3.16k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
3.16k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
3.16k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
571
                           const DataTypeDecimal<PT>& type_result) {
381
571
        auto max_result_number =
382
571
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
571
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
571
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
571
        auto scale_diff_multiplier =
388
571
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
571
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
571
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
571
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
27
                           const DataTypeDecimal<PT>& type_result) {
381
27
        auto max_result_number =
382
27
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
27
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
27
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
27
        auto scale_diff_multiplier =
388
27
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
27
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
27
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
27
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
164
                           const DataTypeDecimal<PT>& type_result) {
381
164
        auto max_result_number =
382
164
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
164
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
164
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
164
        auto scale_diff_multiplier =
388
164
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
164
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
164
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
164
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
129
                           const DataTypeDecimal<PT>& type_result) {
381
129
        auto max_result_number =
382
129
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
129
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
129
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
129
        auto scale_diff_multiplier =
388
129
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
129
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
129
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
129
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
943
                           const DataTypeDecimal<PT>& type_result) {
381
943
        auto max_result_number =
382
943
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
943
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
943
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
943
        auto scale_diff_multiplier =
388
943
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
943
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
943
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
943
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
710
                           const DataTypeDecimal<PT>& type_result) {
381
710
        auto max_result_number =
382
710
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
710
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
710
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
710
        auto scale_diff_multiplier =
388
710
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
710
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
710
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
710
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
83
                           const DataTypeDecimal<PT>& type_result) {
381
83
        auto max_result_number =
382
83
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
83
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
83
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
83
        auto scale_diff_multiplier =
388
83
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
83
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
83
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
83
    }
392
};
393
394
template <typename Impl>
395
class FunctionPlusMinus : public IFunction {
396
    static constexpr bool result_is_decimal = Impl::result_is_decimal;
397
398
public:
399
    static constexpr auto name = Impl::name;
400
401
20.0k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE6createEv
Line
Count
Source
401
60
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE6createEv
Line
Count
Source
401
33
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE6createEv
Line
Count
Source
401
192
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
161
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE6createEv
Line
Count
Source
401
20
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE6createEv
Line
Count
Source
401
11
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE6createEv
Line
Count
Source
401
24
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE6createEv
Line
Count
Source
401
122
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE6createEv
Line
Count
Source
401
12.5k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE6createEv
Line
Count
Source
401
47
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE6createEv
Line
Count
Source
401
450
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE6createEv
Line
Count
Source
401
9
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE6createEv
Line
Count
Source
401
60
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE6createEv
Line
Count
Source
401
41
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE6createEv
Line
Count
Source
401
225
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
249
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE6createEv
Line
Count
Source
401
90
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE6createEv
Line
Count
Source
401
9
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE6createEv
Line
Count
Source
401
236
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE6createEv
Line
Count
Source
401
53
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE6createEv
Line
Count
Source
401
4.57k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE6createEv
Line
Count
Source
401
206
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE6createEv
Line
Count
Source
401
615
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE6createEv
Line
Count
Source
401
10
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
402
403
20.0k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEEC2Ev
Line
Count
Source
403
60
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEEC2Ev
Line
Count
Source
403
33
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEEC2Ev
Line
Count
Source
403
192
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
161
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEEC2Ev
Line
Count
Source
403
20
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEEC2Ev
Line
Count
Source
403
11
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEEC2Ev
Line
Count
Source
403
24
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
122
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
12.5k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
47
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
450
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEEC2Ev
Line
Count
Source
403
9
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEEC2Ev
Line
Count
Source
403
60
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEEC2Ev
Line
Count
Source
403
41
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEEC2Ev
Line
Count
Source
403
225
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
249
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEEC2Ev
Line
Count
Source
403
90
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEEC2Ev
Line
Count
Source
403
9
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEEC2Ev
Line
Count
Source
403
236
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
53
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
4.57k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
206
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
615
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEEC2Ev
Line
Count
Source
403
10
    FunctionPlusMinus() = default;
404
405
35
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
406
407
14.1k
    bool need_replace_null_data_to_default() const override {
408
14.1k
        return Impl::need_replace_null_data_to_default;
409
14.1k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
122
    bool need_replace_null_data_to_default() const override {
408
122
        return Impl::need_replace_null_data_to_default;
409
122
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
41
    bool need_replace_null_data_to_default() const override {
408
41
        return Impl::need_replace_null_data_to_default;
409
41
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
117
    bool need_replace_null_data_to_default() const override {
408
117
        return Impl::need_replace_null_data_to_default;
409
117
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
312
    bool need_replace_null_data_to_default() const override {
408
312
        return Impl::need_replace_null_data_to_default;
409
312
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
26
    bool need_replace_null_data_to_default() const override {
408
26
        return Impl::need_replace_null_data_to_default;
409
26
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
24
    bool need_replace_null_data_to_default() const override {
408
24
        return Impl::need_replace_null_data_to_default;
409
24
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
75
    bool need_replace_null_data_to_default() const override {
408
75
        return Impl::need_replace_null_data_to_default;
409
75
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.50k
    bool need_replace_null_data_to_default() const override {
408
1.50k
        return Impl::need_replace_null_data_to_default;
409
1.50k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
76
    bool need_replace_null_data_to_default() const override {
408
76
        return Impl::need_replace_null_data_to_default;
409
76
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
2.48k
    bool need_replace_null_data_to_default() const override {
408
2.48k
        return Impl::need_replace_null_data_to_default;
409
2.48k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
122
    bool need_replace_null_data_to_default() const override {
408
122
        return Impl::need_replace_null_data_to_default;
409
122
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
45
    bool need_replace_null_data_to_default() const override {
408
45
        return Impl::need_replace_null_data_to_default;
409
45
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
377
    bool need_replace_null_data_to_default() const override {
408
377
        return Impl::need_replace_null_data_to_default;
409
377
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
427
    bool need_replace_null_data_to_default() const override {
408
427
        return Impl::need_replace_null_data_to_default;
409
427
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
18
    bool need_replace_null_data_to_default() const override {
408
18
        return Impl::need_replace_null_data_to_default;
409
18
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
477
    bool need_replace_null_data_to_default() const override {
408
477
        return Impl::need_replace_null_data_to_default;
409
477
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
118
    bool need_replace_null_data_to_default() const override {
408
118
        return Impl::need_replace_null_data_to_default;
409
118
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
6.12k
    bool need_replace_null_data_to_default() const override {
408
6.12k
        return Impl::need_replace_null_data_to_default;
409
6.12k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
186
    bool need_replace_null_data_to_default() const override {
408
186
        return Impl::need_replace_null_data_to_default;
409
186
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.48k
    bool need_replace_null_data_to_default() const override {
408
1.48k
        return Impl::need_replace_null_data_to_default;
409
1.48k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
410
411
19.7k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
51
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
24
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
183
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
152
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
11
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
2
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
15
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
113
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
12.4k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
38
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
441
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE23get_number_of_argumentsEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
51
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
32
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
216
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
240
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
81
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE23get_number_of_argumentsEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
227
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
44
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
4.56k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
197
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
606
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
1
    size_t get_number_of_arguments() const override { return 2; }
412
413
192
    DataTypes get_variadic_argument_types_impl() const override {
414
192
        return Impl::get_variadic_argument_types();
415
192
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
416
417
19.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
19.8k
        return arguments[0];
419
19.8k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
51
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
51
        return arguments[0];
419
51
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
24
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
24
        return arguments[0];
419
24
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
183
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
183
        return arguments[0];
419
183
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
152
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
152
        return arguments[0];
419
152
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
11
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
11
        return arguments[0];
419
11
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
2
        return arguments[0];
419
2
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
15
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
15
        return arguments[0];
419
15
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
113
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
113
        return arguments[0];
419
113
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
12.5k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
12.5k
        return arguments[0];
419
12.5k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
38
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
38
        return arguments[0];
419
38
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
441
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
441
        return arguments[0];
419
441
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
51
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
51
        return arguments[0];
419
51
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
32
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
32
        return arguments[0];
419
32
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
216
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
216
        return arguments[0];
419
216
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
240
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
240
        return arguments[0];
419
240
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
81
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
81
        return arguments[0];
419
81
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
227
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
227
        return arguments[0];
419
227
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
44
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
44
        return arguments[0];
419
44
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
4.56k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
4.56k
        return arguments[0];
419
4.56k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
197
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
197
        return arguments[0];
419
197
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
606
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
606
        return arguments[0];
419
606
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
1
        return arguments[0];
419
1
    }
420
421
118k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
500
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
201
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.63k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.64k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
192
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
140
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
416
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
44.5k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
418
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
8.50k
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE40use_default_implementation_for_constantsEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
500
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
486
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.95k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.25k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
431
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE40use_default_implementation_for_constantsEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.17k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
544
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
38.2k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.28k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.05k
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE40use_default_implementation_for_constantsEv
422
423
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
424
34.9k
                        uint32_t result, size_t input_rows_count) const override {
425
34.9k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
34.9k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
34.9k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
34.9k
                block.get_by_position(arguments[0]).type.get());
429
34.9k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
34.9k
                block.get_by_position(arguments[1]).type.get());
431
34.9k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
34.9k
        bool is_const_left = is_column_const(*column_left);
433
34.9k
        bool is_const_right = is_column_const(*column_right);
434
435
34.9k
        ColumnPtr column_result = nullptr;
436
34.9k
        if (is_const_left && is_const_right) {
437
216
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
216
                                              res_data_type, context->check_overflow_for_decimal());
439
34.7k
        } else if (is_const_left) {
440
4.18k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
4.18k
                                            res_data_type, context->check_overflow_for_decimal());
442
30.5k
        } else if (is_const_right) {
443
5.47k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
5.47k
                                            res_data_type, context->check_overflow_for_decimal());
445
25.1k
        } else {
446
25.1k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
25.1k
                                          res_data_type, context->check_overflow_for_decimal());
448
25.1k
        }
449
34.9k
        block.replace_by_position(result, std::move(column_result));
450
34.9k
        return Status::OK();
451
34.9k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
164
                        uint32_t result, size_t input_rows_count) const override {
425
164
        auto& column_left = block.get_by_position(arguments[0]).column;
426
164
        auto& column_right = block.get_by_position(arguments[1]).column;
427
164
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
164
                block.get_by_position(arguments[0]).type.get());
429
164
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
164
                block.get_by_position(arguments[1]).type.get());
431
164
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
164
        bool is_const_left = is_column_const(*column_left);
433
164
        bool is_const_right = is_column_const(*column_right);
434
435
164
        ColumnPtr column_result = nullptr;
436
164
        if (is_const_left && is_const_right) {
437
6
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
6
                                              res_data_type, context->check_overflow_for_decimal());
439
158
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
156
        } else if (is_const_right) {
443
2
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
2
                                            res_data_type, context->check_overflow_for_decimal());
445
154
        } else {
446
154
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
154
                                          res_data_type, context->check_overflow_for_decimal());
448
154
        }
449
164
        block.replace_by_position(result, std::move(column_result));
450
164
        return Status::OK();
451
164
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
68
                        uint32_t result, size_t input_rows_count) const override {
425
68
        auto& column_left = block.get_by_position(arguments[0]).column;
426
68
        auto& column_right = block.get_by_position(arguments[1]).column;
427
68
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
68
                block.get_by_position(arguments[0]).type.get());
429
68
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
68
                block.get_by_position(arguments[1]).type.get());
431
68
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
68
        bool is_const_left = is_column_const(*column_left);
433
68
        bool is_const_right = is_column_const(*column_right);
434
435
68
        ColumnPtr column_result = nullptr;
436
68
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
68
        } else if (is_const_left) {
440
1
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
1
                                            res_data_type, context->check_overflow_for_decimal());
442
67
        } else if (is_const_right) {
443
8
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
8
                                            res_data_type, context->check_overflow_for_decimal());
445
59
        } else {
446
59
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
59
                                          res_data_type, context->check_overflow_for_decimal());
448
59
        }
449
68
        block.replace_by_position(result, std::move(column_result));
450
68
        return Status::OK();
451
68
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
3.16k
                        uint32_t result, size_t input_rows_count) const override {
425
3.16k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
3.16k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
3.16k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
3.16k
                block.get_by_position(arguments[0]).type.get());
429
3.16k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
3.16k
                block.get_by_position(arguments[1]).type.get());
431
3.16k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
3.16k
        bool is_const_left = is_column_const(*column_left);
433
3.16k
        bool is_const_right = is_column_const(*column_right);
434
435
3.16k
        ColumnPtr column_result = nullptr;
436
3.16k
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
3.15k
        } else if (is_const_left) {
440
2.98k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2.98k
                                            res_data_type, context->check_overflow_for_decimal());
442
2.98k
        } else if (is_const_right) {
443
12
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
12
                                            res_data_type, context->check_overflow_for_decimal());
445
162
        } else {
446
162
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
162
                                          res_data_type, context->check_overflow_for_decimal());
448
162
        }
449
3.16k
        block.replace_by_position(result, std::move(column_result));
450
3.16k
        return Status::OK();
451
3.16k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
573
                        uint32_t result, size_t input_rows_count) const override {
425
573
        auto& column_left = block.get_by_position(arguments[0]).column;
426
573
        auto& column_right = block.get_by_position(arguments[1]).column;
427
573
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
573
                block.get_by_position(arguments[0]).type.get());
429
573
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
573
                block.get_by_position(arguments[1]).type.get());
431
573
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
573
        bool is_const_left = is_column_const(*column_left);
433
573
        bool is_const_right = is_column_const(*column_right);
434
435
573
        ColumnPtr column_result = nullptr;
436
573
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
573
        } else if (is_const_left) {
440
5
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
5
                                            res_data_type, context->check_overflow_for_decimal());
442
568
        } else if (is_const_right) {
443
8
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
8
                                            res_data_type, context->check_overflow_for_decimal());
445
560
        } else {
446
560
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
560
                                          res_data_type, context->check_overflow_for_decimal());
448
560
        }
449
573
        block.replace_by_position(result, std::move(column_result));
450
573
        return Status::OK();
451
573
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
27
                        uint32_t result, size_t input_rows_count) const override {
425
27
        auto& column_left = block.get_by_position(arguments[0]).column;
426
27
        auto& column_right = block.get_by_position(arguments[1]).column;
427
27
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
27
                block.get_by_position(arguments[0]).type.get());
429
27
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
27
                block.get_by_position(arguments[1]).type.get());
431
27
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
27
        bool is_const_left = is_column_const(*column_left);
433
27
        bool is_const_right = is_column_const(*column_right);
434
435
27
        ColumnPtr column_result = nullptr;
436
27
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
26
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
26
        } else if (is_const_right) {
443
2
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
2
                                            res_data_type, context->check_overflow_for_decimal());
445
24
        } else {
446
24
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
24
                                          res_data_type, context->check_overflow_for_decimal());
448
24
        }
449
27
        block.replace_by_position(result, std::move(column_result));
450
27
        return Status::OK();
451
27
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
40
                        uint32_t result, size_t input_rows_count) const override {
425
40
        auto& column_left = block.get_by_position(arguments[0]).column;
426
40
        auto& column_right = block.get_by_position(arguments[1]).column;
427
40
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
40
                block.get_by_position(arguments[0]).type.get());
429
40
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
40
                block.get_by_position(arguments[1]).type.get());
431
40
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
40
        bool is_const_left = is_column_const(*column_left);
433
40
        bool is_const_right = is_column_const(*column_right);
434
435
40
        ColumnPtr column_result = nullptr;
436
40
        if (is_const_left && is_const_right) {
437
2
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
2
                                              res_data_type, context->check_overflow_for_decimal());
439
38
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
38
        } else if (is_const_right) {
443
0
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
0
                                            res_data_type, context->check_overflow_for_decimal());
445
38
        } else {
446
38
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
38
                                          res_data_type, context->check_overflow_for_decimal());
448
38
        }
449
40
        block.replace_by_position(result, std::move(column_result));
450
40
        return Status::OK();
451
40
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
95
                        uint32_t result, size_t input_rows_count) const override {
425
95
        auto& column_left = block.get_by_position(arguments[0]).column;
426
95
        auto& column_right = block.get_by_position(arguments[1]).column;
427
95
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
95
                block.get_by_position(arguments[0]).type.get());
429
95
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
95
                block.get_by_position(arguments[1]).type.get());
431
95
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
95
        bool is_const_left = is_column_const(*column_left);
433
95
        bool is_const_right = is_column_const(*column_right);
434
435
95
        ColumnPtr column_result = nullptr;
436
95
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
95
        } else if (is_const_left) {
440
36
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
36
                                            res_data_type, context->check_overflow_for_decimal());
442
59
        } else if (is_const_right) {
443
7
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
7
                                            res_data_type, context->check_overflow_for_decimal());
445
52
        } else {
446
52
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
52
                                          res_data_type, context->check_overflow_for_decimal());
448
52
        }
449
95
        block.replace_by_position(result, std::move(column_result));
450
95
        return Status::OK();
451
95
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
14.9k
                        uint32_t result, size_t input_rows_count) const override {
425
14.9k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
14.9k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
14.9k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
14.9k
                block.get_by_position(arguments[0]).type.get());
429
14.9k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
14.9k
                block.get_by_position(arguments[1]).type.get());
431
14.9k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
14.9k
        bool is_const_left = is_column_const(*column_left);
433
14.9k
        bool is_const_right = is_column_const(*column_right);
434
435
14.9k
        ColumnPtr column_result = nullptr;
436
14.9k
        if (is_const_left && is_const_right) {
437
33
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
33
                                              res_data_type, context->check_overflow_for_decimal());
439
14.8k
        } else if (is_const_left) {
440
43
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
43
                                            res_data_type, context->check_overflow_for_decimal());
442
14.8k
        } else if (is_const_right) {
443
819
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
819
                                            res_data_type, context->check_overflow_for_decimal());
445
14.0k
        } else {
446
14.0k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
14.0k
                                          res_data_type, context->check_overflow_for_decimal());
448
14.0k
        }
449
14.9k
        block.replace_by_position(result, std::move(column_result));
450
14.9k
        return Status::OK();
451
14.9k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
152
                        uint32_t result, size_t input_rows_count) const override {
425
152
        auto& column_left = block.get_by_position(arguments[0]).column;
426
152
        auto& column_right = block.get_by_position(arguments[1]).column;
427
152
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
152
                block.get_by_position(arguments[0]).type.get());
429
152
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
152
                block.get_by_position(arguments[1]).type.get());
431
152
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
152
        bool is_const_left = is_column_const(*column_left);
433
152
        bool is_const_right = is_column_const(*column_right);
434
435
152
        ColumnPtr column_result = nullptr;
436
152
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
152
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
152
        } else if (is_const_right) {
443
0
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
0
                                            res_data_type, context->check_overflow_for_decimal());
445
152
        } else {
446
152
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
152
                                          res_data_type, context->check_overflow_for_decimal());
448
152
        }
449
152
        block.replace_by_position(result, std::move(column_result));
450
152
        return Status::OK();
451
152
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
2.71k
                        uint32_t result, size_t input_rows_count) const override {
425
2.71k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
2.71k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
2.71k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
2.71k
                block.get_by_position(arguments[0]).type.get());
429
2.71k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
2.71k
                block.get_by_position(arguments[1]).type.get());
431
2.71k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
2.71k
        bool is_const_left = is_column_const(*column_left);
433
2.71k
        bool is_const_right = is_column_const(*column_right);
434
435
2.71k
        ColumnPtr column_result = nullptr;
436
2.71k
        if (is_const_left && is_const_right) {
437
24
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
24
                                              res_data_type, context->check_overflow_for_decimal());
439
2.69k
        } else if (is_const_left) {
440
639
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
639
                                            res_data_type, context->check_overflow_for_decimal());
442
2.05k
        } else if (is_const_right) {
443
53
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
53
                                            res_data_type, context->check_overflow_for_decimal());
445
2.00k
        } else {
446
2.00k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
2.00k
                                          res_data_type, context->check_overflow_for_decimal());
448
2.00k
        }
449
2.71k
        block.replace_by_position(result, std::move(column_result));
450
2.71k
        return Status::OK();
451
2.71k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
164
                        uint32_t result, size_t input_rows_count) const override {
425
164
        auto& column_left = block.get_by_position(arguments[0]).column;
426
164
        auto& column_right = block.get_by_position(arguments[1]).column;
427
164
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
164
                block.get_by_position(arguments[0]).type.get());
429
164
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
164
                block.get_by_position(arguments[1]).type.get());
431
164
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
164
        bool is_const_left = is_column_const(*column_left);
433
164
        bool is_const_right = is_column_const(*column_right);
434
435
164
        ColumnPtr column_result = nullptr;
436
164
        if (is_const_left && is_const_right) {
437
6
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
6
                                              res_data_type, context->check_overflow_for_decimal());
439
158
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
156
        } else if (is_const_right) {
443
2
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
2
                                            res_data_type, context->check_overflow_for_decimal());
445
154
        } else {
446
154
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
154
                                          res_data_type, context->check_overflow_for_decimal());
448
154
        }
449
164
        block.replace_by_position(result, std::move(column_result));
450
164
        return Status::OK();
451
164
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
129
                        uint32_t result, size_t input_rows_count) const override {
425
129
        auto& column_left = block.get_by_position(arguments[0]).column;
426
129
        auto& column_right = block.get_by_position(arguments[1]).column;
427
129
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
129
                block.get_by_position(arguments[0]).type.get());
429
129
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
129
                block.get_by_position(arguments[1]).type.get());
431
129
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
129
        bool is_const_left = is_column_const(*column_left);
433
129
        bool is_const_right = is_column_const(*column_right);
434
435
129
        ColumnPtr column_result = nullptr;
436
129
        if (is_const_left && is_const_right) {
437
57
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
57
                                              res_data_type, context->check_overflow_for_decimal());
439
72
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
70
        } else if (is_const_right) {
443
13
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
13
                                            res_data_type, context->check_overflow_for_decimal());
445
57
        } else {
446
57
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
57
                                          res_data_type, context->check_overflow_for_decimal());
448
57
        }
449
129
        block.replace_by_position(result, std::move(column_result));
450
129
        return Status::OK();
451
129
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
943
                        uint32_t result, size_t input_rows_count) const override {
425
943
        auto& column_left = block.get_by_position(arguments[0]).column;
426
943
        auto& column_right = block.get_by_position(arguments[1]).column;
427
943
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
943
                block.get_by_position(arguments[0]).type.get());
429
943
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
943
                block.get_by_position(arguments[1]).type.get());
431
943
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
943
        bool is_const_left = is_column_const(*column_left);
433
943
        bool is_const_right = is_column_const(*column_right);
434
435
943
        ColumnPtr column_result = nullptr;
436
943
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
943
        } else if (is_const_left) {
440
471
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
471
                                            res_data_type, context->check_overflow_for_decimal());
442
472
        } else if (is_const_right) {
443
222
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
222
                                            res_data_type, context->check_overflow_for_decimal());
445
250
        } else {
446
250
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
250
                                          res_data_type, context->check_overflow_for_decimal());
448
250
        }
449
943
        block.replace_by_position(result, std::move(column_result));
450
943
        return Status::OK();
451
943
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
712
                        uint32_t result, size_t input_rows_count) const override {
425
712
        auto& column_left = block.get_by_position(arguments[0]).column;
426
712
        auto& column_right = block.get_by_position(arguments[1]).column;
427
712
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
712
                block.get_by_position(arguments[0]).type.get());
429
712
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
712
                block.get_by_position(arguments[1]).type.get());
431
712
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
712
        bool is_const_left = is_column_const(*column_left);
433
712
        bool is_const_right = is_column_const(*column_right);
434
435
712
        ColumnPtr column_result = nullptr;
436
712
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
712
        } else if (is_const_left) {
440
1
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
1
                                            res_data_type, context->check_overflow_for_decimal());
442
711
        } else if (is_const_right) {
443
29
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
29
                                            res_data_type, context->check_overflow_for_decimal());
445
682
        } else {
446
682
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
682
                                          res_data_type, context->check_overflow_for_decimal());
448
682
        }
449
712
        block.replace_by_position(result, std::move(column_result));
450
712
        return Status::OK();
451
712
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
83
                        uint32_t result, size_t input_rows_count) const override {
425
83
        auto& column_left = block.get_by_position(arguments[0]).column;
426
83
        auto& column_right = block.get_by_position(arguments[1]).column;
427
83
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
83
                block.get_by_position(arguments[0]).type.get());
429
83
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
83
                block.get_by_position(arguments[1]).type.get());
431
83
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
83
        bool is_const_left = is_column_const(*column_left);
433
83
        bool is_const_right = is_column_const(*column_right);
434
435
83
        ColumnPtr column_result = nullptr;
436
83
        if (is_const_left && is_const_right) {
437
2
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
2
                                              res_data_type, context->check_overflow_for_decimal());
439
81
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
81
        } else if (is_const_right) {
443
7
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
7
                                            res_data_type, context->check_overflow_for_decimal());
445
74
        } else {
446
74
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
74
                                          res_data_type, context->check_overflow_for_decimal());
448
74
        }
449
83
        block.replace_by_position(result, std::move(column_result));
450
83
        return Status::OK();
451
83
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
503
                        uint32_t result, size_t input_rows_count) const override {
425
503
        auto& column_left = block.get_by_position(arguments[0]).column;
426
503
        auto& column_right = block.get_by_position(arguments[1]).column;
427
503
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
503
                block.get_by_position(arguments[0]).type.get());
429
503
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
503
                block.get_by_position(arguments[1]).type.get());
431
503
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
503
        bool is_const_left = is_column_const(*column_left);
433
503
        bool is_const_right = is_column_const(*column_right);
434
435
503
        ColumnPtr column_result = nullptr;
436
503
        if (is_const_left && is_const_right) {
437
2
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
2
                                              res_data_type, context->check_overflow_for_decimal());
439
501
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
501
        } else if (is_const_right) {
443
455
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
455
                                            res_data_type, context->check_overflow_for_decimal());
445
455
        } else {
446
46
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
46
                                          res_data_type, context->check_overflow_for_decimal());
448
46
        }
449
503
        block.replace_by_position(result, std::move(column_result));
450
503
        return Status::OK();
451
503
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
142
                        uint32_t result, size_t input_rows_count) const override {
425
142
        auto& column_left = block.get_by_position(arguments[0]).column;
426
142
        auto& column_right = block.get_by_position(arguments[1]).column;
427
142
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
142
                block.get_by_position(arguments[0]).type.get());
429
142
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
142
                block.get_by_position(arguments[1]).type.get());
431
142
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
142
        bool is_const_left = is_column_const(*column_left);
433
142
        bool is_const_right = is_column_const(*column_right);
434
435
142
        ColumnPtr column_result = nullptr;
436
142
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
142
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
142
        } else if (is_const_right) {
443
39
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
39
                                            res_data_type, context->check_overflow_for_decimal());
445
103
        } else {
446
103
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
103
                                          res_data_type, context->check_overflow_for_decimal());
448
103
        }
449
142
        block.replace_by_position(result, std::move(column_result));
450
142
        return Status::OK();
451
142
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
8.35k
                        uint32_t result, size_t input_rows_count) const override {
425
8.35k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
8.35k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
8.35k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
8.35k
                block.get_by_position(arguments[0]).type.get());
429
8.35k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
8.35k
                block.get_by_position(arguments[1]).type.get());
431
8.35k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
8.35k
        bool is_const_left = is_column_const(*column_left);
433
8.35k
        bool is_const_right = is_column_const(*column_right);
434
435
8.35k
        ColumnPtr column_result = nullptr;
436
8.35k
        if (is_const_left && is_const_right) {
437
62
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
62
                                              res_data_type, context->check_overflow_for_decimal());
439
8.29k
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
8.29k
        } else if (is_const_right) {
443
3.45k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
3.45k
                                            res_data_type, context->check_overflow_for_decimal());
445
4.84k
        } else {
446
4.84k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
4.84k
                                          res_data_type, context->check_overflow_for_decimal());
448
4.84k
        }
449
8.35k
        block.replace_by_position(result, std::move(column_result));
450
8.35k
        return Status::OK();
451
8.35k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
306
                        uint32_t result, size_t input_rows_count) const override {
425
306
        auto& column_left = block.get_by_position(arguments[0]).column;
426
306
        auto& column_right = block.get_by_position(arguments[1]).column;
427
306
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
306
                block.get_by_position(arguments[0]).type.get());
429
306
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
306
                block.get_by_position(arguments[1]).type.get());
431
306
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
306
        bool is_const_left = is_column_const(*column_left);
433
306
        bool is_const_right = is_column_const(*column_right);
434
435
306
        ColumnPtr column_result = nullptr;
436
306
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
305
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
305
        } else if (is_const_right) {
443
111
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
111
                                            res_data_type, context->check_overflow_for_decimal());
445
194
        } else {
446
194
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
194
                                          res_data_type, context->check_overflow_for_decimal());
448
194
        }
449
306
        block.replace_by_position(result, std::move(column_result));
450
306
        return Status::OK();
451
306
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
1.73k
                        uint32_t result, size_t input_rows_count) const override {
425
1.73k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
1.73k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
1.73k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
1.73k
                block.get_by_position(arguments[0]).type.get());
429
1.73k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
1.73k
                block.get_by_position(arguments[1]).type.get());
431
1.73k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
1.73k
        bool is_const_left = is_column_const(*column_left);
433
1.73k
        bool is_const_right = is_column_const(*column_right);
434
435
1.73k
        ColumnPtr column_result = nullptr;
436
1.73k
        if (is_const_left && is_const_right) {
437
19
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
19
                                              res_data_type, context->check_overflow_for_decimal());
439
1.71k
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
1.71k
        } else if (is_const_right) {
443
235
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
235
                                            res_data_type, context->check_overflow_for_decimal());
445
1.48k
        } else {
446
1.48k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
1.48k
                                          res_data_type, context->check_overflow_for_decimal());
448
1.48k
        }
449
1.73k
        block.replace_by_position(result, std::move(column_result));
450
1.73k
        return Status::OK();
451
1.73k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
452
453
private:
454
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right,
455
                                const typename Impl::DataTypeA* type_left,
456
                                const typename Impl::DataTypeB* type_right,
457
216
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
216
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
216
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
216
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
216
        ColumnPtr column_result = nullptr;
463
464
216
        if constexpr (result_is_decimal) {
465
73
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
12
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
12
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
12
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
12
                                        type_left, type_right, type_result);
470
471
12
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
12
                                auto left_src =
473
12
                                        column_left_ptr
474
12
                                                ->template get_value<Impl::DataTypeA::PType>();
475
12
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
12
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
12
                                auto right_src =
478
12
                                        column_right_ptr
479
12
                                                ->template get_value<Impl::DataTypeB::PType>();
480
12
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
12
                                column_result = Impl::constant_constant(
482
12
                                        left_tmp, right_tmp, type_left, type_right,
483
12
                                        max_and_multiplier.first, max_and_multiplier.second,
484
12
                                        type_result, check_overflow_for_decimal);
485
12
                                return true;
486
12
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
467
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
6
                                        type_left, type_right, type_result);
470
471
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
6
                                auto left_src =
473
6
                                        column_left_ptr
474
6
                                                ->template get_value<Impl::DataTypeA::PType>();
475
6
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
6
                                auto right_src =
478
6
                                        column_right_ptr
479
6
                                                ->template get_value<Impl::DataTypeB::PType>();
480
6
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
6
                                column_result = Impl::constant_constant(
482
6
                                        left_tmp, right_tmp, type_left, type_right,
483
6
                                        max_and_multiplier.first, max_and_multiplier.second,
484
6
                                        type_result, check_overflow_for_decimal);
485
6
                                return true;
486
6
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
467
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
6
                                        type_left, type_right, type_result);
470
471
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
6
                                auto left_src =
473
6
                                        column_left_ptr
474
6
                                                ->template get_value<Impl::DataTypeA::PType>();
475
6
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
6
                                auto right_src =
478
6
                                        column_right_ptr
479
6
                                                ->template get_value<Impl::DataTypeB::PType>();
480
6
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
6
                                column_result = Impl::constant_constant(
482
6
                                        left_tmp, right_tmp, type_left, type_right,
483
6
                                        max_and_multiplier.first, max_and_multiplier.second,
484
6
                                        type_result, check_overflow_for_decimal);
485
6
                                return true;
486
6
                            })) {
487
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
0
                                    type_to_string(res_data_type->get_primitive_type()));
490
0
                }
491
61
            } else {
492
61
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
61
                                         DataTypeDecimal256>(
494
61
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
61
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
61
                                        type_left, type_right, type_result);
497
498
61
                                column_result = Impl::constant_constant(
499
61
                                        column_left_ptr
500
61
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
61
                                        column_right_ptr
502
61
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
61
                                        type_left, type_right, max_and_multiplier.first,
504
61
                                        max_and_multiplier.second, type_result,
505
61
                                        check_overflow_for_decimal);
506
61
                                return true;
507
61
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
494
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
1
                                        type_left, type_right, type_result);
497
498
1
                                column_result = Impl::constant_constant(
499
1
                                        column_left_ptr
500
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
1
                                        column_right_ptr
502
1
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
1
                                        type_left, type_right, max_and_multiplier.first,
504
1
                                        max_and_multiplier.second, type_result,
505
1
                                        check_overflow_for_decimal);
506
1
                                return true;
507
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
494
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
1
                                        type_left, type_right, type_result);
497
498
1
                                column_result = Impl::constant_constant(
499
1
                                        column_left_ptr
500
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
1
                                        column_right_ptr
502
1
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
1
                                        type_left, type_right, max_and_multiplier.first,
504
1
                                        max_and_multiplier.second, type_result,
505
1
                                        check_overflow_for_decimal);
506
1
                                return true;
507
1
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
494
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
57
                                        type_left, type_right, type_result);
497
498
57
                                column_result = Impl::constant_constant(
499
57
                                        column_left_ptr
500
57
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
57
                                        column_right_ptr
502
57
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
57
                                        type_left, type_right, max_and_multiplier.first,
504
57
                                        max_and_multiplier.second, type_result,
505
57
                                        check_overflow_for_decimal);
506
57
                                return true;
507
57
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
494
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
2
                                        type_left, type_right, type_result);
497
498
2
                                column_result = Impl::constant_constant(
499
2
                                        column_left_ptr
500
2
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
2
                                        column_right_ptr
502
2
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
2
                                        type_left, type_right, max_and_multiplier.first,
504
2
                                        max_and_multiplier.second, type_result,
505
2
                                        check_overflow_for_decimal);
506
2
                                return true;
507
2
                            })) {
508
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
0
                                    type_to_string(res_data_type->get_primitive_type()));
511
0
                }
512
61
            }
513
143
        } else {
514
143
            column_result = Impl::constant_constant(
515
143
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
143
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
143
        }
518
519
73
        return ColumnConst::create(std::move(column_result), column_left->size());
520
216
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
6
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
6
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
6
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
6
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
6
        ColumnPtr column_result = nullptr;
463
464
6
        if constexpr (result_is_decimal) {
465
6
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
6
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
6
                                        type_left, type_right, type_result);
470
471
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
6
                                auto left_src =
473
6
                                        column_left_ptr
474
6
                                                ->template get_value<Impl::DataTypeA::PType>();
475
6
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
6
                                auto right_src =
478
6
                                        column_right_ptr
479
6
                                                ->template get_value<Impl::DataTypeB::PType>();
480
6
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
6
                                column_result = Impl::constant_constant(
482
6
                                        left_tmp, right_tmp, type_left, type_right,
483
6
                                        max_and_multiplier.first, max_and_multiplier.second,
484
6
                                        type_result, check_overflow_for_decimal);
485
6
                                return true;
486
6
                            })) {
487
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
0
                                    type_to_string(res_data_type->get_primitive_type()));
490
0
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
6
        return ColumnConst::create(std::move(column_result), column_left->size());
520
6
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
1
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
1
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
1
        ColumnPtr column_result = nullptr;
463
464
1
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
1
            } else {
492
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
1
                                         DataTypeDecimal256>(
494
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
1
                                        type_left, type_right, type_result);
497
498
1
                                column_result = Impl::constant_constant(
499
1
                                        column_left_ptr
500
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
1
                                        column_right_ptr
502
1
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
1
                                        type_left, type_right, max_and_multiplier.first,
504
1
                                        max_and_multiplier.second, type_result,
505
1
                                        check_overflow_for_decimal);
506
1
                                return true;
507
1
                            })) {
508
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
0
                                    type_to_string(res_data_type->get_primitive_type()));
511
0
                }
512
1
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
1
        return ColumnConst::create(std::move(column_result), column_left->size());
520
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
1
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
1
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
1
        ColumnPtr column_result = nullptr;
463
464
1
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
1
            } else {
492
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
1
                                         DataTypeDecimal256>(
494
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
1
                                        type_left, type_right, type_result);
497
498
1
                                column_result = Impl::constant_constant(
499
1
                                        column_left_ptr
500
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
1
                                        column_right_ptr
502
1
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
1
                                        type_left, type_right, max_and_multiplier.first,
504
1
                                        max_and_multiplier.second, type_result,
505
1
                                        check_overflow_for_decimal);
506
1
                                return true;
507
1
                            })) {
508
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
0
                                    type_to_string(res_data_type->get_primitive_type()));
511
0
                }
512
1
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
1
        return ColumnConst::create(std::move(column_result), column_left->size());
520
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
2
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
2
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
2
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
2
        } else {
514
2
            column_result = Impl::constant_constant(
515
2
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
2
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
2
        }
518
519
2
        return ColumnConst::create(std::move(column_result), column_left->size());
520
2
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
33
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
33
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
33
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
33
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
33
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
33
        } else {
514
33
            column_result = Impl::constant_constant(
515
33
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
33
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
33
        }
518
519
33
        return ColumnConst::create(std::move(column_result), column_left->size());
520
33
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
24
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
24
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
24
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
24
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
24
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
24
        } else {
514
24
            column_result = Impl::constant_constant(
515
24
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
24
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
24
        }
518
519
24
        return ColumnConst::create(std::move(column_result), column_left->size());
520
24
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
6
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
6
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
6
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
6
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
6
        ColumnPtr column_result = nullptr;
463
464
6
        if constexpr (result_is_decimal) {
465
6
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
6
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
6
                                        type_left, type_right, type_result);
470
471
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
6
                                auto left_src =
473
6
                                        column_left_ptr
474
6
                                                ->template get_value<Impl::DataTypeA::PType>();
475
6
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
6
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
6
                                auto right_src =
478
6
                                        column_right_ptr
479
6
                                                ->template get_value<Impl::DataTypeB::PType>();
480
6
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
6
                                column_result = Impl::constant_constant(
482
6
                                        left_tmp, right_tmp, type_left, type_right,
483
6
                                        max_and_multiplier.first, max_and_multiplier.second,
484
6
                                        type_result, check_overflow_for_decimal);
485
6
                                return true;
486
6
                            })) {
487
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
0
                                    type_to_string(res_data_type->get_primitive_type()));
490
0
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
6
        return ColumnConst::create(std::move(column_result), column_left->size());
520
6
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
57
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
57
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
57
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
57
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
57
        ColumnPtr column_result = nullptr;
463
464
57
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
57
            } else {
492
57
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
57
                                         DataTypeDecimal256>(
494
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
57
                                        type_left, type_right, type_result);
497
498
57
                                column_result = Impl::constant_constant(
499
57
                                        column_left_ptr
500
57
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
57
                                        column_right_ptr
502
57
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
57
                                        type_left, type_right, max_and_multiplier.first,
504
57
                                        max_and_multiplier.second, type_result,
505
57
                                        check_overflow_for_decimal);
506
57
                                return true;
507
57
                            })) {
508
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
0
                                    type_to_string(res_data_type->get_primitive_type()));
511
0
                }
512
57
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
57
        return ColumnConst::create(std::move(column_result), column_left->size());
520
57
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
2
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
2
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
2
        ColumnPtr column_result = nullptr;
463
464
2
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
2
            } else {
492
2
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
2
                                         DataTypeDecimal256>(
494
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
2
                                        type_left, type_right, type_result);
497
498
2
                                column_result = Impl::constant_constant(
499
2
                                        column_left_ptr
500
2
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
2
                                        column_right_ptr
502
2
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
2
                                        type_left, type_right, max_and_multiplier.first,
504
2
                                        max_and_multiplier.second, type_result,
505
2
                                        check_overflow_for_decimal);
506
2
                                return true;
507
2
                            })) {
508
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
0
                                    type_to_string(res_data_type->get_primitive_type()));
511
0
                }
512
2
            }
513
        } else {
514
            column_result = Impl::constant_constant(
515
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
        }
518
519
2
        return ColumnConst::create(std::move(column_result), column_left->size());
520
2
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
2
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
2
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
2
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
2
        } else {
514
2
            column_result = Impl::constant_constant(
515
2
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
2
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
2
        }
518
519
2
        return ColumnConst::create(std::move(column_result), column_left->size());
520
2
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
62
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
62
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
62
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
62
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
62
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
62
        } else {
514
62
            column_result = Impl::constant_constant(
515
62
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
62
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
62
        }
518
519
62
        return ColumnConst::create(std::move(column_result), column_left->size());
520
62
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
1
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
1
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
1
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
1
        } else {
514
1
            column_result = Impl::constant_constant(
515
1
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
1
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
1
        }
518
519
1
        return ColumnConst::create(std::move(column_result), column_left->size());
520
1
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
19
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
19
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
19
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
19
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
19
        ColumnPtr column_result = nullptr;
463
464
        if constexpr (result_is_decimal) {
465
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
466
                if (!cast_type_to_either<DataTypeDecimalV2>(
467
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
468
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
469
                                        type_left, type_right, type_result);
470
471
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType left_tmp;
472
                                auto left_src =
473
                                        column_left_ptr
474
                                                ->template get_value<Impl::DataTypeA::PType>();
475
                                std::memcpy(&left_tmp, &left_src, sizeof(left_src));
476
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType right_tmp;
477
                                auto right_src =
478
                                        column_right_ptr
479
                                                ->template get_value<Impl::DataTypeB::PType>();
480
                                std::memcpy(&right_tmp, &right_src, sizeof(right_src));
481
                                column_result = Impl::constant_constant(
482
                                        left_tmp, right_tmp, type_left, type_right,
483
                                        max_and_multiplier.first, max_and_multiplier.second,
484
                                        type_result, check_overflow_for_decimal);
485
                                return true;
486
                            })) {
487
                    throw Exception(ErrorCode::INTERNAL_ERROR,
488
                                    "Wrong type. Expected: Decimal, Actually: {}",
489
                                    type_to_string(res_data_type->get_primitive_type()));
490
                }
491
            } else {
492
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
                                         DataTypeDecimal256>(
494
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
                                        type_left, type_right, type_result);
497
498
                                column_result = Impl::constant_constant(
499
                                        column_left_ptr
500
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
                                        column_right_ptr
502
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
                                        type_left, type_right, max_and_multiplier.first,
504
                                        max_and_multiplier.second, type_result,
505
                                        check_overflow_for_decimal);
506
                                return true;
507
                            })) {
508
                    throw Exception(ErrorCode::INTERNAL_ERROR,
509
                                    "Wrong type. Expected: Decimal, Actually: {}",
510
                                    type_to_string(res_data_type->get_primitive_type()));
511
                }
512
            }
513
19
        } else {
514
19
            column_result = Impl::constant_constant(
515
19
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
19
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
19
        }
518
519
19
        return ColumnConst::create(std::move(column_result), column_left->size());
520
19
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
521
522
    ColumnPtr vector_constant(ColumnPtr column_left, ColumnPtr column_right,
523
                              const typename Impl::DataTypeA* type_left,
524
                              const typename Impl::DataTypeB* type_right, DataTypePtr res_data_type,
525
5.47k
                              bool check_overflow_for_decimal) const {
526
5.47k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
5.47k
        DCHECK(column_right_ptr != nullptr);
528
529
5.47k
        ColumnPtr res = nullptr;
530
5.47k
        if constexpr (result_is_decimal) {
531
305
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
4
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
4
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
4
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
4
                                        type_left, type_right, type_result);
536
4
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
4
                                auto src = column_right_ptr
538
4
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
4
                                std::memcpy(&tmp, &src, sizeof(src));
540
4
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
4
                                                            type_right, max_and_multiplier.first,
542
4
                                                            max_and_multiplier.second, type_result,
543
4
                                                            check_overflow_for_decimal);
544
4
                                return true;
545
4
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
533
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
2
                                        type_left, type_right, type_result);
536
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
2
                                auto src = column_right_ptr
538
2
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
2
                                std::memcpy(&tmp, &src, sizeof(src));
540
2
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
2
                                                            type_right, max_and_multiplier.first,
542
2
                                                            max_and_multiplier.second, type_result,
543
2
                                                            check_overflow_for_decimal);
544
2
                                return true;
545
2
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
533
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
2
                                        type_left, type_right, type_result);
536
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
2
                                auto src = column_right_ptr
538
2
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
2
                                std::memcpy(&tmp, &src, sizeof(src));
540
2
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
2
                                                            type_right, max_and_multiplier.first,
542
2
                                                            max_and_multiplier.second, type_result,
543
2
                                                            check_overflow_for_decimal);
544
2
                                return true;
545
2
                            })) {
546
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
0
                                    type_to_string(res_data_type->get_primitive_type()));
549
0
                }
550
301
            } else {
551
301
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
301
                                         DataTypeDecimal256>(
553
301
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
301
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
301
                                        type_left, type_right, type_result);
556
301
                                res = Impl::vector_constant(
557
301
                                        column_left->get_ptr(),
558
301
                                        column_right_ptr
559
301
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
301
                                        type_left, type_right, max_and_multiplier.first,
561
301
                                        max_and_multiplier.second, type_result,
562
301
                                        check_overflow_for_decimal);
563
301
                                return true;
564
301
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
8
                                        type_left, type_right, type_result);
556
8
                                res = Impl::vector_constant(
557
8
                                        column_left->get_ptr(),
558
8
                                        column_right_ptr
559
8
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
8
                                        type_left, type_right, max_and_multiplier.first,
561
8
                                        max_and_multiplier.second, type_result,
562
8
                                        check_overflow_for_decimal);
563
8
                                return true;
564
8
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
12
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
12
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
12
                                        type_left, type_right, type_result);
556
12
                                res = Impl::vector_constant(
557
12
                                        column_left->get_ptr(),
558
12
                                        column_right_ptr
559
12
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
12
                                        type_left, type_right, max_and_multiplier.first,
561
12
                                        max_and_multiplier.second, type_result,
562
12
                                        check_overflow_for_decimal);
563
12
                                return true;
564
12
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
8
                                        type_left, type_right, type_result);
556
8
                                res = Impl::vector_constant(
557
8
                                        column_left->get_ptr(),
558
8
                                        column_right_ptr
559
8
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
8
                                        type_left, type_right, max_and_multiplier.first,
561
8
                                        max_and_multiplier.second, type_result,
562
8
                                        check_overflow_for_decimal);
563
8
                                return true;
564
8
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
2
                                        type_left, type_right, type_result);
556
2
                                res = Impl::vector_constant(
557
2
                                        column_left->get_ptr(),
558
2
                                        column_right_ptr
559
2
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
2
                                        type_left, type_right, max_and_multiplier.first,
561
2
                                        max_and_multiplier.second, type_result,
562
2
                                        check_overflow_for_decimal);
563
2
                                return true;
564
2
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
13
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
13
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
13
                                        type_left, type_right, type_result);
556
13
                                res = Impl::vector_constant(
557
13
                                        column_left->get_ptr(),
558
13
                                        column_right_ptr
559
13
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
13
                                        type_left, type_right, max_and_multiplier.first,
561
13
                                        max_and_multiplier.second, type_result,
562
13
                                        check_overflow_for_decimal);
563
13
                                return true;
564
13
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
222
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
222
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
222
                                        type_left, type_right, type_result);
556
222
                                res = Impl::vector_constant(
557
222
                                        column_left->get_ptr(),
558
222
                                        column_right_ptr
559
222
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
222
                                        type_left, type_right, max_and_multiplier.first,
561
222
                                        max_and_multiplier.second, type_result,
562
222
                                        check_overflow_for_decimal);
563
222
                                return true;
564
222
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
29
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
29
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
29
                                        type_left, type_right, type_result);
556
29
                                res = Impl::vector_constant(
557
29
                                        column_left->get_ptr(),
558
29
                                        column_right_ptr
559
29
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
29
                                        type_left, type_right, max_and_multiplier.first,
561
29
                                        max_and_multiplier.second, type_result,
562
29
                                        check_overflow_for_decimal);
563
29
                                return true;
564
29
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
553
7
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
7
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
7
                                        type_left, type_right, type_result);
556
7
                                res = Impl::vector_constant(
557
7
                                        column_left->get_ptr(),
558
7
                                        column_right_ptr
559
7
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
7
                                        type_left, type_right, max_and_multiplier.first,
561
7
                                        max_and_multiplier.second, type_result,
562
7
                                        check_overflow_for_decimal);
563
7
                                return true;
564
7
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
301
            }
570
5.16k
        } else {
571
5.16k
            res = Impl::vector_constant(
572
5.16k
                    column_left->get_ptr(),
573
5.16k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
5.16k
        }
575
305
        return res;
576
5.47k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
2
                              bool check_overflow_for_decimal) const {
526
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
2
        DCHECK(column_right_ptr != nullptr);
528
529
2
        ColumnPtr res = nullptr;
530
2
        if constexpr (result_is_decimal) {
531
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
2
                                        type_left, type_right, type_result);
536
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
2
                                auto src = column_right_ptr
538
2
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
2
                                std::memcpy(&tmp, &src, sizeof(src));
540
2
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
2
                                                            type_right, max_and_multiplier.first,
542
2
                                                            max_and_multiplier.second, type_result,
543
2
                                                            check_overflow_for_decimal);
544
2
                                return true;
545
2
                            })) {
546
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
0
                                    type_to_string(res_data_type->get_primitive_type()));
549
0
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
2
        return res;
576
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
8
                              bool check_overflow_for_decimal) const {
526
8
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
8
        DCHECK(column_right_ptr != nullptr);
528
529
8
        ColumnPtr res = nullptr;
530
8
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
8
            } else {
551
8
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
8
                                         DataTypeDecimal256>(
553
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
8
                                        type_left, type_right, type_result);
556
8
                                res = Impl::vector_constant(
557
8
                                        column_left->get_ptr(),
558
8
                                        column_right_ptr
559
8
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
8
                                        type_left, type_right, max_and_multiplier.first,
561
8
                                        max_and_multiplier.second, type_result,
562
8
                                        check_overflow_for_decimal);
563
8
                                return true;
564
8
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
8
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
8
        return res;
576
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
12
                              bool check_overflow_for_decimal) const {
526
12
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
12
        DCHECK(column_right_ptr != nullptr);
528
529
12
        ColumnPtr res = nullptr;
530
12
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
12
            } else {
551
12
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
12
                                         DataTypeDecimal256>(
553
12
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
12
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
12
                                        type_left, type_right, type_result);
556
12
                                res = Impl::vector_constant(
557
12
                                        column_left->get_ptr(),
558
12
                                        column_right_ptr
559
12
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
12
                                        type_left, type_right, max_and_multiplier.first,
561
12
                                        max_and_multiplier.second, type_result,
562
12
                                        check_overflow_for_decimal);
563
12
                                return true;
564
12
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
12
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
12
        return res;
576
12
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
8
                              bool check_overflow_for_decimal) const {
526
8
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
8
        DCHECK(column_right_ptr != nullptr);
528
529
8
        ColumnPtr res = nullptr;
530
8
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
8
            } else {
551
8
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
8
                                         DataTypeDecimal256>(
553
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
8
                                        type_left, type_right, type_result);
556
8
                                res = Impl::vector_constant(
557
8
                                        column_left->get_ptr(),
558
8
                                        column_right_ptr
559
8
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
8
                                        type_left, type_right, max_and_multiplier.first,
561
8
                                        max_and_multiplier.second, type_result,
562
8
                                        check_overflow_for_decimal);
563
8
                                return true;
564
8
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
8
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
8
        return res;
576
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
2
                              bool check_overflow_for_decimal) const {
526
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
2
        DCHECK(column_right_ptr != nullptr);
528
529
2
        ColumnPtr res = nullptr;
530
2
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
2
            } else {
551
2
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
2
                                         DataTypeDecimal256>(
553
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
2
                                        type_left, type_right, type_result);
556
2
                                res = Impl::vector_constant(
557
2
                                        column_left->get_ptr(),
558
2
                                        column_right_ptr
559
2
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
2
                                        type_left, type_right, max_and_multiplier.first,
561
2
                                        max_and_multiplier.second, type_result,
562
2
                                        check_overflow_for_decimal);
563
2
                                return true;
564
2
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
2
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
2
        return res;
576
2
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
7
                              bool check_overflow_for_decimal) const {
526
7
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
7
        DCHECK(column_right_ptr != nullptr);
528
529
7
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
7
        } else {
571
7
            res = Impl::vector_constant(
572
7
                    column_left->get_ptr(),
573
7
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
7
        }
575
7
        return res;
576
7
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
819
                              bool check_overflow_for_decimal) const {
526
819
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
819
        DCHECK(column_right_ptr != nullptr);
528
529
819
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
819
        } else {
571
819
            res = Impl::vector_constant(
572
819
                    column_left->get_ptr(),
573
819
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
819
        }
575
819
        return res;
576
819
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
53
                              bool check_overflow_for_decimal) const {
526
53
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
53
        DCHECK(column_right_ptr != nullptr);
528
529
53
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
53
        } else {
571
53
            res = Impl::vector_constant(
572
53
                    column_left->get_ptr(),
573
53
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
53
        }
575
53
        return res;
576
53
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
2
                              bool check_overflow_for_decimal) const {
526
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
2
        DCHECK(column_right_ptr != nullptr);
528
529
2
        ColumnPtr res = nullptr;
530
2
        if constexpr (result_is_decimal) {
531
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
2
                                        type_left, type_right, type_result);
536
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
2
                                auto src = column_right_ptr
538
2
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
2
                                std::memcpy(&tmp, &src, sizeof(src));
540
2
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
2
                                                            type_right, max_and_multiplier.first,
542
2
                                                            max_and_multiplier.second, type_result,
543
2
                                                            check_overflow_for_decimal);
544
2
                                return true;
545
2
                            })) {
546
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
0
                                    type_to_string(res_data_type->get_primitive_type()));
549
0
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
2
        return res;
576
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
13
                              bool check_overflow_for_decimal) const {
526
13
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
13
        DCHECK(column_right_ptr != nullptr);
528
529
13
        ColumnPtr res = nullptr;
530
13
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
13
            } else {
551
13
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
13
                                         DataTypeDecimal256>(
553
13
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
13
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
13
                                        type_left, type_right, type_result);
556
13
                                res = Impl::vector_constant(
557
13
                                        column_left->get_ptr(),
558
13
                                        column_right_ptr
559
13
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
13
                                        type_left, type_right, max_and_multiplier.first,
561
13
                                        max_and_multiplier.second, type_result,
562
13
                                        check_overflow_for_decimal);
563
13
                                return true;
564
13
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
13
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
13
        return res;
576
13
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
222
                              bool check_overflow_for_decimal) const {
526
222
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
222
        DCHECK(column_right_ptr != nullptr);
528
529
222
        ColumnPtr res = nullptr;
530
222
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
222
            } else {
551
222
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
222
                                         DataTypeDecimal256>(
553
222
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
222
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
222
                                        type_left, type_right, type_result);
556
222
                                res = Impl::vector_constant(
557
222
                                        column_left->get_ptr(),
558
222
                                        column_right_ptr
559
222
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
222
                                        type_left, type_right, max_and_multiplier.first,
561
222
                                        max_and_multiplier.second, type_result,
562
222
                                        check_overflow_for_decimal);
563
222
                                return true;
564
222
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
222
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
222
        return res;
576
222
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
29
                              bool check_overflow_for_decimal) const {
526
29
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
29
        DCHECK(column_right_ptr != nullptr);
528
529
29
        ColumnPtr res = nullptr;
530
29
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
29
            } else {
551
29
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
29
                                         DataTypeDecimal256>(
553
29
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
29
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
29
                                        type_left, type_right, type_result);
556
29
                                res = Impl::vector_constant(
557
29
                                        column_left->get_ptr(),
558
29
                                        column_right_ptr
559
29
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
29
                                        type_left, type_right, max_and_multiplier.first,
561
29
                                        max_and_multiplier.second, type_result,
562
29
                                        check_overflow_for_decimal);
563
29
                                return true;
564
29
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
29
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
29
        return res;
576
29
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
7
                              bool check_overflow_for_decimal) const {
526
7
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
7
        DCHECK(column_right_ptr != nullptr);
528
529
7
        ColumnPtr res = nullptr;
530
7
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
7
            } else {
551
7
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
7
                                         DataTypeDecimal256>(
553
7
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
7
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
7
                                        type_left, type_right, type_result);
556
7
                                res = Impl::vector_constant(
557
7
                                        column_left->get_ptr(),
558
7
                                        column_right_ptr
559
7
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
7
                                        type_left, type_right, max_and_multiplier.first,
561
7
                                        max_and_multiplier.second, type_result,
562
7
                                        check_overflow_for_decimal);
563
7
                                return true;
564
7
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
7
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
7
        return res;
576
7
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
455
                              bool check_overflow_for_decimal) const {
526
455
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
455
        DCHECK(column_right_ptr != nullptr);
528
529
455
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
455
        } else {
571
455
            res = Impl::vector_constant(
572
455
                    column_left->get_ptr(),
573
455
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
455
        }
575
455
        return res;
576
455
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
39
                              bool check_overflow_for_decimal) const {
526
39
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
39
        DCHECK(column_right_ptr != nullptr);
528
529
39
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
39
        } else {
571
39
            res = Impl::vector_constant(
572
39
                    column_left->get_ptr(),
573
39
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
39
        }
575
39
        return res;
576
39
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
3.45k
                              bool check_overflow_for_decimal) const {
526
3.45k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
3.45k
        DCHECK(column_right_ptr != nullptr);
528
529
3.45k
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
3.45k
        } else {
571
3.45k
            res = Impl::vector_constant(
572
3.45k
                    column_left->get_ptr(),
573
3.45k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
3.45k
        }
575
3.45k
        return res;
576
3.45k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
111
                              bool check_overflow_for_decimal) const {
526
111
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
111
        DCHECK(column_right_ptr != nullptr);
528
529
111
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
111
        } else {
571
111
            res = Impl::vector_constant(
572
111
                    column_left->get_ptr(),
573
111
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
111
        }
575
111
        return res;
576
111
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
235
                              bool check_overflow_for_decimal) const {
526
235
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
235
        DCHECK(column_right_ptr != nullptr);
528
529
235
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
235
        } else {
571
235
            res = Impl::vector_constant(
572
235
                    column_left->get_ptr(),
573
235
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
235
        }
575
235
        return res;
576
235
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
577
578
    ColumnPtr constant_vector(ColumnPtr column_left, ColumnPtr column_right,
579
                              const typename Impl::DataTypeA* type_left,
580
                              const typename Impl::DataTypeB* type_right, DataTypePtr res_data_type,
581
4.18k
                              bool check_overflow_for_decimal) const {
582
4.18k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
4.18k
        DCHECK(column_left_ptr != nullptr);
584
585
4.18k
        ColumnPtr res = nullptr;
586
4.18k
        if constexpr (result_is_decimal) {
587
3.46k
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
4
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
4
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
4
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
4
                                        type_left, type_right, type_result);
592
4
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
4
                                auto src = column_left_ptr
594
4
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
4
                                std::memcpy(&tmp, &src, sizeof(src));
596
4
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
4
                                                            type_right, max_and_multiplier.first,
598
4
                                                            max_and_multiplier.second, type_result,
599
4
                                                            check_overflow_for_decimal);
600
4
                                return true;
601
4
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
602
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
0
                                    type_to_string(res_data_type->get_primitive_type()));
605
0
                }
606
3.46k
            } else {
607
3.46k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.46k
                                         DataTypeDecimal256>(
609
3.46k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.46k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.46k
                                        type_left, type_right, type_result);
612
3.46k
                                res = Impl::constant_vector(
613
3.46k
                                        column_left_ptr
614
3.46k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.46k
                                        column_right->get_ptr(), type_left, type_right,
616
3.46k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.46k
                                        type_result, check_overflow_for_decimal);
618
3.46k
                                return true;
619
3.46k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
2.98k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.98k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.98k
                                        type_left, type_right, type_result);
612
2.98k
                                res = Impl::constant_vector(
613
2.98k
                                        column_left_ptr
614
2.98k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.98k
                                        column_right->get_ptr(), type_left, type_right,
616
2.98k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.98k
                                        type_result, check_overflow_for_decimal);
618
2.98k
                                return true;
619
2.98k
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
5
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
5
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
5
                                        type_left, type_right, type_result);
612
5
                                res = Impl::constant_vector(
613
5
                                        column_left_ptr
614
5
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
5
                                        column_right->get_ptr(), type_left, type_right,
616
5
                                        max_and_multiplier.first, max_and_multiplier.second,
617
5
                                        type_result, check_overflow_for_decimal);
618
5
                                return true;
619
5
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2
                                        type_left, type_right, type_result);
612
2
                                res = Impl::constant_vector(
613
2
                                        column_left_ptr
614
2
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2
                                        column_right->get_ptr(), type_left, type_right,
616
2
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2
                                        type_result, check_overflow_for_decimal);
618
2
                                return true;
619
2
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
471
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
471
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
471
                                        type_left, type_right, type_result);
612
471
                                res = Impl::constant_vector(
613
471
                                        column_left_ptr
614
471
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
471
                                        column_right->get_ptr(), type_left, type_right,
616
471
                                        max_and_multiplier.first, max_and_multiplier.second,
617
471
                                        type_result, check_overflow_for_decimal);
618
471
                                return true;
619
471
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
3.46k
            }
625
3.46k
        } else {
626
718
            res = Impl::constant_vector(
627
718
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
718
                    column_right->get_ptr());
629
718
        }
630
3.46k
        return res;
631
4.18k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2
                              bool check_overflow_for_decimal) const {
582
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2
        DCHECK(column_left_ptr != nullptr);
584
585
2
        ColumnPtr res = nullptr;
586
2
        if constexpr (result_is_decimal) {
587
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
602
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
0
                                    type_to_string(res_data_type->get_primitive_type()));
605
0
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2
        return res;
631
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
1
                              bool check_overflow_for_decimal) const {
582
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1
        DCHECK(column_left_ptr != nullptr);
584
585
1
        ColumnPtr res = nullptr;
586
1
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
1
            } else {
607
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
1
                                         DataTypeDecimal256>(
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
1
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
1
        return res;
631
1
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2.98k
                              bool check_overflow_for_decimal) const {
582
2.98k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2.98k
        DCHECK(column_left_ptr != nullptr);
584
585
2.98k
        ColumnPtr res = nullptr;
586
2.98k
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
2.98k
            } else {
607
2.98k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
2.98k
                                         DataTypeDecimal256>(
609
2.98k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.98k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.98k
                                        type_left, type_right, type_result);
612
2.98k
                                res = Impl::constant_vector(
613
2.98k
                                        column_left_ptr
614
2.98k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.98k
                                        column_right->get_ptr(), type_left, type_right,
616
2.98k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.98k
                                        type_result, check_overflow_for_decimal);
618
2.98k
                                return true;
619
2.98k
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
2.98k
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2.98k
        return res;
631
2.98k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
5
                              bool check_overflow_for_decimal) const {
582
5
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
5
        DCHECK(column_left_ptr != nullptr);
584
585
5
        ColumnPtr res = nullptr;
586
5
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
5
            } else {
607
5
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
5
                                         DataTypeDecimal256>(
609
5
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
5
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
5
                                        type_left, type_right, type_result);
612
5
                                res = Impl::constant_vector(
613
5
                                        column_left_ptr
614
5
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
5
                                        column_right->get_ptr(), type_left, type_right,
616
5
                                        max_and_multiplier.first, max_and_multiplier.second,
617
5
                                        type_result, check_overflow_for_decimal);
618
5
                                return true;
619
5
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
5
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
5
        return res;
631
5
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
36
                              bool check_overflow_for_decimal) const {
582
36
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
36
        DCHECK(column_left_ptr != nullptr);
584
585
36
        ColumnPtr res = nullptr;
586
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
36
        } else {
626
36
            res = Impl::constant_vector(
627
36
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
36
                    column_right->get_ptr());
629
36
        }
630
36
        return res;
631
36
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
43
                              bool check_overflow_for_decimal) const {
582
43
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
43
        DCHECK(column_left_ptr != nullptr);
584
585
43
        ColumnPtr res = nullptr;
586
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
43
        } else {
626
43
            res = Impl::constant_vector(
627
43
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
43
                    column_right->get_ptr());
629
43
        }
630
43
        return res;
631
43
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
639
                              bool check_overflow_for_decimal) const {
582
639
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
639
        DCHECK(column_left_ptr != nullptr);
584
585
639
        ColumnPtr res = nullptr;
586
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
639
        } else {
626
639
            res = Impl::constant_vector(
627
639
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
639
                    column_right->get_ptr());
629
639
        }
630
639
        return res;
631
639
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2
                              bool check_overflow_for_decimal) const {
582
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2
        DCHECK(column_left_ptr != nullptr);
584
585
2
        ColumnPtr res = nullptr;
586
2
        if constexpr (result_is_decimal) {
587
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
602
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
0
                                    type_to_string(res_data_type->get_primitive_type()));
605
0
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2
        return res;
631
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2
                              bool check_overflow_for_decimal) const {
582
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2
        DCHECK(column_left_ptr != nullptr);
584
585
2
        ColumnPtr res = nullptr;
586
2
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
2
            } else {
607
2
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
2
                                         DataTypeDecimal256>(
609
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2
                                        type_left, type_right, type_result);
612
2
                                res = Impl::constant_vector(
613
2
                                        column_left_ptr
614
2
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2
                                        column_right->get_ptr(), type_left, type_right,
616
2
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2
                                        type_result, check_overflow_for_decimal);
618
2
                                return true;
619
2
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
2
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2
        return res;
631
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
471
                              bool check_overflow_for_decimal) const {
582
471
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
471
        DCHECK(column_left_ptr != nullptr);
584
585
471
        ColumnPtr res = nullptr;
586
471
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
471
            } else {
607
471
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
471
                                         DataTypeDecimal256>(
609
471
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
471
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
471
                                        type_left, type_right, type_result);
612
471
                                res = Impl::constant_vector(
613
471
                                        column_left_ptr
614
471
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
471
                                        column_right->get_ptr(), type_left, type_right,
616
471
                                        max_and_multiplier.first, max_and_multiplier.second,
617
471
                                        type_result, check_overflow_for_decimal);
618
471
                                return true;
619
471
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
471
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
471
        return res;
631
471
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
1
                              bool check_overflow_for_decimal) const {
582
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1
        DCHECK(column_left_ptr != nullptr);
584
585
1
        ColumnPtr res = nullptr;
586
1
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
1
            } else {
607
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
1
                                         DataTypeDecimal256>(
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
1
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
1
        return res;
631
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
632
633
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right,
634
                            const typename Impl::DataTypeA* type_left,
635
                            const typename Impl::DataTypeB* type_right, DataTypePtr res_data_type,
636
25.1k
                            bool check_overflow_for_decimal) const {
637
25.1k
        ColumnPtr res = nullptr;
638
25.1k
        if constexpr (result_is_decimal) {
639
2.18k
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
308
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
308
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
308
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
308
                                        type_left, type_right, type_result);
644
308
                                res = Impl::vector_vector(column_left->get_ptr(),
645
308
                                                          column_right->get_ptr(), type_left,
646
308
                                                          type_right, max_and_multiplier.first,
647
308
                                                          max_and_multiplier.second, type_result,
648
308
                                                          check_overflow_for_decimal);
649
308
                                return true;
650
308
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
1.87k
            } else {
656
1.87k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
1.87k
                                         DataTypeDecimal256>(
658
1.87k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
1.86k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
1.86k
                                        type_left, type_right, type_result);
661
1.86k
                                res = Impl::vector_vector(column_left->get_ptr(),
662
1.86k
                                                          column_right->get_ptr(), type_left,
663
1.86k
                                                          type_right, max_and_multiplier.first,
664
1.86k
                                                          max_and_multiplier.second, type_result,
665
1.86k
                                                          check_overflow_for_decimal);
666
1.86k
                                return true;
667
1.86k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
58
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
58
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
58
                                        type_left, type_right, type_result);
661
58
                                res = Impl::vector_vector(column_left->get_ptr(),
662
58
                                                          column_right->get_ptr(), type_left,
663
58
                                                          type_right, max_and_multiplier.first,
664
58
                                                          max_and_multiplier.second, type_result,
665
58
                                                          check_overflow_for_decimal);
666
58
                                return true;
667
58
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
165
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
165
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
165
                                        type_left, type_right, type_result);
661
165
                                res = Impl::vector_vector(column_left->get_ptr(),
662
165
                                                          column_right->get_ptr(), type_left,
663
165
                                                          type_right, max_and_multiplier.first,
664
165
                                                          max_and_multiplier.second, type_result,
665
165
                                                          check_overflow_for_decimal);
666
165
                                return true;
667
165
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
561
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
561
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
561
                                        type_left, type_right, type_result);
661
561
                                res = Impl::vector_vector(column_left->get_ptr(),
662
561
                                                          column_right->get_ptr(), type_left,
663
561
                                                          type_right, max_and_multiplier.first,
664
561
                                                          max_and_multiplier.second, type_result,
665
561
                                                          check_overflow_for_decimal);
666
561
                                return true;
667
561
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
24
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
24
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
24
                                        type_left, type_right, type_result);
661
24
                                res = Impl::vector_vector(column_left->get_ptr(),
662
24
                                                          column_right->get_ptr(), type_left,
663
24
                                                          type_right, max_and_multiplier.first,
664
24
                                                          max_and_multiplier.second, type_result,
665
24
                                                          check_overflow_for_decimal);
666
24
                                return true;
667
24
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
57
                                        type_left, type_right, type_result);
661
57
                                res = Impl::vector_vector(column_left->get_ptr(),
662
57
                                                          column_right->get_ptr(), type_left,
663
57
                                                          type_right, max_and_multiplier.first,
664
57
                                                          max_and_multiplier.second, type_result,
665
57
                                                          check_overflow_for_decimal);
666
57
                                return true;
667
57
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
250
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
250
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
250
                                        type_left, type_right, type_result);
661
250
                                res = Impl::vector_vector(column_left->get_ptr(),
662
250
                                                          column_right->get_ptr(), type_left,
663
250
                                                          type_right, max_and_multiplier.first,
664
250
                                                          max_and_multiplier.second, type_result,
665
250
                                                          check_overflow_for_decimal);
666
250
                                return true;
667
250
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
680
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
680
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
680
                                        type_left, type_right, type_result);
661
680
                                res = Impl::vector_vector(column_left->get_ptr(),
662
680
                                                          column_right->get_ptr(), type_left,
663
680
                                                          type_right, max_and_multiplier.first,
664
680
                                                          max_and_multiplier.second, type_result,
665
680
                                                          check_overflow_for_decimal);
666
680
                                return true;
667
680
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
74
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
74
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
74
                                        type_left, type_right, type_result);
661
74
                                res = Impl::vector_vector(column_left->get_ptr(),
662
74
                                                          column_right->get_ptr(), type_left,
663
74
                                                          type_right, max_and_multiplier.first,
664
74
                                                          max_and_multiplier.second, type_result,
665
74
                                                          check_overflow_for_decimal);
666
74
                                return true;
667
74
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
1.87k
            }
673
22.9k
        } else {
674
22.9k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
22.9k
        }
676
2.18k
        return res;
677
25.1k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
154
                            bool check_overflow_for_decimal) const {
637
154
        ColumnPtr res = nullptr;
638
154
        if constexpr (result_is_decimal) {
639
154
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
154
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
154
        return res;
677
154
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
60
                            bool check_overflow_for_decimal) const {
637
60
        ColumnPtr res = nullptr;
638
60
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
60
            } else {
656
60
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
60
                                         DataTypeDecimal256>(
658
60
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
60
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
60
                                        type_left, type_right, type_result);
661
60
                                res = Impl::vector_vector(column_left->get_ptr(),
662
60
                                                          column_right->get_ptr(), type_left,
663
60
                                                          type_right, max_and_multiplier.first,
664
60
                                                          max_and_multiplier.second, type_result,
665
60
                                                          check_overflow_for_decimal);
666
60
                                return true;
667
60
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
60
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
60
        return res;
677
60
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
164
                            bool check_overflow_for_decimal) const {
637
164
        ColumnPtr res = nullptr;
638
164
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
164
            } else {
656
164
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
164
                                         DataTypeDecimal256>(
658
164
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
164
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
164
                                        type_left, type_right, type_result);
661
164
                                res = Impl::vector_vector(column_left->get_ptr(),
662
164
                                                          column_right->get_ptr(), type_left,
663
164
                                                          type_right, max_and_multiplier.first,
664
164
                                                          max_and_multiplier.second, type_result,
665
164
                                                          check_overflow_for_decimal);
666
164
                                return true;
667
164
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
164
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
164
        return res;
677
164
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
560
                            bool check_overflow_for_decimal) const {
637
560
        ColumnPtr res = nullptr;
638
560
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
560
            } else {
656
560
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
560
                                         DataTypeDecimal256>(
658
560
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
560
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
560
                                        type_left, type_right, type_result);
661
560
                                res = Impl::vector_vector(column_left->get_ptr(),
662
560
                                                          column_right->get_ptr(), type_left,
663
560
                                                          type_right, max_and_multiplier.first,
664
560
                                                          max_and_multiplier.second, type_result,
665
560
                                                          check_overflow_for_decimal);
666
560
                                return true;
667
560
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
560
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
560
        return res;
677
560
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
24
                            bool check_overflow_for_decimal) const {
637
24
        ColumnPtr res = nullptr;
638
24
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
24
            } else {
656
24
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
24
                                         DataTypeDecimal256>(
658
24
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
24
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
24
                                        type_left, type_right, type_result);
661
24
                                res = Impl::vector_vector(column_left->get_ptr(),
662
24
                                                          column_right->get_ptr(), type_left,
663
24
                                                          type_right, max_and_multiplier.first,
664
24
                                                          max_and_multiplier.second, type_result,
665
24
                                                          check_overflow_for_decimal);
666
24
                                return true;
667
24
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
24
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
24
        return res;
677
24
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
38
                            bool check_overflow_for_decimal) const {
637
38
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
38
        } else {
674
38
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
38
        }
676
38
        return res;
677
38
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
52
                            bool check_overflow_for_decimal) const {
637
52
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
52
        } else {
674
52
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
52
        }
676
52
        return res;
677
52
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
14.0k
                            bool check_overflow_for_decimal) const {
637
14.0k
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
14.0k
        } else {
674
14.0k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
14.0k
        }
676
14.0k
        return res;
677
14.0k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
152
                            bool check_overflow_for_decimal) const {
637
152
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
152
        } else {
674
152
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
152
        }
676
152
        return res;
677
152
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
2.00k
                            bool check_overflow_for_decimal) const {
637
2.00k
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
2.00k
        } else {
674
2.00k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
2.00k
        }
676
2.00k
        return res;
677
2.00k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
154
                            bool check_overflow_for_decimal) const {
637
154
        ColumnPtr res = nullptr;
638
154
        if constexpr (result_is_decimal) {
639
154
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
154
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
154
        return res;
677
154
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
57
                            bool check_overflow_for_decimal) const {
637
57
        ColumnPtr res = nullptr;
638
57
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
57
            } else {
656
57
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
57
                                         DataTypeDecimal256>(
658
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
57
                                        type_left, type_right, type_result);
661
57
                                res = Impl::vector_vector(column_left->get_ptr(),
662
57
                                                          column_right->get_ptr(), type_left,
663
57
                                                          type_right, max_and_multiplier.first,
664
57
                                                          max_and_multiplier.second, type_result,
665
57
                                                          check_overflow_for_decimal);
666
57
                                return true;
667
57
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
57
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
57
        return res;
677
57
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
250
                            bool check_overflow_for_decimal) const {
637
250
        ColumnPtr res = nullptr;
638
250
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
250
            } else {
656
250
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
250
                                         DataTypeDecimal256>(
658
250
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
250
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
250
                                        type_left, type_right, type_result);
661
250
                                res = Impl::vector_vector(column_left->get_ptr(),
662
250
                                                          column_right->get_ptr(), type_left,
663
250
                                                          type_right, max_and_multiplier.first,
664
250
                                                          max_and_multiplier.second, type_result,
665
250
                                                          check_overflow_for_decimal);
666
250
                                return true;
667
250
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
250
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
250
        return res;
677
250
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
683
                            bool check_overflow_for_decimal) const {
637
683
        ColumnPtr res = nullptr;
638
683
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
683
            } else {
656
683
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
683
                                         DataTypeDecimal256>(
658
683
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
683
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
683
                                        type_left, type_right, type_result);
661
683
                                res = Impl::vector_vector(column_left->get_ptr(),
662
683
                                                          column_right->get_ptr(), type_left,
663
683
                                                          type_right, max_and_multiplier.first,
664
683
                                                          max_and_multiplier.second, type_result,
665
683
                                                          check_overflow_for_decimal);
666
683
                                return true;
667
683
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
683
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
683
        return res;
677
683
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
74
                            bool check_overflow_for_decimal) const {
637
74
        ColumnPtr res = nullptr;
638
74
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
74
            } else {
656
74
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
74
                                         DataTypeDecimal256>(
658
74
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
74
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
74
                                        type_left, type_right, type_result);
661
74
                                res = Impl::vector_vector(column_left->get_ptr(),
662
74
                                                          column_right->get_ptr(), type_left,
663
74
                                                          type_right, max_and_multiplier.first,
664
74
                                                          max_and_multiplier.second, type_result,
665
74
                                                          check_overflow_for_decimal);
666
74
                                return true;
667
74
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
74
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
74
        return res;
677
74
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
47
                            bool check_overflow_for_decimal) const {
637
47
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
47
        } else {
674
47
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
47
        }
676
47
        return res;
677
47
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
102
                            bool check_overflow_for_decimal) const {
637
102
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
102
        } else {
674
102
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
102
        }
676
102
        return res;
677
102
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
4.84k
                            bool check_overflow_for_decimal) const {
637
4.84k
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
4.84k
        } else {
674
4.84k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
4.84k
        }
676
4.84k
        return res;
677
4.84k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
194
                            bool check_overflow_for_decimal) const {
637
194
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
194
        } else {
674
194
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
194
        }
676
194
        return res;
677
194
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
1.48k
                            bool check_overflow_for_decimal) const {
637
1.48k
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
1.48k
        } else {
674
1.48k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
1.48k
        }
676
1.48k
        return res;
677
1.48k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
678
};
679
#include "common/compile_check_avoid_end.h"
680
} // namespace doris