Coverage Report

Created: 2026-09-29 12:39

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.24k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
5.24k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
5.24k
        auto column_result = ColumnType::create(column_left->size());
65
66
5.24k
        auto& a = column_left_ptr->get_data();
67
5.24k
        auto& c = column_result->get_data();
68
5.24k
        size_t size = a.size();
69
800k
        for (size_t i = 0; i < size; ++i) {
70
795k
            c[i] = Impl::apply(a[i], b);
71
795k
        }
72
5.24k
        return column_result;
73
5.24k
    }
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
8
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
8
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
8
        auto column_result = ColumnType::create(column_left->size());
65
66
8
        auto& a = column_left_ptr->get_data();
67
8
        auto& c = column_result->get_data();
68
8
        size_t size = a.size();
69
52
        for (size_t i = 0; i < size; ++i) {
70
44
            c[i] = Impl::apply(a[i], b);
71
44
        }
72
8
        return column_result;
73
8
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEl
Line
Count
Source
62
825
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
825
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
825
        auto column_result = ColumnType::create(column_left->size());
65
66
825
        auto& a = column_left_ptr->get_data();
67
825
        auto& c = column_result->get_data();
68
825
        size_t size = a.size();
69
2.61k
        for (size_t i = 0; i < size; ++i) {
70
1.78k
            c[i] = Impl::apply(a[i], b);
71
1.78k
        }
72
825
        return column_result;
73
825
    }
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
445
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
445
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
445
        auto column_result = ColumnType::create(column_left->size());
65
66
445
        auto& a = column_left_ptr->get_data();
67
445
        auto& c = column_result->get_data();
68
445
        size_t size = a.size();
69
2.10k
        for (size_t i = 0; i < size; ++i) {
70
1.65k
            c[i] = Impl::apply(a[i], b);
71
1.65k
        }
72
445
        return column_result;
73
445
    }
_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.49k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
3.49k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
3.49k
        auto column_result = ColumnType::create(column_left->size());
65
66
3.49k
        auto& a = column_left_ptr->get_data();
67
3.49k
        auto& c = column_result->get_data();
68
3.49k
        size_t size = a.size();
69
184k
        for (size_t i = 0; i < size; ++i) {
70
180k
            c[i] = Impl::apply(a[i], b);
71
180k
        }
72
3.49k
        return column_result;
73
3.49k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
Line
Count
Source
62
112
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
112
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
112
        auto column_result = ColumnType::create(column_left->size());
65
66
112
        auto& a = column_left_ptr->get_data();
67
112
        auto& c = column_result->get_data();
68
112
        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
112
        return column_result;
73
112
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
269
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
269
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
269
        auto column_result = ColumnType::create(column_left->size());
65
66
269
        auto& a = column_left_ptr->get_data();
67
269
        auto& c = column_result->get_data();
68
269
        size_t size = a.size();
69
606k
        for (size_t i = 0; i < size; ++i) {
70
606k
            c[i] = Impl::apply(a[i], b);
71
606k
        }
72
269
        return column_result;
73
269
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
74
75
896
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
896
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
896
        auto column_result = ColumnType::create(column_right->size());
78
896
        DCHECK(column_right_ptr != nullptr);
79
80
896
        auto& b = column_right_ptr->get_data();
81
896
        auto& c = column_result->get_data();
82
896
        size_t size = b.size();
83
650k
        for (size_t i = 0; i < size; ++i) {
84
649k
            c[i] = Impl::apply(a, b[i]);
85
649k
        }
86
896
        return column_result;
87
896
    }
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
91
        for (size_t i = 0; i < size; ++i) {
84
55
            c[i] = Impl::apply(a, b[i]);
85
55
        }
86
36
        return column_result;
87
36
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
44
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
44
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
44
        auto column_result = ColumnType::create(column_right->size());
78
44
        DCHECK(column_right_ptr != nullptr);
79
80
44
        auto& b = column_right_ptr->get_data();
81
44
        auto& c = column_result->get_data();
82
44
        size_t size = b.size();
83
628
        for (size_t i = 0; i < size; ++i) {
84
584
            c[i] = Impl::apply(a, b[i]);
85
584
        }
86
44
        return column_result;
87
44
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
816
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
816
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
816
        auto column_result = ColumnType::create(column_right->size());
78
816
        DCHECK(column_right_ptr != nullptr);
79
80
816
        auto& b = column_right_ptr->get_data();
81
816
        auto& c = column_result->get_data();
82
816
        size_t size = b.size();
83
649k
        for (size_t i = 0; i < size; ++i) {
84
648k
            c[i] = Impl::apply(a, b[i]);
85
648k
        }
86
816
        return column_result;
87
816
    }
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.5k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
22.5k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
22.5k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
22.5k
        auto column_result = ColumnType::create(column_left->size());
94
95
22.5k
        auto& a = column_left_ptr->get_data();
96
22.5k
        auto& b = column_right_ptr->get_data();
97
22.5k
        auto& c = column_result->get_data();
98
22.5k
        size_t size = a.size();
99
4.80M
        for (size_t i = 0; i < size; ++i) {
100
4.78M
            c[i] = Impl::apply(a[i], b[i]);
101
4.78M
        }
102
22.5k
        return column_result;
103
22.5k
    }
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
51
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
51
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
51
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
51
        auto column_result = ColumnType::create(column_left->size());
94
95
51
        auto& a = column_left_ptr->get_data();
96
51
        auto& b = column_right_ptr->get_data();
97
51
        auto& c = column_result->get_data();
98
51
        size_t size = a.size();
99
314
        for (size_t i = 0; i < size; ++i) {
100
263
            c[i] = Impl::apply(a[i], b[i]);
101
263
        }
102
51
        return column_result;
103
51
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
13.6k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
13.6k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
13.6k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
13.6k
        auto column_result = ColumnType::create(column_left->size());
94
95
13.6k
        auto& a = column_left_ptr->get_data();
96
13.6k
        auto& b = column_right_ptr->get_data();
97
13.6k
        auto& c = column_result->get_data();
98
13.6k
        size_t size = a.size();
99
246k
        for (size_t i = 0; i < size; ++i) {
100
233k
            c[i] = Impl::apply(a[i], b[i]);
101
233k
        }
102
13.6k
        return column_result;
103
13.6k
    }
_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.14k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
2.14k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
2.14k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
2.14k
        auto column_result = ColumnType::create(column_left->size());
94
95
2.14k
        auto& a = column_left_ptr->get_data();
96
2.14k
        auto& b = column_right_ptr->get_data();
97
2.14k
        auto& c = column_result->get_data();
98
2.14k
        size_t size = a.size();
99
42.3k
        for (size_t i = 0; i < size; ++i) {
100
40.2k
            c[i] = Impl::apply(a[i], b[i]);
101
40.2k
        }
102
2.14k
        return column_result;
103
2.14k
    }
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
47
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
47
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
47
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
47
        auto column_result = ColumnType::create(column_left->size());
94
95
47
        auto& a = column_left_ptr->get_data();
96
47
        auto& b = column_right_ptr->get_data();
97
47
        auto& c = column_result->get_data();
98
47
        size_t size = a.size();
99
268
        for (size_t i = 0; i < size; ++i) {
100
221
            c[i] = Impl::apply(a[i], b[i]);
101
221
        }
102
47
        return column_result;
103
47
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
103
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
103
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
103
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
103
        auto column_result = ColumnType::create(column_left->size());
94
95
103
        auto& a = column_left_ptr->get_data();
96
103
        auto& b = column_right_ptr->get_data();
97
103
        auto& c = column_result->get_data();
98
103
        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
103
        return column_result;
103
103
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
4.70k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
4.70k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
4.70k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
4.70k
        auto column_result = ColumnType::create(column_left->size());
94
95
4.70k
        auto& a = column_left_ptr->get_data();
96
4.70k
        auto& b = column_right_ptr->get_data();
97
4.70k
        auto& c = column_result->get_data();
98
4.70k
        size_t size = a.size();
99
4.49M
        for (size_t i = 0; i < size; ++i) {
100
4.49M
            c[i] = Impl::apply(a[i], b[i]);
101
4.49M
        }
102
4.70k
        return column_result;
103
4.70k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
195
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
195
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
195
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
195
        auto column_result = ColumnType::create(column_left->size());
94
95
195
        auto& a = column_left_ptr->get_data();
96
195
        auto& b = column_right_ptr->get_data();
97
195
        auto& c = column_result->get_data();
98
195
        size_t size = a.size();
99
1.19k
        for (size_t i = 0; i < size; ++i) {
100
996
            c[i] = Impl::apply(a[i], b[i]);
101
996
        }
102
195
        return column_result;
103
195
    }
_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.47k
        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
78
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
78
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
78
        if (check_overflow_for_decimal) {
138
78
            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
66
            } else {
143
66
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
66
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
66
                                    scale_diff_multiplier));
146
66
            }
147
148
78
        } 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
78
        return column_result;
160
78
    }
_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
62
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
62
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
62
        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
62
            } else {
143
62
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
62
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
62
                                    scale_diff_multiplier));
146
62
            }
147
148
62
        } 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
62
        return column_result;
160
62
    }
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
338
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
338
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
338
        auto column_result =
171
338
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
338
        DCHECK(column_left_ptr != nullptr);
173
174
338
        const auto& a = column_left_ptr->get_data();
175
338
        auto& c = column_result->get_data();
176
338
        std::visit(
177
338
                [&](auto check_overflow_for_decimal) {
178
1.74k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
1.40k
                        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.40k
                        } else {
186
1.40k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.40k
                                    apply<check_overflow_for_decimal>(
188
1.40k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.40k
                                            max_result_number, scale_diff_multiplier));
190
1.40k
                        }
191
1.40k
                    }
192
338
                },
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
255
                [&](auto check_overflow_for_decimal) {
178
1.30k
                    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.05k
                        } else {
186
1.05k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.05k
                                    apply<check_overflow_for_decimal>(
188
1.05k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.05k
                                            max_result_number, scale_diff_multiplier));
190
1.05k
                        }
191
1.05k
                    }
192
255
                },
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
338
                make_bool_variant(check_overflow_for_decimal));
194
195
338
        return column_result;
196
338
    }
_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
255
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
255
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
255
        auto column_result =
171
255
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
255
        DCHECK(column_left_ptr != nullptr);
173
174
255
        const auto& a = column_left_ptr->get_data();
175
255
        auto& c = column_result->get_data();
176
255
        std::visit(
177
255
                [&](auto check_overflow_for_decimal) {
178
255
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
255
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
255
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
255
                                    apply<check_overflow_for_decimal>(
182
255
                                            a[i].value(), b.value(), *type_left, *type_right,
183
255
                                            res_data_type, max_result_number,
184
255
                                            scale_diff_multiplier));
185
255
                        } else {
186
255
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
255
                                    apply<check_overflow_for_decimal>(
188
255
                                            a[i], b, *type_left, *type_right, res_data_type,
189
255
                                            max_result_number, scale_diff_multiplier));
190
255
                        }
191
255
                    }
192
255
                },
193
255
                make_bool_variant(check_overflow_for_decimal));
194
195
255
        return column_result;
196
255
    }
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.48k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.48k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.48k
        auto column_result =
207
3.48k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.48k
        auto& b = column_right_ptr->get_data();
210
3.48k
        auto& c = column_result->get_data();
211
3.48k
        std::visit(
212
3.48k
                [&](auto check_overflow_for_decimal) {
213
5.31M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5.31M
                        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.31M
                        } else {
221
5.31M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5.31M
                                    apply<check_overflow_for_decimal>(
223
5.31M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5.31M
                                            max_result_number, scale_diff_multiplier));
225
5.31M
                        }
226
5.31M
                    }
227
3.48k
                },
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
3.02k
                [&](auto check_overflow_for_decimal) {
213
3.02M
                    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.02M
                        } else {
221
3.02M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3.02M
                                    apply<check_overflow_for_decimal>(
223
3.02M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3.02M
                                            max_result_number, scale_diff_multiplier));
225
3.02M
                        }
226
3.02M
                    }
227
3.02k
                },
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
445
                [&](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
445
                },
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.48k
                make_bool_variant(check_overflow_for_decimal));
229
3.48k
        return column_result;
230
3.48k
    }
_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
3.02k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.02k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.02k
        auto column_result =
207
3.02k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.02k
        auto& b = column_right_ptr->get_data();
210
3.02k
        auto& c = column_result->get_data();
211
3.02k
        std::visit(
212
3.02k
                [&](auto check_overflow_for_decimal) {
213
3.02k
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
3.02k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
3.02k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
3.02k
                                    apply<check_overflow_for_decimal>(
217
3.02k
                                            a.value(), b[i].value(), *type_left, *type_right,
218
3.02k
                                            res_data_type, max_result_number,
219
3.02k
                                            scale_diff_multiplier));
220
3.02k
                        } else {
221
3.02k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3.02k
                                    apply<check_overflow_for_decimal>(
223
3.02k
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3.02k
                                            max_result_number, scale_diff_multiplier));
225
3.02k
                        }
226
3.02k
                    }
227
3.02k
                },
228
3.02k
                make_bool_variant(check_overflow_for_decimal));
229
3.02k
        return column_result;
230
3.02k
    }
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
445
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
445
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
445
        auto column_result =
207
445
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
445
        auto& b = column_right_ptr->get_data();
210
445
        auto& c = column_result->get_data();
211
445
        std::visit(
212
445
                [&](auto check_overflow_for_decimal) {
213
445
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
445
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
445
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
445
                                    apply<check_overflow_for_decimal>(
217
445
                                            a.value(), b[i].value(), *type_left, *type_right,
218
445
                                            res_data_type, max_result_number,
219
445
                                            scale_diff_multiplier));
220
445
                        } else {
221
445
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
445
                                    apply<check_overflow_for_decimal>(
223
445
                                            a, b[i], *type_left, *type_right, res_data_type,
224
445
                                            max_result_number, scale_diff_multiplier));
225
445
                        }
226
445
                    }
227
445
                },
228
445
                make_bool_variant(check_overflow_for_decimal));
229
445
        return column_result;
230
445
    }
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.14k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
2.14k
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
2.14k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
2.14k
        auto column_result =
301
2.14k
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
2.14k
        auto sz = column_left->size();
303
2.14k
        const auto& a = column_left_ptr->get_data().data();
304
2.14k
        const auto& b = column_right_ptr->get_data().data();
305
2.14k
        const auto& c = column_result->get_data().data();
306
2.14k
        std::visit(
307
2.15k
                [&](auto check_overflow_for_decimal) {
308
140k
                    for (size_t i = 0; i < sz; i++) {
309
138k
                        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
136k
                        } else {
316
136k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
136k
                                    apply<check_overflow_for_decimal>(
318
136k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
136k
                                            max_result_number, scale_diff_multiplier));
320
136k
                        }
321
138k
                    }
322
2.15k
                },
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
572
                [&](auto check_overflow_for_decimal) {
308
130k
                    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
130k
                        } else {
316
130k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
130k
                                    apply<check_overflow_for_decimal>(
318
130k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
130k
                                            max_result_number, scale_diff_multiplier));
320
130k
                        }
321
130k
                    }
322
572
                },
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
8
                [&](auto check_overflow_for_decimal) {
308
18
                    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
10
                        } else {
316
10
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
10
                                    apply<check_overflow_for_decimal>(
318
10
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
10
                                            max_result_number, scale_diff_multiplier));
320
10
                        }
321
10
                    }
322
8
                },
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
251
                [&](auto check_overflow_for_decimal) {
308
1.36k
                    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.11k
                        } else {
316
1.11k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
1.11k
                                    apply<check_overflow_for_decimal>(
318
1.11k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
1.11k
                                            max_result_number, scale_diff_multiplier));
320
1.11k
                        }
321
1.11k
                    }
322
251
                },
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
654
                [&](auto check_overflow_for_decimal) {
308
4.20k
                    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.55k
                        } else {
316
3.55k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
3.55k
                                    apply<check_overflow_for_decimal>(
318
3.55k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
3.55k
                                            max_result_number, scale_diff_multiplier));
320
3.55k
                        }
321
3.55k
                    }
322
654
                },
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.14k
                make_bool_variant(check_overflow_for_decimal));
324
2.14k
        return column_result;
325
2.14k
    }
_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
60
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
60
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
60
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
60
        auto column_result =
301
60
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
60
        auto sz = column_left->size();
303
60
        const auto& a = column_left_ptr->get_data().data();
304
60
        const auto& b = column_right_ptr->get_data().data();
305
60
        const auto& c = column_result->get_data().data();
306
60
        std::visit(
307
60
                [&](auto check_overflow_for_decimal) {
308
60
                    for (size_t i = 0; i < sz; i++) {
309
60
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
60
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
60
                                    apply<check_overflow_for_decimal>(
312
60
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
60
                                            res_data_type, max_result_number,
314
60
                                            scale_diff_multiplier));
315
60
                        } else {
316
60
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
60
                                    apply<check_overflow_for_decimal>(
318
60
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
60
                                            max_result_number, scale_diff_multiplier));
320
60
                        }
321
60
                    }
322
60
                },
323
60
                make_bool_variant(check_overflow_for_decimal));
324
60
        return column_result;
325
60
    }
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
167
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
167
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
167
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
167
        auto column_result =
301
167
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
167
        auto sz = column_left->size();
303
167
        const auto& a = column_left_ptr->get_data().data();
304
167
        const auto& b = column_right_ptr->get_data().data();
305
167
        const auto& c = column_result->get_data().data();
306
167
        std::visit(
307
167
                [&](auto check_overflow_for_decimal) {
308
167
                    for (size_t i = 0; i < sz; i++) {
309
167
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
167
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
167
                                    apply<check_overflow_for_decimal>(
312
167
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
167
                                            res_data_type, max_result_number,
314
167
                                            scale_diff_multiplier));
315
167
                        } else {
316
167
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
167
                                    apply<check_overflow_for_decimal>(
318
167
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
167
                                            max_result_number, scale_diff_multiplier));
320
167
                        }
321
167
                    }
322
167
                },
323
167
                make_bool_variant(check_overflow_for_decimal));
324
167
        return column_result;
325
167
    }
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
571
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
571
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
571
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
571
        auto column_result =
301
571
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
571
        auto sz = column_left->size();
303
571
        const auto& a = column_left_ptr->get_data().data();
304
571
        const auto& b = column_right_ptr->get_data().data();
305
571
        const auto& c = column_result->get_data().data();
306
571
        std::visit(
307
571
                [&](auto check_overflow_for_decimal) {
308
571
                    for (size_t i = 0; i < sz; i++) {
309
571
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
571
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
571
                                    apply<check_overflow_for_decimal>(
312
571
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
571
                                            res_data_type, max_result_number,
314
571
                                            scale_diff_multiplier));
315
571
                        } else {
316
571
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
571
                                    apply<check_overflow_for_decimal>(
318
571
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
571
                                            max_result_number, scale_diff_multiplier));
320
571
                        }
321
571
                    }
322
571
                },
323
571
                make_bool_variant(check_overflow_for_decimal));
324
571
        return column_result;
325
571
    }
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
8
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
8
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
8
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
8
        auto column_result =
301
8
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
8
        auto sz = column_left->size();
303
8
        const auto& a = column_left_ptr->get_data().data();
304
8
        const auto& b = column_right_ptr->get_data().data();
305
8
        const auto& c = column_result->get_data().data();
306
8
        std::visit(
307
8
                [&](auto check_overflow_for_decimal) {
308
8
                    for (size_t i = 0; i < sz; i++) {
309
8
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
8
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
8
                                    apply<check_overflow_for_decimal>(
312
8
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
8
                                            res_data_type, max_result_number,
314
8
                                            scale_diff_multiplier));
315
8
                        } else {
316
8
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
8
                                    apply<check_overflow_for_decimal>(
318
8
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
8
                                            max_result_number, scale_diff_multiplier));
320
8
                        }
321
8
                    }
322
8
                },
323
8
                make_bool_variant(check_overflow_for_decimal));
324
8
        return column_result;
325
8
    }
_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
58
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
58
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
58
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
58
        auto column_result =
301
58
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
58
        auto sz = column_left->size();
303
58
        const auto& a = column_left_ptr->get_data().data();
304
58
        const auto& b = column_right_ptr->get_data().data();
305
58
        const auto& c = column_result->get_data().data();
306
58
        std::visit(
307
58
                [&](auto check_overflow_for_decimal) {
308
58
                    for (size_t i = 0; i < sz; i++) {
309
58
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
58
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
58
                                    apply<check_overflow_for_decimal>(
312
58
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
58
                                            res_data_type, max_result_number,
314
58
                                            scale_diff_multiplier));
315
58
                        } else {
316
58
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
58
                                    apply<check_overflow_for_decimal>(
318
58
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
58
                                            max_result_number, scale_diff_multiplier));
320
58
                        }
321
58
                    }
322
58
                },
323
58
                make_bool_variant(check_overflow_for_decimal));
324
58
        return column_result;
325
58
    }
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
251
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
251
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
251
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
251
        auto column_result =
301
251
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
251
        auto sz = column_left->size();
303
251
        const auto& a = column_left_ptr->get_data().data();
304
251
        const auto& b = column_right_ptr->get_data().data();
305
251
        const auto& c = column_result->get_data().data();
306
251
        std::visit(
307
251
                [&](auto check_overflow_for_decimal) {
308
251
                    for (size_t i = 0; i < sz; i++) {
309
251
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
251
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
251
                                    apply<check_overflow_for_decimal>(
312
251
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
251
                                            res_data_type, max_result_number,
314
251
                                            scale_diff_multiplier));
315
251
                        } else {
316
251
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
251
                                    apply<check_overflow_for_decimal>(
318
251
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
251
                                            max_result_number, scale_diff_multiplier));
320
251
                        }
321
251
                    }
322
251
                },
323
251
                make_bool_variant(check_overflow_for_decimal));
324
251
        return column_result;
325
251
    }
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
650
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
650
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
650
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
650
        auto column_result =
301
650
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
650
        auto sz = column_left->size();
303
650
        const auto& a = column_left_ptr->get_data().data();
304
650
        const auto& b = column_right_ptr->get_data().data();
305
650
        const auto& c = column_result->get_data().data();
306
650
        std::visit(
307
650
                [&](auto check_overflow_for_decimal) {
308
650
                    for (size_t i = 0; i < sz; i++) {
309
650
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
650
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
650
                                    apply<check_overflow_for_decimal>(
312
650
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
650
                                            res_data_type, max_result_number,
314
650
                                            scale_diff_multiplier));
315
650
                        } else {
316
650
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
650
                                    apply<check_overflow_for_decimal>(
318
650
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
650
                                            max_result_number, scale_diff_multiplier));
320
650
                        }
321
650
                    }
322
650
                },
323
650
                make_bool_variant(check_overflow_for_decimal));
324
650
        return column_result;
325
650
    }
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.44M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
5.44M
        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.44M
        } else {
350
5.44M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
5.44M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
5.44M
                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.44M
                } else {
360
5.44M
                    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.44M
                }
368
5.44M
                return res;
369
5.44M
            } else {
370
0
                res = Impl::template apply<ResultType>(a, b);
371
0
                return res;
372
0
            }
373
5.44M
        }
374
5.44M
    }
_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
3.01M
            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.01M
        } else {
350
3.01M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.01M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.01M
                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
3.01M
                } else {
360
3.01M
                    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
3.01M
                }
368
3.01M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.01M
        }
374
3.01M
    }
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
130k
            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
130k
        } else {
350
130k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
130k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
130k
                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
130k
                } else {
360
130k
                    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
130k
                }
368
130k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
130k
        }
374
130k
    }
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
13
            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
13
        } else {
350
13
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
13
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
13
                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
13
                } else {
360
13
                    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
13
                }
368
13
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
13
        }
374
13
    }
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
440
            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
440
        } else {
350
440
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
440
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
440
                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
440
                } else {
360
440
                    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
440
                }
368
440
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
440
        }
374
440
    }
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.29M
            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.29M
        } else {
350
2.29M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.29M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.29M
                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.29M
                } else {
360
2.29M
                    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.29M
                }
368
2.29M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.29M
        }
374
2.29M
    }
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.83k
            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.83k
        } else {
350
3.83k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.83k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.83k
                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.83k
                } else {
360
3.83k
                    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.83k
                }
368
3.82k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.83k
        }
374
3.83k
    }
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.04k
                           const DataTypeDecimal<PT>& type_result) {
381
6.04k
        auto max_result_number =
382
6.04k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
6.04k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
6.04k
        auto result_scale = type_result.get_scale();
386
6.04k
        DCHECK(orig_result_scale >= result_scale);
387
6.04k
        auto scale_diff_multiplier =
388
6.04k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
6.04k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
6.04k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
6.04k
    }
_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
69
                           const DataTypeDecimal<PT>& type_result) {
381
69
        auto max_result_number =
382
69
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
69
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
69
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
69
        auto scale_diff_multiplier =
388
69
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
69
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
69
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
69
    }
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.20k
                           const DataTypeDecimal<PT>& type_result) {
381
3.20k
        auto max_result_number =
382
3.20k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
3.20k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
3.20k
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
3.20k
        auto scale_diff_multiplier =
388
3.20k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
3.20k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
3.20k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
3.20k
    }
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
583
                           const DataTypeDecimal<PT>& type_result) {
381
583
        auto max_result_number =
382
583
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
583
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
583
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
583
        auto scale_diff_multiplier =
388
583
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
583
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
583
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
583
    }
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
11
                           const DataTypeDecimal<PT>& type_result) {
381
11
        auto max_result_number =
382
11
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
11
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
11
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
11
        auto scale_diff_multiplier =
388
11
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
11
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
11
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
11
    }
_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
135
                           const DataTypeDecimal<PT>& type_result) {
381
135
        auto max_result_number =
382
135
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
135
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
135
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
135
        auto scale_diff_multiplier =
388
135
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
135
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
135
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
135
    }
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
949
                           const DataTypeDecimal<PT>& type_result) {
381
949
        auto max_result_number =
382
949
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
949
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
949
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
949
        auto scale_diff_multiplier =
388
949
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
949
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
949
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
949
    }
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
678
                           const DataTypeDecimal<PT>& type_result) {
381
678
        auto max_result_number =
382
678
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
678
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
678
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
678
        auto scale_diff_multiplier =
388
678
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
678
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
678
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
678
    }
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
19.9k
    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
187
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
160
    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
10
    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
94
    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
465
    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
224
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
239
    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
235
    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.46k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE6createEv
Line
Count
Source
401
216
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE6createEv
Line
Count
Source
401
630
    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
19.9k
    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
187
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
160
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEEC2Ev
Line
Count
Source
403
20
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEEC2Ev
Line
Count
Source
403
10
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEEC2Ev
Line
Count
Source
403
24
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
94
    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
465
    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
224
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
239
    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
235
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
53
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
4.46k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
216
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
630
    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.6k
    bool need_replace_null_data_to_default() const override {
408
14.6k
        return Impl::need_replace_null_data_to_default;
409
14.6k
    }
_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
314
    bool need_replace_null_data_to_default() const override {
408
314
        return Impl::need_replace_null_data_to_default;
409
314
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
10
    bool need_replace_null_data_to_default() const override {
408
10
        return Impl::need_replace_null_data_to_default;
409
10
    }
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.58k
    bool need_replace_null_data_to_default() const override {
408
1.58k
        return Impl::need_replace_null_data_to_default;
409
1.58k
    }
_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.79k
    bool need_replace_null_data_to_default() const override {
408
2.79k
        return Impl::need_replace_null_data_to_default;
409
2.79k
    }
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
411
    bool need_replace_null_data_to_default() const override {
408
411
        return Impl::need_replace_null_data_to_default;
409
411
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
411
    bool need_replace_null_data_to_default() const override {
408
411
        return Impl::need_replace_null_data_to_default;
409
411
    }
_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
466
    bool need_replace_null_data_to_default() const override {
408
466
        return Impl::need_replace_null_data_to_default;
409
466
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
119
    bool need_replace_null_data_to_default() const override {
408
119
        return Impl::need_replace_null_data_to_default;
409
119
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
6.16k
    bool need_replace_null_data_to_default() const override {
408
6.16k
        return Impl::need_replace_null_data_to_default;
409
6.16k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
188
    bool need_replace_null_data_to_default() const override {
408
188
        return Impl::need_replace_null_data_to_default;
409
188
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE33need_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
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
410
411
19.6k
    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
178
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
151
    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
1
    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
85
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
12.5k
    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
456
    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
215
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
230
    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
226
    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.45k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
207
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
621
    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.7k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
19.7k
        return arguments[0];
419
19.7k
    }
_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
178
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
178
        return arguments[0];
419
178
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
151
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
151
        return arguments[0];
419
151
    }
_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
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
1
        return arguments[0];
419
1
    }
_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
85
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
85
        return arguments[0];
419
85
    }
_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
456
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
456
        return arguments[0];
419
456
    }
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
215
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
215
        return arguments[0];
419
215
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
230
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
230
        return arguments[0];
419
230
    }
_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
226
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
226
        return arguments[0];
419
226
    }
_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.45k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
4.45k
        return arguments[0];
419
4.45k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
207
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
207
        return arguments[0];
419
207
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
621
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
621
        return arguments[0];
419
621
    }
_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
203
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.72k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.66k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
177
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1
    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
389
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
43.7k
    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
9.48k
    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
507
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
3.04k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.16k
    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.15k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
547
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
38.1k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.32k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.16k
    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.8k
                        uint32_t result, size_t input_rows_count) const override {
425
34.8k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
34.8k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
34.8k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
34.8k
                block.get_by_position(arguments[0]).type.get());
429
34.8k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
34.8k
                block.get_by_position(arguments[1]).type.get());
431
34.8k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
34.8k
        bool is_const_left = is_column_const(*column_left);
433
34.8k
        bool is_const_right = is_column_const(*column_right);
434
435
34.8k
        ColumnPtr column_result = nullptr;
436
34.8k
        if (is_const_left && is_const_right) {
437
221
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
221
                                              res_data_type, context->check_overflow_for_decimal());
439
34.6k
        } else if (is_const_left) {
440
4.38k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
4.38k
                                            res_data_type, context->check_overflow_for_decimal());
442
30.2k
        } else if (is_const_right) {
443
5.57k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
5.57k
                                            res_data_type, context->check_overflow_for_decimal());
445
24.6k
        } else {
446
24.6k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
24.6k
                                          res_data_type, context->check_overflow_for_decimal());
448
24.6k
        }
449
34.8k
        block.replace_by_position(result, std::move(column_result));
450
34.8k
        return Status::OK();
451
34.8k
    }
_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
69
                        uint32_t result, size_t input_rows_count) const override {
425
69
        auto& column_left = block.get_by_position(arguments[0]).column;
426
69
        auto& column_right = block.get_by_position(arguments[1]).column;
427
69
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
69
                block.get_by_position(arguments[0]).type.get());
429
69
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
69
                block.get_by_position(arguments[1]).type.get());
431
69
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
69
        bool is_const_left = is_column_const(*column_left);
433
69
        bool is_const_right = is_column_const(*column_right);
434
435
69
        ColumnPtr column_result = nullptr;
436
69
        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
69
        } 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
68
        } 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
60
        } else {
446
60
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
60
                                          res_data_type, context->check_overflow_for_decimal());
448
60
        }
449
69
        block.replace_by_position(result, std::move(column_result));
450
69
        return Status::OK();
451
69
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
3.20k
                        uint32_t result, size_t input_rows_count) const override {
425
3.20k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
3.20k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
3.20k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
3.20k
                block.get_by_position(arguments[0]).type.get());
429
3.20k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
3.20k
                block.get_by_position(arguments[1]).type.get());
431
3.20k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
3.20k
        bool is_const_left = is_column_const(*column_left);
433
3.20k
        bool is_const_right = is_column_const(*column_right);
434
435
3.20k
        ColumnPtr column_result = nullptr;
436
3.20k
        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.20k
        } else if (is_const_left) {
440
3.02k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
3.02k
                                            res_data_type, context->check_overflow_for_decimal());
442
3.02k
        } 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
165
        } else {
446
165
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
165
                                          res_data_type, context->check_overflow_for_decimal());
448
165
        }
449
3.20k
        block.replace_by_position(result, std::move(column_result));
450
3.20k
        return Status::OK();
451
3.20k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
585
                        uint32_t result, size_t input_rows_count) const override {
425
585
        auto& column_left = block.get_by_position(arguments[0]).column;
426
585
        auto& column_right = block.get_by_position(arguments[1]).column;
427
585
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
585
                block.get_by_position(arguments[0]).type.get());
429
585
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
585
                block.get_by_position(arguments[1]).type.get());
431
585
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
585
        bool is_const_left = is_column_const(*column_left);
433
585
        bool is_const_right = is_column_const(*column_right);
434
435
585
        ColumnPtr column_result = nullptr;
436
585
        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
585
        } 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
580
        } 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
572
        } else {
446
572
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
572
                                          res_data_type, context->check_overflow_for_decimal());
448
572
        }
449
585
        block.replace_by_position(result, std::move(column_result));
450
585
        return Status::OK();
451
585
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
11
                        uint32_t result, size_t input_rows_count) const override {
425
11
        auto& column_left = block.get_by_position(arguments[0]).column;
426
11
        auto& column_right = block.get_by_position(arguments[1]).column;
427
11
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
11
                block.get_by_position(arguments[0]).type.get());
429
11
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
11
                block.get_by_position(arguments[1]).type.get());
431
11
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
11
        bool is_const_left = is_column_const(*column_left);
433
11
        bool is_const_right = is_column_const(*column_right);
434
435
11
        ColumnPtr column_result = nullptr;
436
11
        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
10
        } 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
10
        } 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
8
        } else {
446
8
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
8
                                          res_data_type, context->check_overflow_for_decimal());
448
8
        }
449
11
        block.replace_by_position(result, std::move(column_result));
450
11
        return Status::OK();
451
11
    }
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
8
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
8
                                            res_data_type, context->check_overflow_for_decimal());
445
51
        } else {
446
51
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
51
                                          res_data_type, context->check_overflow_for_decimal());
448
51
        }
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.4k
                        uint32_t result, size_t input_rows_count) const override {
425
14.4k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
14.4k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
14.4k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
14.4k
                block.get_by_position(arguments[0]).type.get());
429
14.4k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
14.4k
                block.get_by_position(arguments[1]).type.get());
431
14.4k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
14.4k
        bool is_const_left = is_column_const(*column_left);
433
14.4k
        bool is_const_right = is_column_const(*column_right);
434
435
14.4k
        ColumnPtr column_result = nullptr;
436
14.4k
        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.4k
        } else if (is_const_left) {
440
44
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
44
                                            res_data_type, context->check_overflow_for_decimal());
442
14.4k
        } else if (is_const_right) {
443
825
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
825
                                            res_data_type, context->check_overflow_for_decimal());
445
13.5k
        } else {
446
13.5k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
13.5k
                                          res_data_type, context->check_overflow_for_decimal());
448
13.5k
        }
449
14.4k
        block.replace_by_position(result, std::move(column_result));
450
14.4k
        return Status::OK();
451
14.4k
    }
_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
3.03k
                        uint32_t result, size_t input_rows_count) const override {
425
3.03k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
3.03k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
3.03k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
3.03k
                block.get_by_position(arguments[0]).type.get());
429
3.03k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
3.03k
                block.get_by_position(arguments[1]).type.get());
431
3.03k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
3.03k
        bool is_const_left = is_column_const(*column_left);
433
3.03k
        bool is_const_right = is_column_const(*column_right);
434
435
3.03k
        ColumnPtr column_result = nullptr;
436
3.03k
        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
3.00k
        } else if (is_const_left) {
440
816
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
816
                                            res_data_type, context->check_overflow_for_decimal());
442
2.19k
        } 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.14k
        } else {
446
2.14k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
2.14k
                                          res_data_type, context->check_overflow_for_decimal());
448
2.14k
        }
449
3.03k
        block.replace_by_position(result, std::move(column_result));
450
3.03k
        return Status::OK();
451
3.03k
    }
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
135
                        uint32_t result, size_t input_rows_count) const override {
425
135
        auto& column_left = block.get_by_position(arguments[0]).column;
426
135
        auto& column_right = block.get_by_position(arguments[1]).column;
427
135
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
135
                block.get_by_position(arguments[0]).type.get());
429
135
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
135
                block.get_by_position(arguments[1]).type.get());
431
135
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
135
        bool is_const_left = is_column_const(*column_left);
433
135
        bool is_const_right = is_column_const(*column_right);
434
435
135
        ColumnPtr column_result = nullptr;
436
135
        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
73
        } 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
71
        } 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
58
        } else {
446
58
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
58
                                          res_data_type, context->check_overflow_for_decimal());
448
58
        }
449
135
        block.replace_by_position(result, std::move(column_result));
450
135
        return Status::OK();
451
135
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
950
                        uint32_t result, size_t input_rows_count) const override {
425
950
        auto& column_left = block.get_by_position(arguments[0]).column;
426
950
        auto& column_right = block.get_by_position(arguments[1]).column;
427
950
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
950
                block.get_by_position(arguments[0]).type.get());
429
950
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
950
                block.get_by_position(arguments[1]).type.get());
431
950
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
950
        bool is_const_left = is_column_const(*column_left);
433
950
        bool is_const_right = is_column_const(*column_right);
434
435
950
        ColumnPtr column_result = nullptr;
436
950
        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
950
        } else if (is_const_left) {
440
445
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
445
                                            res_data_type, context->check_overflow_for_decimal());
442
505
        } else if (is_const_right) {
443
255
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
255
                                            res_data_type, context->check_overflow_for_decimal());
445
255
        } 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
950
        block.replace_by_position(result, std::move(column_result));
450
950
        return Status::OK();
451
950
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
678
                        uint32_t result, size_t input_rows_count) const override {
425
678
        auto& column_left = block.get_by_position(arguments[0]).column;
426
678
        auto& column_right = block.get_by_position(arguments[1]).column;
427
678
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
678
                block.get_by_position(arguments[0]).type.get());
429
678
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
678
                block.get_by_position(arguments[1]).type.get());
431
678
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
678
        bool is_const_left = is_column_const(*column_left);
433
678
        bool is_const_right = is_column_const(*column_right);
434
435
678
        ColumnPtr column_result = nullptr;
436
678
        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
678
        } 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
677
        } 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
648
        } else {
446
648
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
648
                                          res_data_type, context->check_overflow_for_decimal());
448
648
        }
449
678
        block.replace_by_position(result, std::move(column_result));
450
678
        return Status::OK();
451
678
    }
_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
494
                        uint32_t result, size_t input_rows_count) const override {
425
494
        auto& column_left = block.get_by_position(arguments[0]).column;
426
494
        auto& column_right = block.get_by_position(arguments[1]).column;
427
494
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
494
                block.get_by_position(arguments[0]).type.get());
429
494
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
494
                block.get_by_position(arguments[1]).type.get());
431
494
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
494
        bool is_const_left = is_column_const(*column_left);
433
494
        bool is_const_right = is_column_const(*column_right);
434
435
494
        ColumnPtr column_result = nullptr;
436
494
        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
492
        } 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
492
        } else if (is_const_right) {
443
445
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
445
                                            res_data_type, context->check_overflow_for_decimal());
445
445
        } else {
446
47
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
47
                                          res_data_type, context->check_overflow_for_decimal());
448
47
        }
449
494
        block.replace_by_position(result, std::move(column_result));
450
494
        return Status::OK();
451
494
    }
_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.25k
                        uint32_t result, size_t input_rows_count) const override {
425
8.25k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
8.25k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
8.25k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
8.25k
                block.get_by_position(arguments[0]).type.get());
429
8.25k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
8.25k
                block.get_by_position(arguments[1]).type.get());
431
8.25k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
8.25k
        bool is_const_left = is_column_const(*column_left);
433
8.25k
        bool is_const_right = is_column_const(*column_right);
434
435
8.25k
        ColumnPtr column_result = nullptr;
436
8.25k
        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.18k
        } 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.18k
        } else if (is_const_right) {
443
3.48k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
3.48k
                                            res_data_type, context->check_overflow_for_decimal());
445
4.69k
        } else {
446
4.69k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
4.69k
                                          res_data_type, context->check_overflow_for_decimal());
448
4.69k
        }
449
8.25k
        block.replace_by_position(result, std::move(column_result));
450
8.25k
        return Status::OK();
451
8.25k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
309
                        uint32_t result, size_t input_rows_count) const override {
425
309
        auto& column_left = block.get_by_position(arguments[0]).column;
426
309
        auto& column_right = block.get_by_position(arguments[1]).column;
427
309
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
309
                block.get_by_position(arguments[0]).type.get());
429
309
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
309
                block.get_by_position(arguments[1]).type.get());
431
309
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
309
        bool is_const_left = is_column_const(*column_left);
433
309
        bool is_const_right = is_column_const(*column_right);
434
435
309
        ColumnPtr column_result = nullptr;
436
309
        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
308
        } 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
308
        } else if (is_const_right) {
443
112
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
112
                                            res_data_type, context->check_overflow_for_decimal());
445
196
        } else {
446
196
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
196
                                          res_data_type, context->check_overflow_for_decimal());
448
196
        }
449
309
        block.replace_by_position(result, std::move(column_result));
450
309
        return Status::OK();
451
309
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
1.76k
                        uint32_t result, size_t input_rows_count) const override {
425
1.76k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
1.76k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
1.76k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
1.76k
                block.get_by_position(arguments[0]).type.get());
429
1.76k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
1.76k
                block.get_by_position(arguments[1]).type.get());
431
1.76k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
1.76k
        bool is_const_left = is_column_const(*column_left);
433
1.76k
        bool is_const_right = is_column_const(*column_right);
434
435
1.76k
        ColumnPtr column_result = nullptr;
436
1.76k
        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.75k
        } 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.75k
        } else if (is_const_right) {
443
269
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
269
                                            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.76k
        block.replace_by_position(result, std::move(column_result));
450
1.76k
        return Status::OK();
451
1.76k
    }
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
221
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
221
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
221
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
221
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
221
        ColumnPtr column_result = nullptr;
463
464
221
        if constexpr (result_is_decimal) {
465
78
            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
66
            } else {
492
66
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
66
                                         DataTypeDecimal256>(
494
66
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
66
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
66
                                        type_left, type_right, type_result);
497
498
66
                                column_result = Impl::constant_constant(
499
66
                                        column_left_ptr
500
66
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
66
                                        column_right_ptr
502
66
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
66
                                        type_left, type_right, max_and_multiplier.first,
504
66
                                        max_and_multiplier.second, type_result,
505
66
                                        check_overflow_for_decimal);
506
66
                                return true;
507
66
                            })) {
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
62
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
62
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
62
                                        type_left, type_right, type_result);
497
498
62
                                column_result = Impl::constant_constant(
499
62
                                        column_left_ptr
500
62
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
62
                                        column_right_ptr
502
62
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
62
                                        type_left, type_right, max_and_multiplier.first,
504
62
                                        max_and_multiplier.second, type_result,
505
62
                                        check_overflow_for_decimal);
506
62
                                return true;
507
62
                            })) {
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
66
            }
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
78
        return ColumnConst::create(std::move(column_result), column_left->size());
520
221
    }
_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
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
62
        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
62
            } else {
492
62
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
62
                                         DataTypeDecimal256>(
494
62
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
62
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
62
                                        type_left, type_right, type_result);
497
498
62
                                column_result = Impl::constant_constant(
499
62
                                        column_left_ptr
500
62
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
62
                                        column_right_ptr
502
62
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
62
                                        type_left, type_right, max_and_multiplier.first,
504
62
                                        max_and_multiplier.second, type_result,
505
62
                                        check_overflow_for_decimal);
506
62
                                return true;
507
62
                            })) {
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
62
            }
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
62
        return ColumnConst::create(std::move(column_result), column_left->size());
520
62
    }
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.57k
                              bool check_overflow_for_decimal) const {
526
5.57k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
5.57k
        DCHECK(column_right_ptr != nullptr);
528
529
5.57k
        ColumnPtr res = nullptr;
530
5.57k
        if constexpr (result_is_decimal) {
531
337
            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
333
            } else {
551
333
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
333
                                         DataTypeDecimal256>(
553
333
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
332
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
332
                                        type_left, type_right, type_result);
556
332
                                res = Impl::vector_constant(
557
332
                                        column_left->get_ptr(),
558
332
                                        column_right_ptr
559
332
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
332
                                        type_left, type_right, max_and_multiplier.first,
561
332
                                        max_and_multiplier.second, type_result,
562
332
                                        check_overflow_for_decimal);
563
332
                                return true;
564
332
                            })) {
_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
254
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
254
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
254
                                        type_left, type_right, type_result);
556
254
                                res = Impl::vector_constant(
557
254
                                        column_left->get_ptr(),
558
254
                                        column_right_ptr
559
254
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
254
                                        type_left, type_right, max_and_multiplier.first,
561
254
                                        max_and_multiplier.second, type_result,
562
254
                                        check_overflow_for_decimal);
563
254
                                return true;
564
254
                            })) {
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
28
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
28
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
28
                                        type_left, type_right, type_result);
556
28
                                res = Impl::vector_constant(
557
28
                                        column_left->get_ptr(),
558
28
                                        column_right_ptr
559
28
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
28
                                        type_left, type_right, max_and_multiplier.first,
561
28
                                        max_and_multiplier.second, type_result,
562
28
                                        check_overflow_for_decimal);
563
28
                                return true;
564
28
                            })) {
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
333
            }
570
5.24k
        } else {
571
5.24k
            res = Impl::vector_constant(
572
5.24k
                    column_left->get_ptr(),
573
5.24k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
5.24k
        }
575
337
        return res;
576
5.57k
    }
_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
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
        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
8
        } else {
571
8
            res = Impl::vector_constant(
572
8
                    column_left->get_ptr(),
573
8
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
8
        }
575
8
        return res;
576
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
825
                              bool check_overflow_for_decimal) const {
526
825
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
825
        DCHECK(column_right_ptr != nullptr);
528
529
825
        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
825
        } else {
571
825
            res = Impl::vector_constant(
572
825
                    column_left->get_ptr(),
573
825
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
825
        }
575
825
        return res;
576
825
    }
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
254
                              bool check_overflow_for_decimal) const {
526
254
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
254
        DCHECK(column_right_ptr != nullptr);
528
529
254
        ColumnPtr res = nullptr;
530
254
        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
254
            } else {
551
254
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
254
                                         DataTypeDecimal256>(
553
254
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
254
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
254
                                        type_left, type_right, type_result);
556
254
                                res = Impl::vector_constant(
557
254
                                        column_left->get_ptr(),
558
254
                                        column_right_ptr
559
254
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
254
                                        type_left, type_right, max_and_multiplier.first,
561
254
                                        max_and_multiplier.second, type_result,
562
254
                                        check_overflow_for_decimal);
563
254
                                return true;
564
254
                            })) {
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
254
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
254
        return res;
576
254
    }
_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
445
                              bool check_overflow_for_decimal) const {
526
445
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
445
        DCHECK(column_right_ptr != nullptr);
528
529
445
        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
445
        } else {
571
445
            res = Impl::vector_constant(
572
445
                    column_left->get_ptr(),
573
445
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
445
        }
575
445
        return res;
576
445
    }
_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.49k
                              bool check_overflow_for_decimal) const {
526
3.49k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
3.49k
        DCHECK(column_right_ptr != nullptr);
528
529
3.49k
        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.49k
        } else {
571
3.49k
            res = Impl::vector_constant(
572
3.49k
                    column_left->get_ptr(),
573
3.49k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
3.49k
        }
575
3.49k
        return res;
576
3.49k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
112
                              bool check_overflow_for_decimal) const {
526
112
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
112
        DCHECK(column_right_ptr != nullptr);
528
529
112
        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
112
        } else {
571
112
            res = Impl::vector_constant(
572
112
                    column_left->get_ptr(),
573
112
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
112
        }
575
112
        return res;
576
112
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
270
                              bool check_overflow_for_decimal) const {
526
270
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
270
        DCHECK(column_right_ptr != nullptr);
528
529
270
        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
270
        } else {
571
270
            res = Impl::vector_constant(
572
270
                    column_left->get_ptr(),
573
270
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
270
        }
575
270
        return res;
576
270
    }
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.38k
                              bool check_overflow_for_decimal) const {
582
4.38k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
4.38k
        DCHECK(column_left_ptr != nullptr);
584
585
4.38k
        ColumnPtr res = nullptr;
586
4.38k
        if constexpr (result_is_decimal) {
587
3.48k
            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.48k
            } else {
607
3.48k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.48k
                                         DataTypeDecimal256>(
609
3.48k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.48k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.48k
                                        type_left, type_right, type_result);
612
3.48k
                                res = Impl::constant_vector(
613
3.48k
                                        column_left_ptr
614
3.48k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.48k
                                        column_right->get_ptr(), type_left, type_right,
616
3.48k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.48k
                                        type_result, check_overflow_for_decimal);
618
3.48k
                                return true;
619
3.48k
                            })) {
_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
3.02k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.02k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.02k
                                        type_left, type_right, type_result);
612
3.02k
                                res = Impl::constant_vector(
613
3.02k
                                        column_left_ptr
614
3.02k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.02k
                                        column_right->get_ptr(), type_left, type_right,
616
3.02k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.02k
                                        type_result, check_overflow_for_decimal);
618
3.02k
                                return true;
619
3.02k
                            })) {
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
445
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
445
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
445
                                        type_left, type_right, type_result);
612
445
                                res = Impl::constant_vector(
613
445
                                        column_left_ptr
614
445
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
445
                                        column_right->get_ptr(), type_left, type_right,
616
445
                                        max_and_multiplier.first, max_and_multiplier.second,
617
445
                                        type_result, check_overflow_for_decimal);
618
445
                                return true;
619
445
                            })) {
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.48k
            }
625
3.48k
        } else {
626
896
            res = Impl::constant_vector(
627
896
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
896
                    column_right->get_ptr());
629
896
        }
630
3.48k
        return res;
631
4.38k
    }
_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
3.02k
                              bool check_overflow_for_decimal) const {
582
3.02k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
3.02k
        DCHECK(column_left_ptr != nullptr);
584
585
3.02k
        ColumnPtr res = nullptr;
586
3.02k
        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
3.02k
            } else {
607
3.02k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.02k
                                         DataTypeDecimal256>(
609
3.02k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.02k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.02k
                                        type_left, type_right, type_result);
612
3.02k
                                res = Impl::constant_vector(
613
3.02k
                                        column_left_ptr
614
3.02k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.02k
                                        column_right->get_ptr(), type_left, type_right,
616
3.02k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.02k
                                        type_result, check_overflow_for_decimal);
618
3.02k
                                return true;
619
3.02k
                            })) {
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.02k
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
3.02k
        return res;
631
3.02k
    }
_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
44
                              bool check_overflow_for_decimal) const {
582
44
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
44
        DCHECK(column_left_ptr != nullptr);
584
585
44
        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
44
        } else {
626
44
            res = Impl::constant_vector(
627
44
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
44
                    column_right->get_ptr());
629
44
        }
630
44
        return res;
631
44
    }
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
816
                              bool check_overflow_for_decimal) const {
582
816
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
816
        DCHECK(column_left_ptr != nullptr);
584
585
816
        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
816
        } else {
626
816
            res = Impl::constant_vector(
627
816
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
816
                    column_right->get_ptr());
629
816
        }
630
816
        return res;
631
816
    }
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
445
                              bool check_overflow_for_decimal) const {
582
445
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
445
        DCHECK(column_left_ptr != nullptr);
584
585
445
        ColumnPtr res = nullptr;
586
445
        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
445
            } else {
607
445
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
445
                                         DataTypeDecimal256>(
609
445
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
445
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
445
                                        type_left, type_right, type_result);
612
445
                                res = Impl::constant_vector(
613
445
                                        column_left_ptr
614
445
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
445
                                        column_right->get_ptr(), type_left, type_right,
616
445
                                        max_and_multiplier.first, max_and_multiplier.second,
617
445
                                        type_result, check_overflow_for_decimal);
618
445
                                return true;
619
445
                            })) {
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
445
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
445
        return res;
631
445
    }
_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
24.6k
                            bool check_overflow_for_decimal) const {
637
24.6k
        ColumnPtr res = nullptr;
638
24.6k
        if constexpr (result_is_decimal) {
639
2.14k
            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.83k
            } else {
656
1.83k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
1.83k
                                         DataTypeDecimal256>(
658
1.83k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
1.83k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
1.83k
                                        type_left, type_right, type_result);
661
1.83k
                                res = Impl::vector_vector(column_left->get_ptr(),
662
1.83k
                                                          column_right->get_ptr(), type_left,
663
1.83k
                                                          type_right, max_and_multiplier.first,
664
1.83k
                                                          max_and_multiplier.second, type_result,
665
1.83k
                                                          check_overflow_for_decimal);
666
1.83k
                                return true;
667
1.83k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
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
                            })) {
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
167
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
167
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
167
                                        type_left, type_right, type_result);
661
167
                                res = Impl::vector_vector(column_left->get_ptr(),
662
167
                                                          column_right->get_ptr(), type_left,
663
167
                                                          type_right, max_and_multiplier.first,
664
167
                                                          max_and_multiplier.second, type_result,
665
167
                                                          check_overflow_for_decimal);
666
167
                                return true;
667
167
                            })) {
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
570
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
570
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
570
                                        type_left, type_right, type_result);
661
570
                                res = Impl::vector_vector(column_left->get_ptr(),
662
570
                                                          column_right->get_ptr(), type_left,
663
570
                                                          type_right, max_and_multiplier.first,
664
570
                                                          max_and_multiplier.second, type_result,
665
570
                                                          check_overflow_for_decimal);
666
570
                                return true;
667
570
                            })) {
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
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
8
                                        type_left, type_right, type_result);
661
8
                                res = Impl::vector_vector(column_left->get_ptr(),
662
8
                                                          column_right->get_ptr(), type_left,
663
8
                                                          type_right, max_and_multiplier.first,
664
8
                                                          max_and_multiplier.second, type_result,
665
8
                                                          check_overflow_for_decimal);
666
8
                                return true;
667
8
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_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_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
649
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
649
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
649
                                        type_left, type_right, type_result);
661
649
                                res = Impl::vector_vector(column_left->get_ptr(),
662
649
                                                          column_right->get_ptr(), type_left,
663
649
                                                          type_right, max_and_multiplier.first,
664
649
                                                          max_and_multiplier.second, type_result,
665
649
                                                          check_overflow_for_decimal);
666
649
                                return true;
667
649
                            })) {
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.83k
            }
673
22.5k
        } else {
674
22.5k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
22.5k
        }
676
2.14k
        return res;
677
24.6k
    }
_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
167
                            bool check_overflow_for_decimal) const {
637
167
        ColumnPtr res = nullptr;
638
167
        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
167
            } else {
656
167
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
167
                                         DataTypeDecimal256>(
658
167
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
167
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
167
                                        type_left, type_right, type_result);
661
167
                                res = Impl::vector_vector(column_left->get_ptr(),
662
167
                                                          column_right->get_ptr(), type_left,
663
167
                                                          type_right, max_and_multiplier.first,
664
167
                                                          max_and_multiplier.second, type_result,
665
167
                                                          check_overflow_for_decimal);
666
167
                                return true;
667
167
                            })) {
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
167
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
167
        return res;
677
167
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
569
                            bool check_overflow_for_decimal) const {
637
569
        ColumnPtr res = nullptr;
638
569
        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
569
            } else {
656
569
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
569
                                         DataTypeDecimal256>(
658
569
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
569
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
569
                                        type_left, type_right, type_result);
661
569
                                res = Impl::vector_vector(column_left->get_ptr(),
662
569
                                                          column_right->get_ptr(), type_left,
663
569
                                                          type_right, max_and_multiplier.first,
664
569
                                                          max_and_multiplier.second, type_result,
665
569
                                                          check_overflow_for_decimal);
666
569
                                return true;
667
569
                            })) {
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
569
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
569
        return res;
677
569
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
8
                            bool check_overflow_for_decimal) const {
637
8
        ColumnPtr res = nullptr;
638
8
        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
8
            } else {
656
8
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
8
                                         DataTypeDecimal256>(
658
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
8
                                        type_left, type_right, type_result);
661
8
                                res = Impl::vector_vector(column_left->get_ptr(),
662
8
                                                          column_right->get_ptr(), type_left,
663
8
                                                          type_right, max_and_multiplier.first,
664
8
                                                          max_and_multiplier.second, type_result,
665
8
                                                          check_overflow_for_decimal);
666
8
                                return true;
667
8
                            })) {
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
8
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
8
        return res;
677
8
    }
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
51
                            bool check_overflow_for_decimal) const {
637
51
        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
51
        } else {
674
51
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
51
        }
676
51
        return res;
677
51
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
13.6k
                            bool check_overflow_for_decimal) const {
637
13.6k
        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
13.6k
        } else {
674
13.6k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
13.6k
        }
676
13.6k
        return res;
677
13.6k
    }
_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.14k
                            bool check_overflow_for_decimal) const {
637
2.14k
        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.14k
        } else {
674
2.14k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
2.14k
        }
676
2.14k
        return res;
677
2.14k
    }
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
58
                            bool check_overflow_for_decimal) const {
637
58
        ColumnPtr res = nullptr;
638
58
        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
58
            } else {
656
58
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
58
                                         DataTypeDecimal256>(
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
                            })) {
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
58
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
58
        return res;
677
58
    }
_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
649
                            bool check_overflow_for_decimal) const {
637
649
        ColumnPtr res = nullptr;
638
649
        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
649
            } else {
656
649
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
649
                                         DataTypeDecimal256>(
658
649
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
649
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
649
                                        type_left, type_right, type_result);
661
649
                                res = Impl::vector_vector(column_left->get_ptr(),
662
649
                                                          column_right->get_ptr(), type_left,
663
649
                                                          type_right, max_and_multiplier.first,
664
649
                                                          max_and_multiplier.second, type_result,
665
649
                                                          check_overflow_for_decimal);
666
649
                                return true;
667
649
                            })) {
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
649
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
649
        return res;
677
649
    }
_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
103
                            bool check_overflow_for_decimal) const {
637
103
        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
103
        } else {
674
103
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
103
        }
676
103
        return res;
677
103
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
4.70k
                            bool check_overflow_for_decimal) const {
637
4.70k
        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.70k
        } else {
674
4.70k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
4.70k
        }
676
4.70k
        return res;
677
4.70k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
196
                            bool check_overflow_for_decimal) const {
637
196
        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
196
        } else {
674
196
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
196
        }
676
196
        return res;
677
196
    }
_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