Coverage Report

Created: 2026-11-03 13:52

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
190
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
190
        auto column_result = ColumnType ::create(1);
58
190
        column_result->get_element(0) = Impl::apply(a, b);
59
190
        return column_result;
60
190
    }
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
51
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
51
        auto column_result = ColumnType ::create(1);
58
51
        column_result->get_element(0) = Impl::apply(a, b);
59
51
        return column_result;
60
51
    }
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
7
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
7
        auto column_result = ColumnType ::create(1);
58
7
        column_result->get_element(0) = Impl::apply(a, b);
59
7
        return column_result;
60
7
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE17constant_constantEii
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_13PrimitiveTypeE6EEEE17constant_constantEll
Line
Count
Source
56
85
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
85
        auto column_result = ColumnType ::create(1);
58
85
        column_result->get_element(0) = Impl::apply(a, b);
59
85
        return column_result;
60
85
    }
_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.42k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
5.42k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
5.42k
        auto column_result = ColumnType::create(column_left->size());
65
66
5.42k
        auto& a = column_left_ptr->get_data();
67
5.42k
        auto& c = column_result->get_data();
68
5.42k
        size_t size = a.size();
69
971k
        for (size_t i = 0; i < size; ++i) {
70
966k
            c[i] = Impl::apply(a[i], b);
71
966k
        }
72
5.42k
        return column_result;
73
5.42k
    }
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
5
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
5
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
5
        auto column_result = ColumnType::create(column_left->size());
65
66
5
        auto& a = column_left_ptr->get_data();
67
5
        auto& c = column_result->get_data();
68
5
        size_t size = a.size();
69
50
        for (size_t i = 0; i < size; ++i) {
70
45
            c[i] = Impl::apply(a[i], b);
71
45
        }
72
5
        return column_result;
73
5
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEl
Line
Count
Source
62
855
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
855
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
855
        auto column_result = ColumnType::create(column_left->size());
65
66
855
        auto& a = column_left_ptr->get_data();
67
855
        auto& c = column_result->get_data();
68
855
        size_t size = a.size();
69
14.9k
        for (size_t i = 0; i < size; ++i) {
70
14.0k
            c[i] = Impl::apply(a[i], b);
71
14.0k
        }
72
855
        return column_result;
73
855
    }
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
434
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
434
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
434
        auto column_result = ColumnType::create(column_left->size());
65
66
434
        auto& a = column_left_ptr->get_data();
67
434
        auto& c = column_result->get_data();
68
434
        size_t size = a.size();
69
2.06k
        for (size_t i = 0; i < size; ++i) {
70
1.63k
            c[i] = Impl::apply(a[i], b);
71
1.63k
        }
72
434
        return column_result;
73
434
    }
_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.66k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
3.66k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
3.66k
        auto column_result = ColumnType::create(column_left->size());
65
66
3.66k
        auto& a = column_left_ptr->get_data();
67
3.66k
        auto& c = column_result->get_data();
68
3.66k
        size_t size = a.size();
69
344k
        for (size_t i = 0; i < size; ++i) {
70
340k
            c[i] = Impl::apply(a[i], b);
71
340k
        }
72
3.66k
        return column_result;
73
3.66k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
Line
Count
Source
62
111
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
111
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
111
        auto column_result = ColumnType::create(column_left->size());
65
66
111
        auto& a = column_left_ptr->get_data();
67
111
        auto& c = column_result->get_data();
68
111
        size_t size = a.size();
69
4.38k
        for (size_t i = 0; i < size; ++i) {
70
4.27k
            c[i] = Impl::apply(a[i], b);
71
4.27k
        }
72
111
        return column_result;
73
111
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
259
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
259
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
259
        auto column_result = ColumnType::create(column_left->size());
65
66
259
        auto& a = column_left_ptr->get_data();
67
259
        auto& c = column_result->get_data();
68
259
        size_t size = a.size();
69
605k
        for (size_t i = 0; i < size; ++i) {
70
605k
            c[i] = Impl::apply(a[i], b);
71
605k
        }
72
259
        return column_result;
73
259
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
74
75
1.29k
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
1.29k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
1.29k
        auto column_result = ColumnType::create(column_right->size());
78
1.29k
        DCHECK(column_right_ptr != nullptr);
79
80
1.29k
        auto& b = column_right_ptr->get_data();
81
1.29k
        auto& c = column_result->get_data();
82
1.29k
        size_t size = b.size();
83
743k
        for (size_t i = 0; i < size; ++i) {
84
742k
            c[i] = Impl::apply(a, b[i]);
85
742k
        }
86
1.29k
        return column_result;
87
1.29k
    }
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
64
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
64
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
64
        auto column_result = ColumnType::create(column_right->size());
78
64
        DCHECK(column_right_ptr != nullptr);
79
80
64
        auto& b = column_right_ptr->get_data();
81
64
        auto& c = column_result->get_data();
82
64
        size_t size = b.size();
83
171
        for (size_t i = 0; i < size; ++i) {
84
107
            c[i] = Impl::apply(a, b[i]);
85
107
        }
86
64
        return column_result;
87
64
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
38
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
38
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
38
        auto column_result = ColumnType::create(column_right->size());
78
38
        DCHECK(column_right_ptr != nullptr);
79
80
38
        auto& b = column_right_ptr->get_data();
81
38
        auto& c = column_result->get_data();
82
38
        size_t size = b.size();
83
630
        for (size_t i = 0; i < size; ++i) {
84
592
            c[i] = Impl::apply(a, b[i]);
85
592
        }
86
38
        return column_result;
87
38
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
1.18k
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
1.18k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
1.18k
        auto column_result = ColumnType::create(column_right->size());
78
1.18k
        DCHECK(column_right_ptr != nullptr);
79
80
1.18k
        auto& b = column_right_ptr->get_data();
81
1.18k
        auto& c = column_result->get_data();
82
1.18k
        size_t size = b.size();
83
643k
        for (size_t i = 0; i < size; ++i) {
84
641k
            c[i] = Impl::apply(a, b[i]);
85
641k
        }
86
1.18k
        return column_result;
87
1.18k
    }
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
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
13
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
13
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
13
        auto column_result = ColumnType::create(column_right->size());
78
13
        DCHECK(column_right_ptr != nullptr);
79
80
13
        auto& b = column_right_ptr->get_data();
81
13
        auto& c = column_result->get_data();
82
13
        size_t size = b.size();
83
100k
        for (size_t i = 0; i < size; ++i) {
84
100k
            c[i] = Impl::apply(a, b[i]);
85
100k
        }
86
13
        return column_result;
87
13
    }
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
25.1k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
25.1k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
25.1k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
25.1k
        auto column_result = ColumnType::create(column_left->size());
94
95
25.1k
        auto& a = column_left_ptr->get_data();
96
25.1k
        auto& b = column_right_ptr->get_data();
97
25.1k
        auto& c = column_result->get_data();
98
25.1k
        size_t size = a.size();
99
5.03M
        for (size_t i = 0; i < size; ++i) {
100
5.00M
            c[i] = Impl::apply(a[i], b[i]);
101
5.00M
        }
102
25.1k
        return column_result;
103
25.1k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
63
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
63
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
63
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
63
        auto column_result = ColumnType::create(column_left->size());
94
95
63
        auto& a = column_left_ptr->get_data();
96
63
        auto& b = column_right_ptr->get_data();
97
63
        auto& c = column_result->get_data();
98
63
        size_t size = a.size();
99
306
        for (size_t i = 0; i < size; ++i) {
100
243
            c[i] = Impl::apply(a[i], b[i]);
101
243
        }
102
63
        return column_result;
103
63
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
56
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
56
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
56
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
56
        auto column_result = ColumnType::create(column_left->size());
94
95
56
        auto& a = column_left_ptr->get_data();
96
56
        auto& b = column_right_ptr->get_data();
97
56
        auto& c = column_result->get_data();
98
56
        size_t size = a.size();
99
323
        for (size_t i = 0; i < size; ++i) {
100
267
            c[i] = Impl::apply(a[i], b[i]);
101
267
        }
102
56
        return column_result;
103
56
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
15.3k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
15.3k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
15.3k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
15.3k
        auto column_result = ColumnType::create(column_left->size());
94
95
15.3k
        auto& a = column_left_ptr->get_data();
96
15.3k
        auto& b = column_right_ptr->get_data();
97
15.3k
        auto& c = column_result->get_data();
98
15.3k
        size_t size = a.size();
99
244k
        for (size_t i = 0; i < size; ++i) {
100
229k
            c[i] = Impl::apply(a[i], b[i]);
101
229k
        }
102
15.3k
        return column_result;
103
15.3k
    }
_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.45k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
2.45k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
2.45k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
2.45k
        auto column_result = ColumnType::create(column_left->size());
94
95
2.45k
        auto& a = column_left_ptr->get_data();
96
2.45k
        auto& b = column_right_ptr->get_data();
97
2.45k
        auto& c = column_result->get_data();
98
2.45k
        size_t size = a.size();
99
42.6k
        for (size_t i = 0; i < size; ++i) {
100
40.2k
            c[i] = Impl::apply(a[i], b[i]);
101
40.2k
        }
102
2.45k
        return column_result;
103
2.45k
    }
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
5.26k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
5.26k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
5.26k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
5.26k
        auto column_result = ColumnType::create(column_left->size());
94
95
5.26k
        auto& a = column_left_ptr->get_data();
96
5.26k
        auto& b = column_right_ptr->get_data();
97
5.26k
        auto& c = column_result->get_data();
98
5.26k
        size_t size = a.size();
99
4.72M
        for (size_t i = 0; i < size; ++i) {
100
4.72M
            c[i] = Impl::apply(a[i], b[i]);
101
4.72M
        }
102
5.26k
        return column_result;
103
5.26k
    }
_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
998
            c[i] = Impl::apply(a[i], b[i]);
101
998
        }
102
195
        return column_result;
103
195
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
1.49k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
1.49k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
1.49k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
1.49k
        auto column_result = ColumnType::create(column_left->size());
94
95
1.49k
        auto& a = column_left_ptr->get_data();
96
1.49k
        auto& b = column_right_ptr->get_data();
97
1.49k
        auto& c = column_result->get_data();
98
1.49k
        size_t size = a.size();
99
9.51k
        for (size_t i = 0; i < size; ++i) {
100
8.02k
            c[i] = Impl::apply(a[i], b[i]);
101
8.02k
        }
102
1.49k
        return column_result;
103
1.49k
    }
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
74
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
74
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
74
        if (check_overflow_for_decimal) {
138
74
            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
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
74
        } 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
74
        return column_result;
160
74
    }
_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
58
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
58
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
58
        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
58
            } else {
143
58
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
58
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
58
                                    scale_diff_multiplier));
146
58
            }
147
148
58
        } 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
58
        return column_result;
160
58
    }
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
357
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
357
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
357
        auto column_result =
171
357
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
357
        DCHECK(column_left_ptr != nullptr);
173
174
357
        const auto& a = column_left_ptr->get_data();
175
357
        auto& c = column_result->get_data();
176
357
        std::visit(
177
357
                [&](auto check_overflow_for_decimal) {
178
1.89k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
1.53k
                        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.53k
                        } else {
186
1.53k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.53k
                                    apply<check_overflow_for_decimal>(
188
1.53k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.53k
                                            max_result_number, scale_diff_multiplier));
190
1.53k
                        }
191
1.53k
                    }
192
357
                },
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
10
                [&](auto check_overflow_for_decimal) {
178
23
                    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
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
10
                },
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
4
                [&](auto check_overflow_for_decimal) {
178
9
                    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
5
                        } else {
186
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
5
                                    apply<check_overflow_for_decimal>(
188
5
                                            a[i], b, *type_left, *type_right, res_data_type,
189
5
                                            max_result_number, scale_diff_multiplier));
190
5
                        }
191
5
                    }
192
4
                },
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
228
                [&](auto check_overflow_for_decimal) {
178
1.32k
                    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.09k
                        } else {
186
1.09k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.09k
                                    apply<check_overflow_for_decimal>(
188
1.09k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.09k
                                            max_result_number, scale_diff_multiplier));
190
1.09k
                        }
191
1.09k
                    }
192
228
                },
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
66
                [&](auto check_overflow_for_decimal) {
178
417
                    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
351
                        } else {
186
351
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
351
                                    apply<check_overflow_for_decimal>(
188
351
                                            a[i], b, *type_left, *type_right, res_data_type,
189
351
                                            max_result_number, scale_diff_multiplier));
190
351
                        }
191
351
                    }
192
66
                },
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
12
                [&](auto check_overflow_for_decimal) {
178
26
                    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
14
                        } else {
186
14
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
14
                                    apply<check_overflow_for_decimal>(
188
14
                                            a[i], b, *type_left, *type_right, res_data_type,
189
14
                                            max_result_number, scale_diff_multiplier));
190
14
                        }
191
14
                    }
192
12
                },
193
357
                make_bool_variant(check_overflow_for_decimal));
194
195
357
        return column_result;
196
357
    }
_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
10
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
10
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
10
        auto column_result =
171
10
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
10
        DCHECK(column_left_ptr != nullptr);
173
174
10
        const auto& a = column_left_ptr->get_data();
175
10
        auto& c = column_result->get_data();
176
10
        std::visit(
177
10
                [&](auto check_overflow_for_decimal) {
178
10
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
10
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
10
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
10
                                    apply<check_overflow_for_decimal>(
182
10
                                            a[i].value(), b.value(), *type_left, *type_right,
183
10
                                            res_data_type, max_result_number,
184
10
                                            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
10
                },
193
10
                make_bool_variant(check_overflow_for_decimal));
194
195
10
        return column_result;
196
10
    }
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
4
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
4
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
4
        auto column_result =
171
4
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
4
        DCHECK(column_left_ptr != nullptr);
173
174
4
        const auto& a = column_left_ptr->get_data();
175
4
        auto& c = column_result->get_data();
176
4
        std::visit(
177
4
                [&](auto check_overflow_for_decimal) {
178
4
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
4
                        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
4
                        } else {
186
4
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
4
                                    apply<check_overflow_for_decimal>(
188
4
                                            a[i], b, *type_left, *type_right, res_data_type,
189
4
                                            max_result_number, scale_diff_multiplier));
190
4
                        }
191
4
                    }
192
4
                },
193
4
                make_bool_variant(check_overflow_for_decimal));
194
195
4
        return column_result;
196
4
    }
_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
228
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
228
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
228
        auto column_result =
171
228
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
228
        DCHECK(column_left_ptr != nullptr);
173
174
228
        const auto& a = column_left_ptr->get_data();
175
228
        auto& c = column_result->get_data();
176
228
        std::visit(
177
228
                [&](auto check_overflow_for_decimal) {
178
228
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
228
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
228
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
228
                                    apply<check_overflow_for_decimal>(
182
228
                                            a[i].value(), b.value(), *type_left, *type_right,
183
228
                                            res_data_type, max_result_number,
184
228
                                            scale_diff_multiplier));
185
228
                        } else {
186
228
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
228
                                    apply<check_overflow_for_decimal>(
188
228
                                            a[i], b, *type_left, *type_right, res_data_type,
189
228
                                            max_result_number, scale_diff_multiplier));
190
228
                        }
191
228
                    }
192
228
                },
193
228
                make_bool_variant(check_overflow_for_decimal));
194
195
228
        return column_result;
196
228
    }
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
66
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
66
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
66
        auto column_result =
171
66
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
66
        DCHECK(column_left_ptr != nullptr);
173
174
66
        const auto& a = column_left_ptr->get_data();
175
66
        auto& c = column_result->get_data();
176
66
        std::visit(
177
66
                [&](auto check_overflow_for_decimal) {
178
66
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
66
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
66
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
66
                                    apply<check_overflow_for_decimal>(
182
66
                                            a[i].value(), b.value(), *type_left, *type_right,
183
66
                                            res_data_type, max_result_number,
184
66
                                            scale_diff_multiplier));
185
66
                        } else {
186
66
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
66
                                    apply<check_overflow_for_decimal>(
188
66
                                            a[i], b, *type_left, *type_right, res_data_type,
189
66
                                            max_result_number, scale_diff_multiplier));
190
66
                        }
191
66
                    }
192
66
                },
193
66
                make_bool_variant(check_overflow_for_decimal));
194
195
66
        return column_result;
196
66
    }
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
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
    }
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.10k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.10k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.10k
        auto column_result =
207
3.10k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.10k
        auto& b = column_right_ptr->get_data();
210
3.10k
        auto& c = column_result->get_data();
211
3.10k
        std::visit(
212
3.10k
                [&](auto check_overflow_for_decimal) {
213
5.11M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5.10M
                        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.10M
                        } else {
221
5.10M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5.10M
                                    apply<check_overflow_for_decimal>(
223
5.10M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5.10M
                                            max_result_number, scale_diff_multiplier));
225
5.10M
                        }
226
5.10M
                    }
227
3.10k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
6
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2.61k
                [&](auto check_overflow_for_decimal) {
213
2.87M
                    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.87M
                        } else {
221
2.87M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.87M
                                    apply<check_overflow_for_decimal>(
223
2.87M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.87M
                                            max_result_number, scale_diff_multiplier));
225
2.87M
                        }
226
2.87M
                    }
227
2.61k
                },
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
6
                [&](auto check_overflow_for_decimal) {
213
18
                    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
12
                        } else {
221
12
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
12
                                    apply<check_overflow_for_decimal>(
223
12
                                            a, b[i], *type_left, *type_right, res_data_type,
224
12
                                            max_result_number, scale_diff_multiplier));
225
12
                        }
226
12
                    }
227
6
                },
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
472
                [&](auto check_overflow_for_decimal) {
213
2.23M
                    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.23M
                        } else {
221
2.23M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.23M
                                    apply<check_overflow_for_decimal>(
223
2.23M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.23M
                                            max_result_number, scale_diff_multiplier));
225
2.23M
                        }
226
2.23M
                    }
227
472
                },
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.10k
                make_bool_variant(check_overflow_for_decimal));
229
3.10k
        return column_result;
230
3.10k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2.61k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2.61k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2.61k
        auto column_result =
207
2.61k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2.61k
        auto& b = column_right_ptr->get_data();
210
2.61k
        auto& c = column_result->get_data();
211
2.61k
        std::visit(
212
2.61k
                [&](auto check_overflow_for_decimal) {
213
2.61k
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2.61k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2.61k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2.61k
                                    apply<check_overflow_for_decimal>(
217
2.61k
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2.61k
                                            res_data_type, max_result_number,
219
2.61k
                                            scale_diff_multiplier));
220
2.61k
                        } else {
221
2.61k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.61k
                                    apply<check_overflow_for_decimal>(
223
2.61k
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.61k
                                            max_result_number, scale_diff_multiplier));
225
2.61k
                        }
226
2.61k
                    }
227
2.61k
                },
228
2.61k
                make_bool_variant(check_overflow_for_decimal));
229
2.61k
        return column_result;
230
2.61k
    }
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
6
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
6
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
6
        auto column_result =
207
6
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
6
        auto& b = column_right_ptr->get_data();
210
6
        auto& c = column_result->get_data();
211
6
        std::visit(
212
6
                [&](auto check_overflow_for_decimal) {
213
6
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
6
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
6
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
6
                                    apply<check_overflow_for_decimal>(
217
6
                                            a.value(), b[i].value(), *type_left, *type_right,
218
6
                                            res_data_type, max_result_number,
219
6
                                            scale_diff_multiplier));
220
6
                        } else {
221
6
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
6
                                    apply<check_overflow_for_decimal>(
223
6
                                            a, b[i], *type_left, *type_right, res_data_type,
224
6
                                            max_result_number, scale_diff_multiplier));
225
6
                        }
226
6
                    }
227
6
                },
228
6
                make_bool_variant(check_overflow_for_decimal));
229
6
        return column_result;
230
6
    }
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
472
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
472
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
472
        auto column_result =
207
472
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
472
        auto& b = column_right_ptr->get_data();
210
472
        auto& c = column_result->get_data();
211
472
        std::visit(
212
472
                [&](auto check_overflow_for_decimal) {
213
472
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
472
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
472
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
472
                                    apply<check_overflow_for_decimal>(
217
472
                                            a.value(), b[i].value(), *type_left, *type_right,
218
472
                                            res_data_type, max_result_number,
219
472
                                            scale_diff_multiplier));
220
472
                        } else {
221
472
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
472
                                    apply<check_overflow_for_decimal>(
223
472
                                            a, b[i], *type_left, *type_right, res_data_type,
224
472
                                            max_result_number, scale_diff_multiplier));
225
472
                        }
226
472
                    }
227
472
                },
228
472
                make_bool_variant(check_overflow_for_decimal));
229
472
        return column_result;
230
472
    }
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.30k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
2.30k
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
2.30k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
2.30k
        auto column_result =
301
2.30k
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
2.30k
        auto sz = column_left->size();
303
2.30k
        const auto& a = column_left_ptr->get_data().data();
304
2.30k
        const auto& b = column_right_ptr->get_data().data();
305
2.30k
        const auto& c = column_result->get_data().data();
306
2.30k
        std::visit(
307
2.31k
                [&](auto check_overflow_for_decimal) {
308
142k
                    for (size_t i = 0; i < sz; i++) {
309
140k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
1.86k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
1.86k
                                    apply<check_overflow_for_decimal>(
312
1.86k
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
1.86k
                                            res_data_type, max_result_number,
314
1.86k
                                            scale_diff_multiplier));
315
138k
                        } else {
316
138k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
138k
                                    apply<check_overflow_for_decimal>(
318
138k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
138k
                                            max_result_number, scale_diff_multiplier));
320
138k
                        }
321
140k
                    }
322
2.31k
                },
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
738
                [&](auto check_overflow_for_decimal) {
308
132k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
131k
                        } else {
316
131k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
131k
                                    apply<check_overflow_for_decimal>(
318
131k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
131k
                                            max_result_number, scale_diff_multiplier));
320
131k
                        }
321
131k
                    }
322
738
                },
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
240
                [&](auto check_overflow_for_decimal) {
308
1.35k
                    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
240
                },
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
665
                [&](auto check_overflow_for_decimal) {
308
4.24k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
3.57k
                        } else {
316
3.57k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
3.57k
                                    apply<check_overflow_for_decimal>(
318
3.57k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
3.57k
                                            max_result_number, scale_diff_multiplier));
320
3.57k
                        }
321
3.57k
                    }
322
665
                },
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.30k
                make_bool_variant(check_overflow_for_decimal));
324
2.30k
        return column_result;
325
2.30k
    }
_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
153
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
153
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
153
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
153
        auto column_result =
301
153
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
153
        auto sz = column_left->size();
303
153
        const auto& a = column_left_ptr->get_data().data();
304
153
        const auto& b = column_right_ptr->get_data().data();
305
153
        const auto& c = column_result->get_data().data();
306
153
        std::visit(
307
153
                [&](auto check_overflow_for_decimal) {
308
153
                    for (size_t i = 0; i < sz; i++) {
309
153
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
153
                                    apply<check_overflow_for_decimal>(
312
153
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
153
                                            res_data_type, max_result_number,
314
153
                                            scale_diff_multiplier));
315
153
                        } else {
316
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
153
                                    apply<check_overflow_for_decimal>(
318
153
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
153
                                            max_result_number, scale_diff_multiplier));
320
153
                        }
321
153
                    }
322
153
                },
323
153
                make_bool_variant(check_overflow_for_decimal));
324
153
        return column_result;
325
153
    }
_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
56
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
56
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
56
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
56
        auto column_result =
301
56
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
56
        auto sz = column_left->size();
303
56
        const auto& a = column_left_ptr->get_data().data();
304
56
        const auto& b = column_right_ptr->get_data().data();
305
56
        const auto& c = column_result->get_data().data();
306
56
        std::visit(
307
56
                [&](auto check_overflow_for_decimal) {
308
56
                    for (size_t i = 0; i < sz; i++) {
309
56
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
56
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
56
                                    apply<check_overflow_for_decimal>(
312
56
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
56
                                            res_data_type, max_result_number,
314
56
                                            scale_diff_multiplier));
315
56
                        } else {
316
56
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
56
                                    apply<check_overflow_for_decimal>(
318
56
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
56
                                            max_result_number, scale_diff_multiplier));
320
56
                        }
321
56
                    }
322
56
                },
323
56
                make_bool_variant(check_overflow_for_decimal));
324
56
        return column_result;
325
56
    }
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
166
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
166
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
166
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
166
        auto column_result =
301
166
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
166
        auto sz = column_left->size();
303
166
        const auto& a = column_left_ptr->get_data().data();
304
166
        const auto& b = column_right_ptr->get_data().data();
305
166
        const auto& c = column_result->get_data().data();
306
166
        std::visit(
307
166
                [&](auto check_overflow_for_decimal) {
308
166
                    for (size_t i = 0; i < sz; i++) {
309
166
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
166
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
166
                                    apply<check_overflow_for_decimal>(
312
166
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
166
                                            res_data_type, max_result_number,
314
166
                                            scale_diff_multiplier));
315
166
                        } else {
316
166
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
166
                                    apply<check_overflow_for_decimal>(
318
166
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
166
                                            max_result_number, scale_diff_multiplier));
320
166
                        }
321
166
                    }
322
166
                },
323
166
                make_bool_variant(check_overflow_for_decimal));
324
166
        return column_result;
325
166
    }
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
735
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
735
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
735
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
735
        auto column_result =
301
735
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
735
        auto sz = column_left->size();
303
735
        const auto& a = column_left_ptr->get_data().data();
304
735
        const auto& b = column_right_ptr->get_data().data();
305
735
        const auto& c = column_result->get_data().data();
306
735
        std::visit(
307
735
                [&](auto check_overflow_for_decimal) {
308
735
                    for (size_t i = 0; i < sz; i++) {
309
735
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
735
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
735
                                    apply<check_overflow_for_decimal>(
312
735
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
735
                                            res_data_type, max_result_number,
314
735
                                            scale_diff_multiplier));
315
735
                        } else {
316
735
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
735
                                    apply<check_overflow_for_decimal>(
318
735
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
735
                                            max_result_number, scale_diff_multiplier));
320
735
                        }
321
735
                    }
322
735
                },
323
735
                make_bool_variant(check_overflow_for_decimal));
324
735
        return column_result;
325
735
    }
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
153
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
153
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
153
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
153
        auto column_result =
301
153
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
153
        auto sz = column_left->size();
303
153
        const auto& a = column_left_ptr->get_data().data();
304
153
        const auto& b = column_right_ptr->get_data().data();
305
153
        const auto& c = column_result->get_data().data();
306
153
        std::visit(
307
153
                [&](auto check_overflow_for_decimal) {
308
153
                    for (size_t i = 0; i < sz; i++) {
309
153
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
153
                                    apply<check_overflow_for_decimal>(
312
153
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
153
                                            res_data_type, max_result_number,
314
153
                                            scale_diff_multiplier));
315
153
                        } else {
316
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
153
                                    apply<check_overflow_for_decimal>(
318
153
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
153
                                            max_result_number, scale_diff_multiplier));
320
153
                        }
321
153
                    }
322
153
                },
323
153
                make_bool_variant(check_overflow_for_decimal));
324
153
        return column_result;
325
153
    }
_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
240
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
240
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
240
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
240
        auto column_result =
301
240
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
240
        auto sz = column_left->size();
303
240
        const auto& a = column_left_ptr->get_data().data();
304
240
        const auto& b = column_right_ptr->get_data().data();
305
240
        const auto& c = column_result->get_data().data();
306
240
        std::visit(
307
240
                [&](auto check_overflow_for_decimal) {
308
240
                    for (size_t i = 0; i < sz; i++) {
309
240
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
240
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
240
                                    apply<check_overflow_for_decimal>(
312
240
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
240
                                            res_data_type, max_result_number,
314
240
                                            scale_diff_multiplier));
315
240
                        } else {
316
240
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
240
                                    apply<check_overflow_for_decimal>(
318
240
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
240
                                            max_result_number, scale_diff_multiplier));
320
240
                        }
321
240
                    }
322
240
                },
323
240
                make_bool_variant(check_overflow_for_decimal));
324
240
        return column_result;
325
240
    }
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
663
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
663
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
663
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
663
        auto column_result =
301
663
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
663
        auto sz = column_left->size();
303
663
        const auto& a = column_left_ptr->get_data().data();
304
663
        const auto& b = column_right_ptr->get_data().data();
305
663
        const auto& c = column_result->get_data().data();
306
663
        std::visit(
307
663
                [&](auto check_overflow_for_decimal) {
308
663
                    for (size_t i = 0; i < sz; i++) {
309
663
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
663
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
663
                                    apply<check_overflow_for_decimal>(
312
663
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
663
                                            res_data_type, max_result_number,
314
663
                                            scale_diff_multiplier));
315
663
                        } else {
316
663
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
663
                                    apply<check_overflow_for_decimal>(
318
663
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
663
                                            max_result_number, scale_diff_multiplier));
320
663
                        }
321
663
                    }
322
663
                },
323
663
                make_bool_variant(check_overflow_for_decimal));
324
663
        return column_result;
325
663
    }
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.26M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
5.26M
        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.26M
        } else {
350
5.26M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
5.26M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
5.26M
                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.26M
                } else {
360
5.26M
                    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.26M
                }
368
5.26M
                return res;
369
5.26M
            } else {
370
0
                res = Impl::template apply<ResultType>(a, b);
371
0
                return res;
372
0
            }
373
5.26M
        }
374
5.26M
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb1ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
943
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
943
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
943
            if constexpr (check_overflow) {
337
943
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
943
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
9
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
9
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
9
                                    DecimalV2Value(a).to_string(), "add",
342
9
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
9
                                    type_to_string(ResultType));
344
9
                }
345
934
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
        } else {
350
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
                                    type_left.to_string(ArgA(a)), "add",
357
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
                                    type_result.get_name());
359
                } else {
360
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
                                        type_left.to_string(ArgA(a)), "add",
364
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
                                        type_result.get_name());
366
                    }
367
                }
368
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
        }
374
943
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE5applyILb0ELS2_20EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_20EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
388
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
388
        } else {
350
388
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
388
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
388
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
388
                } else {
360
388
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
388
                }
368
388
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
388
        }
374
388
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEiiRKNS_15DataTypeDecimalILS2_28EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
2.88M
            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.88M
        } else {
350
2.88M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.88M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.88M
                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.88M
                } else {
360
2.88M
                    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.88M
                }
368
2.88M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.88M
        }
374
2.88M
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEllRKNS_15DataTypeDecimalILS2_29EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Line
Count
Source
333
131k
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
131k
        } else {
350
131k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
131k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
131k
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
131k
                } else {
360
131k
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
131k
                }
368
131k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
131k
        }
374
131k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Line
Count
Source
333
16
            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
16
        } else {
350
16
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
16
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
16
                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
16
                } else {
360
16
                    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
16
                }
368
16
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
16
        }
374
16
    }
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
436
            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
436
        } else {
350
436
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
436
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
436
                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
436
                } else {
360
436
                    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
436
                }
368
436
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
436
        }
374
436
    }
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.23M
            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.23M
        } else {
350
2.23M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.23M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.23M
                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.23M
                } else {
360
2.23M
                    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.23M
                }
368
2.23M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.23M
        }
374
2.23M
    }
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.93k
            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.93k
        } else {
350
3.93k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.93k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.93k
                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.92k
                } else {
360
3.92k
                    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.92k
                }
368
3.92k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.93k
        }
374
3.93k
    }
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
92
            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
92
        } else {
350
92
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
92
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
92
                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
92
                } else {
360
92
                    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
92
                }
368
92
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
92
        }
374
92
    }
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
5.83k
                           const DataTypeDecimal<PT>& type_result) {
381
5.83k
        auto max_result_number =
382
5.83k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
5.83k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
5.83k
        auto result_scale = type_result.get_scale();
386
5.83k
        DCHECK(orig_result_scale >= result_scale);
387
5.83k
        auto scale_diff_multiplier =
388
5.83k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
5.83k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
5.83k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
5.83k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
163
                           const DataTypeDecimal<PT>& type_result) {
381
163
        auto max_result_number =
382
163
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
163
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
163
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
163
        auto scale_diff_multiplier =
388
163
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
163
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
163
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
163
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
66
                           const DataTypeDecimal<PT>& type_result) {
381
66
        auto max_result_number =
382
66
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
66
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
66
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
66
        auto scale_diff_multiplier =
388
66
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
66
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
66
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
66
    }
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
2.79k
                           const DataTypeDecimal<PT>& type_result) {
381
2.79k
        auto max_result_number =
382
2.79k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
2.79k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
2.79k
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
2.79k
        auto scale_diff_multiplier =
388
2.79k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
2.79k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
2.79k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
2.79k
    }
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
748
                           const DataTypeDecimal<PT>& type_result) {
381
748
        auto max_result_number =
382
748
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
748
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
748
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
748
        auto scale_diff_multiplier =
388
748
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
748
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
748
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
748
    }
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
13
                           const DataTypeDecimal<PT>& type_result) {
381
13
        auto max_result_number =
382
13
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
13
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
13
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
13
        auto scale_diff_multiplier =
388
13
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
13
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
13
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
13
    }
_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
131
                           const DataTypeDecimal<PT>& type_result) {
381
131
        auto max_result_number =
382
131
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
131
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
131
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
131
        auto scale_diff_multiplier =
388
131
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
131
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
131
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
131
    }
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
940
                           const DataTypeDecimal<PT>& type_result) {
381
940
        auto max_result_number =
382
940
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
940
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
940
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
940
        auto scale_diff_multiplier =
388
940
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
940
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
940
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
940
    }
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
731
                           const DataTypeDecimal<PT>& type_result) {
381
731
        auto max_result_number =
382
731
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
731
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
731
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
731
        auto scale_diff_multiplier =
388
731
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
731
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
731
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
731
    }
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
88
                           const DataTypeDecimal<PT>& type_result) {
381
88
        auto max_result_number =
382
88
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
88
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
88
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
88
        auto scale_diff_multiplier =
388
88
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
88
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
88
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
88
    }
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
21.2k
    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
188
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
162
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE6createEv
Line
Count
Source
401
22
    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
31
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE6createEv
Line
Count
Source
401
148
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE6createEv
Line
Count
Source
401
13.2k
    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
226
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
271
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE6createEv
Line
Count
Source
401
95
    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
246
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE6createEv
Line
Count
Source
401
54
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE6createEv
Line
Count
Source
401
5.00k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE6createEv
Line
Count
Source
401
214
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE6createEv
Line
Count
Source
401
638
    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
21.2k
    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
188
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
162
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEEC2Ev
Line
Count
Source
403
22
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEEC2Ev
Line
Count
Source
403
10
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEEC2Ev
Line
Count
Source
403
31
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
148
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
13.2k
    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
226
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
271
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEEC2Ev
Line
Count
Source
403
95
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEEC2Ev
Line
Count
Source
403
9
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEEC2Ev
Line
Count
Source
403
246
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
54
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
5.00k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
214
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
638
    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
15.4k
    bool need_replace_null_data_to_default() const override {
408
15.4k
        return Impl::need_replace_null_data_to_default;
409
15.4k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
121
    bool need_replace_null_data_to_default() const override {
408
121
        return Impl::need_replace_null_data_to_default;
409
121
    }
_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
119
    bool need_replace_null_data_to_default() const override {
408
119
        return Impl::need_replace_null_data_to_default;
409
119
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
313
    bool need_replace_null_data_to_default() const override {
408
313
        return Impl::need_replace_null_data_to_default;
409
313
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
12
    bool need_replace_null_data_to_default() const override {
408
12
        return Impl::need_replace_null_data_to_default;
409
12
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
49
    bool need_replace_null_data_to_default() const override {
408
49
        return Impl::need_replace_null_data_to_default;
409
49
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
105
    bool need_replace_null_data_to_default() const override {
408
105
        return Impl::need_replace_null_data_to_default;
409
105
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.55k
    bool need_replace_null_data_to_default() const override {
408
1.55k
        return Impl::need_replace_null_data_to_default;
409
1.55k
    }
_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
3.46k
    bool need_replace_null_data_to_default() const override {
408
3.46k
        return Impl::need_replace_null_data_to_default;
409
3.46k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
121
    bool need_replace_null_data_to_default() const override {
408
121
        return Impl::need_replace_null_data_to_default;
409
121
    }
_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
373
    bool need_replace_null_data_to_default() const override {
408
373
        return Impl::need_replace_null_data_to_default;
409
373
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
456
    bool need_replace_null_data_to_default() const override {
408
456
        return Impl::need_replace_null_data_to_default;
409
456
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
23
    bool need_replace_null_data_to_default() const override {
408
23
        return Impl::need_replace_null_data_to_default;
409
23
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
455
    bool need_replace_null_data_to_default() const override {
408
455
        return Impl::need_replace_null_data_to_default;
409
455
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
118
    bool need_replace_null_data_to_default() const override {
408
118
        return Impl::need_replace_null_data_to_default;
409
118
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
6.30k
    bool need_replace_null_data_to_default() const override {
408
6.30k
        return Impl::need_replace_null_data_to_default;
409
6.30k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
186
    bool need_replace_null_data_to_default() const override {
408
186
        return Impl::need_replace_null_data_to_default;
409
186
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.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
21.0k
    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
179
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
153
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
13
    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
22
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
139
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
13.2k
    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
217
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
262
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
86
    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
237
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
45
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
4.98k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
205
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
629
    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
21.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
21.0k
        return arguments[0];
419
21.0k
    }
_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
179
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
179
        return arguments[0];
419
179
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
153
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
153
        return arguments[0];
419
153
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
13
        return arguments[0];
419
13
    }
_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
22
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
22
        return arguments[0];
419
22
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
139
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
139
        return arguments[0];
419
139
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
13.2k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
13.2k
        return arguments[0];
419
13.2k
    }
_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
217
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
217
        return arguments[0];
419
217
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
262
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
262
        return arguments[0];
419
262
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
86
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
86
        return arguments[0];
419
86
    }
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
237
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
237
        return arguments[0];
419
237
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
45
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
45
        return arguments[0];
419
45
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
4.99k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
4.99k
        return arguments[0];
419
4.99k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
205
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
205
        return arguments[0];
419
205
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
629
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
629
        return arguments[0];
419
629
    }
_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
126k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
499
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
201
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
5.93k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.99k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
180
    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
324
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
554
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
47.9k
    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
11.5k
    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
484
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.92k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.35k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
415
    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.13k
    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
39.8k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.30k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.15k
    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
37.8k
                        uint32_t result, size_t input_rows_count) const override {
425
37.8k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
37.8k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
37.8k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
37.8k
                block.get_by_position(arguments[0]).type.get());
429
37.8k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
37.8k
                block.get_by_position(arguments[1]).type.get());
431
37.8k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
37.8k
        bool is_const_left = is_column_const(*column_left);
433
37.8k
        bool is_const_right = is_column_const(*column_right);
434
435
37.8k
        ColumnPtr column_result = nullptr;
436
37.8k
        if (is_const_left && is_const_right) {
437
264
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
264
                                              res_data_type, context->check_overflow_for_decimal());
439
37.6k
        } else if (is_const_left) {
440
4.39k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
4.39k
                                            res_data_type, context->check_overflow_for_decimal());
442
33.2k
        } else if (is_const_right) {
443
5.78k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
5.78k
                                            res_data_type, context->check_overflow_for_decimal());
445
27.4k
        } else {
446
27.4k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
27.4k
                                          res_data_type, context->check_overflow_for_decimal());
448
27.4k
        }
449
37.8k
        block.replace_by_position(result, std::move(column_result));
450
37.8k
        return Status::OK();
451
37.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
67
                        uint32_t result, size_t input_rows_count) const override {
425
67
        auto& column_left = block.get_by_position(arguments[0]).column;
426
67
        auto& column_right = block.get_by_position(arguments[1]).column;
427
67
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
67
                block.get_by_position(arguments[0]).type.get());
429
67
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
67
                block.get_by_position(arguments[1]).type.get());
431
67
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
67
        bool is_const_left = is_column_const(*column_left);
433
67
        bool is_const_right = is_column_const(*column_right);
434
435
67
        ColumnPtr column_result = nullptr;
436
67
        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
67
        } 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
66
        } 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
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
67
        block.replace_by_position(result, std::move(column_result));
450
67
        return Status::OK();
451
67
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
2.79k
                        uint32_t result, size_t input_rows_count) const override {
425
2.79k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
2.79k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
2.79k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
2.79k
                block.get_by_position(arguments[0]).type.get());
429
2.79k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
2.79k
                block.get_by_position(arguments[1]).type.get());
431
2.79k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
2.79k
        bool is_const_left = is_column_const(*column_left);
433
2.79k
        bool is_const_right = is_column_const(*column_right);
434
435
2.79k
        ColumnPtr column_result = nullptr;
436
2.79k
        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
2.79k
        } else if (is_const_left) {
440
2.61k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2.61k
                                            res_data_type, context->check_overflow_for_decimal());
442
2.61k
        } 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
2.79k
        block.replace_by_position(result, std::move(column_result));
450
2.79k
        return Status::OK();
451
2.79k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
753
                        uint32_t result, size_t input_rows_count) const override {
425
753
        auto& column_left = block.get_by_position(arguments[0]).column;
426
753
        auto& column_right = block.get_by_position(arguments[1]).column;
427
753
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
753
                block.get_by_position(arguments[0]).type.get());
429
753
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
753
                block.get_by_position(arguments[1]).type.get());
431
753
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
753
        bool is_const_left = is_column_const(*column_left);
433
753
        bool is_const_right = is_column_const(*column_right);
434
435
753
        ColumnPtr column_result = nullptr;
436
753
        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
753
        } else if (is_const_left) {
440
6
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
6
                                            res_data_type, context->check_overflow_for_decimal());
442
747
        } else if (is_const_right) {
443
10
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
10
                                            res_data_type, context->check_overflow_for_decimal());
445
737
        } else {
446
737
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
737
                                          res_data_type, context->check_overflow_for_decimal());
448
737
        }
449
753
        block.replace_by_position(result, std::move(column_result));
450
753
        return Status::OK();
451
753
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
13
                        uint32_t result, size_t input_rows_count) const override {
425
13
        auto& column_left = block.get_by_position(arguments[0]).column;
426
13
        auto& column_right = block.get_by_position(arguments[1]).column;
427
13
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
13
                block.get_by_position(arguments[0]).type.get());
429
13
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
13
                block.get_by_position(arguments[1]).type.get());
431
13
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
13
        bool is_const_left = is_column_const(*column_left);
433
13
        bool is_const_right = is_column_const(*column_right);
434
435
13
        ColumnPtr column_result = nullptr;
436
13
        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
12
        } 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
12
        } else if (is_const_right) {
443
4
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
4
                                            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
13
        block.replace_by_position(result, std::move(column_result));
450
13
        return Status::OK();
451
13
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
65
                        uint32_t result, size_t input_rows_count) const override {
425
65
        auto& column_left = block.get_by_position(arguments[0]).column;
426
65
        auto& column_right = block.get_by_position(arguments[1]).column;
427
65
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
65
                block.get_by_position(arguments[0]).type.get());
429
65
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
65
                block.get_by_position(arguments[1]).type.get());
431
65
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
65
        bool is_const_left = is_column_const(*column_left);
433
65
        bool is_const_right = is_column_const(*column_right);
434
435
65
        ColumnPtr column_result = nullptr;
436
65
        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
63
        } 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
63
        } 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
63
        } else {
446
63
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
63
                                          res_data_type, context->check_overflow_for_decimal());
448
63
        }
449
65
        block.replace_by_position(result, std::move(column_result));
450
65
        return Status::OK();
451
65
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
125
                        uint32_t result, size_t input_rows_count) const override {
425
125
        auto& column_left = block.get_by_position(arguments[0]).column;
426
125
        auto& column_right = block.get_by_position(arguments[1]).column;
427
125
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
125
                block.get_by_position(arguments[0]).type.get());
429
125
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
125
                block.get_by_position(arguments[1]).type.get());
431
125
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
125
        bool is_const_left = is_column_const(*column_left);
433
125
        bool is_const_right = is_column_const(*column_right);
434
435
125
        ColumnPtr column_result = nullptr;
436
125
        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
125
        } else if (is_const_left) {
440
64
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
64
                                            res_data_type, context->check_overflow_for_decimal());
442
64
        } else if (is_const_right) {
443
5
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
5
                                            res_data_type, context->check_overflow_for_decimal());
445
56
        } else {
446
56
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
56
                                          res_data_type, context->check_overflow_for_decimal());
448
56
        }
449
125
        block.replace_by_position(result, std::move(column_result));
450
125
        return Status::OK();
451
125
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
16.2k
                        uint32_t result, size_t input_rows_count) const override {
425
16.2k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
16.2k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
16.2k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
16.2k
                block.get_by_position(arguments[0]).type.get());
429
16.2k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
16.2k
                block.get_by_position(arguments[1]).type.get());
431
16.2k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
16.2k
        bool is_const_left = is_column_const(*column_left);
433
16.2k
        bool is_const_right = is_column_const(*column_right);
434
435
16.2k
        ColumnPtr column_result = nullptr;
436
16.2k
        if (is_const_left && is_const_right) {
437
51
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
51
                                              res_data_type, context->check_overflow_for_decimal());
439
16.1k
        } else if (is_const_left) {
440
38
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
38
                                            res_data_type, context->check_overflow_for_decimal());
442
16.1k
        } else if (is_const_right) {
443
855
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
855
                                            res_data_type, context->check_overflow_for_decimal());
445
15.2k
        } else {
446
15.2k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
15.2k
                                          res_data_type, context->check_overflow_for_decimal());
448
15.2k
        }
449
16.2k
        block.replace_by_position(result, std::move(column_result));
450
16.2k
        return Status::OK();
451
16.2k
    }
_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.71k
                        uint32_t result, size_t input_rows_count) const override {
425
3.71k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
3.71k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
3.71k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
3.71k
                block.get_by_position(arguments[0]).type.get());
429
3.71k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
3.71k
                block.get_by_position(arguments[1]).type.get());
431
3.71k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
3.71k
        bool is_const_left = is_column_const(*column_left);
433
3.71k
        bool is_const_right = is_column_const(*column_right);
434
435
3.71k
        ColumnPtr column_result = nullptr;
436
3.71k
        if (is_const_left && is_const_right) {
437
24
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
24
                                              res_data_type, context->check_overflow_for_decimal());
439
3.68k
        } else if (is_const_left) {
440
1.18k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
1.18k
                                            res_data_type, context->check_overflow_for_decimal());
442
2.50k
        } 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.45k
        } else {
446
2.45k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
2.45k
                                          res_data_type, context->check_overflow_for_decimal());
448
2.45k
        }
449
3.71k
        block.replace_by_position(result, std::move(column_result));
450
3.71k
        return Status::OK();
451
3.71k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
164
                        uint32_t result, size_t input_rows_count) const override {
425
164
        auto& column_left = block.get_by_position(arguments[0]).column;
426
164
        auto& column_right = block.get_by_position(arguments[1]).column;
427
164
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
164
                block.get_by_position(arguments[0]).type.get());
429
164
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
164
                block.get_by_position(arguments[1]).type.get());
431
164
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
164
        bool is_const_left = is_column_const(*column_left);
433
164
        bool is_const_right = is_column_const(*column_right);
434
435
164
        ColumnPtr column_result = nullptr;
436
164
        if (is_const_left && is_const_right) {
437
6
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
6
                                              res_data_type, context->check_overflow_for_decimal());
439
158
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
156
        } else if (is_const_right) {
443
2
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
2
                                            res_data_type, context->check_overflow_for_decimal());
445
154
        } else {
446
154
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
154
                                          res_data_type, context->check_overflow_for_decimal());
448
154
        }
449
164
        block.replace_by_position(result, std::move(column_result));
450
164
        return Status::OK();
451
164
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
131
                        uint32_t result, size_t input_rows_count) const override {
425
131
        auto& column_left = block.get_by_position(arguments[0]).column;
426
131
        auto& column_right = block.get_by_position(arguments[1]).column;
427
131
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
131
                block.get_by_position(arguments[0]).type.get());
429
131
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
131
                block.get_by_position(arguments[1]).type.get());
431
131
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
131
        bool is_const_left = is_column_const(*column_left);
433
131
        bool is_const_right = is_column_const(*column_right);
434
435
131
        ColumnPtr column_result = nullptr;
436
131
        if (is_const_left && is_const_right) {
437
58
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
58
                                              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
131
        block.replace_by_position(result, std::move(column_result));
450
131
        return Status::OK();
451
131
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
940
                        uint32_t result, size_t input_rows_count) const override {
425
940
        auto& column_left = block.get_by_position(arguments[0]).column;
426
940
        auto& column_right = block.get_by_position(arguments[1]).column;
427
940
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
940
                block.get_by_position(arguments[0]).type.get());
429
940
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
940
                block.get_by_position(arguments[1]).type.get());
431
940
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
940
        bool is_const_left = is_column_const(*column_left);
433
940
        bool is_const_right = is_column_const(*column_right);
434
435
940
        ColumnPtr column_result = nullptr;
436
940
        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
940
        } else if (is_const_left) {
440
472
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
472
                                            res_data_type, context->check_overflow_for_decimal());
442
472
        } else if (is_const_right) {
443
228
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
228
                                            res_data_type, context->check_overflow_for_decimal());
445
240
        } else {
446
240
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
240
                                          res_data_type, context->check_overflow_for_decimal());
448
240
        }
449
940
        block.replace_by_position(result, std::move(column_result));
450
940
        return Status::OK();
451
940
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
730
                        uint32_t result, size_t input_rows_count) const override {
425
730
        auto& column_left = block.get_by_position(arguments[0]).column;
426
730
        auto& column_right = block.get_by_position(arguments[1]).column;
427
730
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
730
                block.get_by_position(arguments[0]).type.get());
429
730
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
730
                block.get_by_position(arguments[1]).type.get());
431
730
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
730
        bool is_const_left = is_column_const(*column_left);
433
730
        bool is_const_right = is_column_const(*column_right);
434
435
730
        ColumnPtr column_result = nullptr;
436
730
        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
730
        } 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
729
        } else if (is_const_right) {
443
66
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
66
                                            res_data_type, context->check_overflow_for_decimal());
445
663
        } else {
446
663
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
663
                                          res_data_type, context->check_overflow_for_decimal());
448
663
        }
449
730
        block.replace_by_position(result, std::move(column_result));
450
730
        return Status::OK();
451
730
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
88
                        uint32_t result, size_t input_rows_count) const override {
425
88
        auto& column_left = block.get_by_position(arguments[0]).column;
426
88
        auto& column_right = block.get_by_position(arguments[1]).column;
427
88
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
88
                block.get_by_position(arguments[0]).type.get());
429
88
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
88
                block.get_by_position(arguments[1]).type.get());
431
88
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
88
        bool is_const_left = is_column_const(*column_left);
433
88
        bool is_const_right = is_column_const(*column_right);
434
435
88
        ColumnPtr column_result = nullptr;
436
88
        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
86
        } 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
86
        } 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
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
88
        block.replace_by_position(result, std::move(column_result));
450
88
        return Status::OK();
451
88
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
488
                        uint32_t result, size_t input_rows_count) const override {
425
488
        auto& column_left = block.get_by_position(arguments[0]).column;
426
488
        auto& column_right = block.get_by_position(arguments[1]).column;
427
488
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
488
                block.get_by_position(arguments[0]).type.get());
429
488
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
488
                block.get_by_position(arguments[1]).type.get());
431
488
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
488
        bool is_const_left = is_column_const(*column_left);
433
488
        bool is_const_right = is_column_const(*column_right);
434
435
488
        ColumnPtr column_result = nullptr;
436
488
        if (is_const_left && is_const_right) {
437
7
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
7
                                              res_data_type, context->check_overflow_for_decimal());
439
481
        } 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
481
        } else if (is_const_right) {
443
434
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
434
                                            res_data_type, context->check_overflow_for_decimal());
445
434
        } 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
488
        block.replace_by_position(result, std::move(column_result));
450
488
        return Status::OK();
451
488
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
143
                        uint32_t result, size_t input_rows_count) const override {
425
143
        auto& column_left = block.get_by_position(arguments[0]).column;
426
143
        auto& column_right = block.get_by_position(arguments[1]).column;
427
143
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
143
                block.get_by_position(arguments[0]).type.get());
429
143
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
143
                block.get_by_position(arguments[1]).type.get());
431
143
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
143
        bool is_const_left = is_column_const(*column_left);
433
143
        bool is_const_right = is_column_const(*column_right);
434
435
143
        ColumnPtr column_result = nullptr;
436
143
        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
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
143
        block.replace_by_position(result, std::move(column_result));
450
143
        return Status::OK();
451
143
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
9.02k
                        uint32_t result, size_t input_rows_count) const override {
425
9.02k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
9.02k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
9.02k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
9.02k
                block.get_by_position(arguments[0]).type.get());
429
9.02k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
9.02k
                block.get_by_position(arguments[1]).type.get());
431
9.02k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
9.02k
        bool is_const_left = is_column_const(*column_left);
433
9.02k
        bool is_const_right = is_column_const(*column_right);
434
435
9.02k
        ColumnPtr column_result = nullptr;
436
9.02k
        if (is_const_left && is_const_right) {
437
85
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
85
                                              res_data_type, context->check_overflow_for_decimal());
439
8.94k
        } else if (is_const_left) {
440
13
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
13
                                            res_data_type, context->check_overflow_for_decimal());
442
8.92k
        } else if (is_const_right) {
443
3.66k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
3.66k
                                            res_data_type, context->check_overflow_for_decimal());
445
5.25k
        } else {
446
5.25k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
5.25k
                                          res_data_type, context->check_overflow_for_decimal());
448
5.25k
        }
449
9.02k
        block.replace_by_position(result, std::move(column_result));
450
9.02k
        return Status::OK();
451
9.02k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
307
                        uint32_t result, size_t input_rows_count) const override {
425
307
        auto& column_left = block.get_by_position(arguments[0]).column;
426
307
        auto& column_right = block.get_by_position(arguments[1]).column;
427
307
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
307
                block.get_by_position(arguments[0]).type.get());
429
307
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
307
                block.get_by_position(arguments[1]).type.get());
431
307
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
307
        bool is_const_left = is_column_const(*column_left);
433
307
        bool is_const_right = is_column_const(*column_right);
434
435
307
        ColumnPtr column_result = nullptr;
436
307
        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
306
        } 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
306
        } else if (is_const_right) {
443
111
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
111
                                            res_data_type, context->check_overflow_for_decimal());
445
195
        } else {
446
195
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
195
                                          res_data_type, context->check_overflow_for_decimal());
448
195
        }
449
307
        block.replace_by_position(result, std::move(column_result));
450
307
        return Status::OK();
451
307
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
1.77k
                        uint32_t result, size_t input_rows_count) const override {
425
1.77k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
1.77k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
1.77k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
1.77k
                block.get_by_position(arguments[0]).type.get());
429
1.77k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
1.77k
                block.get_by_position(arguments[1]).type.get());
431
1.77k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
1.77k
        bool is_const_left = is_column_const(*column_left);
433
1.77k
        bool is_const_right = is_column_const(*column_right);
434
435
1.77k
        ColumnPtr column_result = nullptr;
436
1.77k
        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
259
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
259
                                            res_data_type, context->check_overflow_for_decimal());
445
1.49k
        } else {
446
1.49k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
1.49k
                                          res_data_type, context->check_overflow_for_decimal());
448
1.49k
        }
449
1.77k
        block.replace_by_position(result, std::move(column_result));
450
1.77k
        return Status::OK();
451
1.77k
    }
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
264
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
264
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
264
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
264
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
264
        ColumnPtr column_result = nullptr;
463
464
264
        if constexpr (result_is_decimal) {
465
74
            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
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
                            })) {
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
58
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
58
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
58
                                        type_left, type_right, type_result);
497
498
58
                                column_result = Impl::constant_constant(
499
58
                                        column_left_ptr
500
58
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
58
                                        column_right_ptr
502
58
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
58
                                        type_left, type_right, max_and_multiplier.first,
504
58
                                        max_and_multiplier.second, type_result,
505
58
                                        check_overflow_for_decimal);
506
58
                                return true;
507
58
                            })) {
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
62
            }
513
190
        } else {
514
190
            column_result = Impl::constant_constant(
515
190
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
190
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
190
        }
518
519
74
        return ColumnConst::create(std::move(column_result), column_left->size());
520
264
    }
_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
51
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
51
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
51
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
51
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
51
        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
51
        } else {
514
51
            column_result = Impl::constant_constant(
515
51
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
51
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
51
        }
518
519
51
        return ColumnConst::create(std::move(column_result), column_left->size());
520
51
    }
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
58
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
58
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
58
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
58
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
58
        ColumnPtr column_result = nullptr;
463
464
58
        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
58
            } else {
492
58
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
493
58
                                         DataTypeDecimal256>(
494
58
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
495
58
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
496
58
                                        type_left, type_right, type_result);
497
498
58
                                column_result = Impl::constant_constant(
499
58
                                        column_left_ptr
500
58
                                                ->template get_value<Impl::DataTypeA::PType>(),
501
58
                                        column_right_ptr
502
58
                                                ->template get_value<Impl::DataTypeB::PType>(),
503
58
                                        type_left, type_right, max_and_multiplier.first,
504
58
                                        max_and_multiplier.second, type_result,
505
58
                                        check_overflow_for_decimal);
506
58
                                return true;
507
58
                            })) {
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
58
            }
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
58
        return ColumnConst::create(std::move(column_result), column_left->size());
520
58
    }
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
7
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
7
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
7
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
7
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
7
        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
7
        } else {
514
7
            column_result = Impl::constant_constant(
515
7
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
7
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
7
        }
518
519
7
        return ColumnConst::create(std::move(column_result), column_left->size());
520
7
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_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_13PrimitiveTypeE6EEEEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
457
85
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
85
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
85
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
85
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
85
        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
85
        } else {
514
85
            column_result = Impl::constant_constant(
515
85
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
85
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
85
        }
518
519
85
        return ColumnConst::create(std::move(column_result), column_left->size());
520
85
    }
_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.78k
                              bool check_overflow_for_decimal) const {
526
5.78k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
5.78k
        DCHECK(column_right_ptr != nullptr);
528
529
5.78k
        ColumnPtr res = nullptr;
530
5.78k
        if constexpr (result_is_decimal) {
531
357
            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
353
            } else {
551
353
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
353
                                         DataTypeDecimal256>(
553
353
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
353
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
353
                                        type_left, type_right, type_result);
556
353
                                res = Impl::vector_constant(
557
353
                                        column_left->get_ptr(),
558
353
                                        column_right_ptr
559
353
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
353
                                        type_left, type_right, max_and_multiplier.first,
561
353
                                        max_and_multiplier.second, type_result,
562
353
                                        check_overflow_for_decimal);
563
353
                                return true;
564
353
                            })) {
_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
10
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
10
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
10
                                        type_left, type_right, type_result);
556
10
                                res = Impl::vector_constant(
557
10
                                        column_left->get_ptr(),
558
10
                                        column_right_ptr
559
10
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
10
                                        type_left, type_right, max_and_multiplier.first,
561
10
                                        max_and_multiplier.second, type_result,
562
10
                                        check_overflow_for_decimal);
563
10
                                return true;
564
10
                            })) {
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
4
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
4
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
4
                                        type_left, type_right, type_result);
556
4
                                res = Impl::vector_constant(
557
4
                                        column_left->get_ptr(),
558
4
                                        column_right_ptr
559
4
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
4
                                        type_left, type_right, max_and_multiplier.first,
561
4
                                        max_and_multiplier.second, type_result,
562
4
                                        check_overflow_for_decimal);
563
4
                                return true;
564
4
                            })) {
_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
228
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
228
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
228
                                        type_left, type_right, type_result);
556
228
                                res = Impl::vector_constant(
557
228
                                        column_left->get_ptr(),
558
228
                                        column_right_ptr
559
228
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
228
                                        type_left, type_right, max_and_multiplier.first,
561
228
                                        max_and_multiplier.second, type_result,
562
228
                                        check_overflow_for_decimal);
563
228
                                return true;
564
228
                            })) {
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
66
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
66
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
66
                                        type_left, type_right, type_result);
556
66
                                res = Impl::vector_constant(
557
66
                                        column_left->get_ptr(),
558
66
                                        column_right_ptr
559
66
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
66
                                        type_left, type_right, max_and_multiplier.first,
561
66
                                        max_and_multiplier.second, type_result,
562
66
                                        check_overflow_for_decimal);
563
66
                                return true;
564
66
                            })) {
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
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
353
            }
570
5.42k
        } else {
571
5.42k
            res = Impl::vector_constant(
572
5.42k
                    column_left->get_ptr(),
573
5.42k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
5.42k
        }
575
357
        return res;
576
5.78k
    }
_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
10
                              bool check_overflow_for_decimal) const {
526
10
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
10
        DCHECK(column_right_ptr != nullptr);
528
529
10
        ColumnPtr res = nullptr;
530
10
        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
10
            } else {
551
10
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
10
                                         DataTypeDecimal256>(
553
10
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
10
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
10
                                        type_left, type_right, type_result);
556
10
                                res = Impl::vector_constant(
557
10
                                        column_left->get_ptr(),
558
10
                                        column_right_ptr
559
10
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
10
                                        type_left, type_right, max_and_multiplier.first,
561
10
                                        max_and_multiplier.second, type_result,
562
10
                                        check_overflow_for_decimal);
563
10
                                return true;
564
10
                            })) {
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
10
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
10
        return res;
576
10
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
4
                              bool check_overflow_for_decimal) const {
526
4
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
4
        DCHECK(column_right_ptr != nullptr);
528
529
4
        ColumnPtr res = nullptr;
530
4
        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
4
            } else {
551
4
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
4
                                         DataTypeDecimal256>(
553
4
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
4
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
4
                                        type_left, type_right, type_result);
556
4
                                res = Impl::vector_constant(
557
4
                                        column_left->get_ptr(),
558
4
                                        column_right_ptr
559
4
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
4
                                        type_left, type_right, max_and_multiplier.first,
561
4
                                        max_and_multiplier.second, type_result,
562
4
                                        check_overflow_for_decimal);
563
4
                                return true;
564
4
                            })) {
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
4
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
4
        return res;
576
4
    }
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
5
                              bool check_overflow_for_decimal) const {
526
5
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
5
        DCHECK(column_right_ptr != nullptr);
528
529
5
        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
5
        } else {
571
5
            res = Impl::vector_constant(
572
5
                    column_left->get_ptr(),
573
5
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
5
        }
575
5
        return res;
576
5
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
855
                              bool check_overflow_for_decimal) const {
526
855
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
855
        DCHECK(column_right_ptr != nullptr);
528
529
855
        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
855
        } else {
571
855
            res = Impl::vector_constant(
572
855
                    column_left->get_ptr(),
573
855
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
855
        }
575
855
        return res;
576
855
    }
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
228
                              bool check_overflow_for_decimal) const {
526
228
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
228
        DCHECK(column_right_ptr != nullptr);
528
529
228
        ColumnPtr res = nullptr;
530
228
        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
228
            } else {
551
228
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
228
                                         DataTypeDecimal256>(
553
228
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
228
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
228
                                        type_left, type_right, type_result);
556
228
                                res = Impl::vector_constant(
557
228
                                        column_left->get_ptr(),
558
228
                                        column_right_ptr
559
228
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
228
                                        type_left, type_right, max_and_multiplier.first,
561
228
                                        max_and_multiplier.second, type_result,
562
228
                                        check_overflow_for_decimal);
563
228
                                return true;
564
228
                            })) {
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
228
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
228
        return res;
576
228
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
66
                              bool check_overflow_for_decimal) const {
526
66
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
66
        DCHECK(column_right_ptr != nullptr);
528
529
66
        ColumnPtr res = nullptr;
530
66
        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
66
            } else {
551
66
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
66
                                         DataTypeDecimal256>(
553
66
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
66
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
66
                                        type_left, type_right, type_result);
556
66
                                res = Impl::vector_constant(
557
66
                                        column_left->get_ptr(),
558
66
                                        column_right_ptr
559
66
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
66
                                        type_left, type_right, max_and_multiplier.first,
561
66
                                        max_and_multiplier.second, type_result,
562
66
                                        check_overflow_for_decimal);
563
66
                                return true;
564
66
                            })) {
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
66
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
66
        return res;
576
66
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_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
    }
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
434
                              bool check_overflow_for_decimal) const {
526
434
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
434
        DCHECK(column_right_ptr != nullptr);
528
529
434
        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
434
        } else {
571
434
            res = Impl::vector_constant(
572
434
                    column_left->get_ptr(),
573
434
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
434
        }
575
434
        return res;
576
434
    }
_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.67k
                              bool check_overflow_for_decimal) const {
526
3.67k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
3.67k
        DCHECK(column_right_ptr != nullptr);
528
529
3.67k
        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.67k
        } else {
571
3.67k
            res = Impl::vector_constant(
572
3.67k
                    column_left->get_ptr(),
573
3.67k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
3.67k
        }
575
3.67k
        return res;
576
3.67k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
111
                              bool check_overflow_for_decimal) const {
526
111
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
111
        DCHECK(column_right_ptr != nullptr);
528
529
111
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
111
        } else {
571
111
            res = Impl::vector_constant(
572
111
                    column_left->get_ptr(),
573
111
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
111
        }
575
111
        return res;
576
111
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
260
                              bool check_overflow_for_decimal) const {
526
260
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
260
        DCHECK(column_right_ptr != nullptr);
528
529
260
        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
260
        } else {
571
260
            res = Impl::vector_constant(
572
260
                    column_left->get_ptr(),
573
260
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
260
        }
575
260
        return res;
576
260
    }
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.39k
                              bool check_overflow_for_decimal) const {
582
4.39k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
4.39k
        DCHECK(column_left_ptr != nullptr);
584
585
4.39k
        ColumnPtr res = nullptr;
586
4.39k
        if constexpr (result_is_decimal) {
587
3.10k
            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.09k
            } else {
607
3.09k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.09k
                                         DataTypeDecimal256>(
609
3.09k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.09k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.09k
                                        type_left, type_right, type_result);
612
3.09k
                                res = Impl::constant_vector(
613
3.09k
                                        column_left_ptr
614
3.09k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.09k
                                        column_right->get_ptr(), type_left, type_right,
616
3.09k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.09k
                                        type_result, check_overflow_for_decimal);
618
3.09k
                                return true;
619
3.09k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
2.61k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.61k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.61k
                                        type_left, type_right, type_result);
612
2.61k
                                res = Impl::constant_vector(
613
2.61k
                                        column_left_ptr
614
2.61k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.61k
                                        column_right->get_ptr(), type_left, type_right,
616
2.61k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.61k
                                        type_result, check_overflow_for_decimal);
618
2.61k
                                return true;
619
2.61k
                            })) {
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
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
6
                                        type_left, type_right, type_result);
612
6
                                res = Impl::constant_vector(
613
6
                                        column_left_ptr
614
6
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
6
                                        column_right->get_ptr(), type_left, type_right,
616
6
                                        max_and_multiplier.first, max_and_multiplier.second,
617
6
                                        type_result, check_overflow_for_decimal);
618
6
                                return true;
619
6
                            })) {
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
472
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
472
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
472
                                        type_left, type_right, type_result);
612
472
                                res = Impl::constant_vector(
613
472
                                        column_left_ptr
614
472
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
472
                                        column_right->get_ptr(), type_left, type_right,
616
472
                                        max_and_multiplier.first, max_and_multiplier.second,
617
472
                                        type_result, check_overflow_for_decimal);
618
472
                                return true;
619
472
                            })) {
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.09k
            }
625
3.10k
        } else {
626
1.29k
            res = Impl::constant_vector(
627
1.29k
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
1.29k
                    column_right->get_ptr());
629
1.29k
        }
630
3.10k
        return res;
631
4.39k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2
                              bool check_overflow_for_decimal) const {
582
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2
        DCHECK(column_left_ptr != nullptr);
584
585
2
        ColumnPtr res = nullptr;
586
2
        if constexpr (result_is_decimal) {
587
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
602
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
0
                                    type_to_string(res_data_type->get_primitive_type()));
605
0
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2
        return res;
631
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
1
                              bool check_overflow_for_decimal) const {
582
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1
        DCHECK(column_left_ptr != nullptr);
584
585
1
        ColumnPtr res = nullptr;
586
1
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
1
            } else {
607
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
1
                                         DataTypeDecimal256>(
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
1
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
1
        return res;
631
1
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2.61k
                              bool check_overflow_for_decimal) const {
582
2.61k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2.61k
        DCHECK(column_left_ptr != nullptr);
584
585
2.61k
        ColumnPtr res = nullptr;
586
2.61k
        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.61k
            } else {
607
2.61k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
2.61k
                                         DataTypeDecimal256>(
609
2.61k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.61k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.61k
                                        type_left, type_right, type_result);
612
2.61k
                                res = Impl::constant_vector(
613
2.61k
                                        column_left_ptr
614
2.61k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.61k
                                        column_right->get_ptr(), type_left, type_right,
616
2.61k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.61k
                                        type_result, check_overflow_for_decimal);
618
2.61k
                                return true;
619
2.61k
                            })) {
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.61k
            }
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.61k
        return res;
631
2.61k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
6
                              bool check_overflow_for_decimal) const {
582
6
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
6
        DCHECK(column_left_ptr != nullptr);
584
585
6
        ColumnPtr res = nullptr;
586
6
        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
6
            } else {
607
6
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
6
                                         DataTypeDecimal256>(
609
6
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
6
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
6
                                        type_left, type_right, type_result);
612
6
                                res = Impl::constant_vector(
613
6
                                        column_left_ptr
614
6
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
6
                                        column_right->get_ptr(), type_left, type_right,
616
6
                                        max_and_multiplier.first, max_and_multiplier.second,
617
6
                                        type_result, check_overflow_for_decimal);
618
6
                                return true;
619
6
                            })) {
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
6
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
6
        return res;
631
6
    }
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
64
                              bool check_overflow_for_decimal) const {
582
64
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
64
        DCHECK(column_left_ptr != nullptr);
584
585
64
        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
64
        } else {
626
64
            res = Impl::constant_vector(
627
64
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
64
                    column_right->get_ptr());
629
64
        }
630
64
        return res;
631
64
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
38
                              bool check_overflow_for_decimal) const {
582
38
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
38
        DCHECK(column_left_ptr != nullptr);
584
585
38
        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
38
        } else {
626
38
            res = Impl::constant_vector(
627
38
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
38
                    column_right->get_ptr());
629
38
        }
630
38
        return res;
631
38
    }
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
1.18k
                              bool check_overflow_for_decimal) const {
582
1.18k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1.18k
        DCHECK(column_left_ptr != nullptr);
584
585
1.18k
        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
1.18k
        } else {
626
1.18k
            res = Impl::constant_vector(
627
1.18k
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
1.18k
                    column_right->get_ptr());
629
1.18k
        }
630
1.18k
        return res;
631
1.18k
    }
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
472
                              bool check_overflow_for_decimal) const {
582
472
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
472
        DCHECK(column_left_ptr != nullptr);
584
585
472
        ColumnPtr res = nullptr;
586
472
        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
472
            } else {
607
472
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
472
                                         DataTypeDecimal256>(
609
472
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
472
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
472
                                        type_left, type_right, type_result);
612
472
                                res = Impl::constant_vector(
613
472
                                        column_left_ptr
614
472
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
472
                                        column_right->get_ptr(), type_left, type_right,
616
472
                                        max_and_multiplier.first, max_and_multiplier.second,
617
472
                                        type_result, check_overflow_for_decimal);
618
472
                                return true;
619
472
                            })) {
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
472
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
472
        return res;
631
472
    }
_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
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
13
                              bool check_overflow_for_decimal) const {
582
13
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
13
        DCHECK(column_left_ptr != nullptr);
584
585
13
        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
13
        } else {
626
13
            res = Impl::constant_vector(
627
13
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
13
                    column_right->get_ptr());
629
13
        }
630
13
        return res;
631
13
    }
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
27.4k
                            bool check_overflow_for_decimal) const {
637
27.4k
        ColumnPtr res = nullptr;
638
27.4k
        if constexpr (result_is_decimal) {
639
2.31k
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
306
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
306
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
306
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
306
                                        type_left, type_right, type_result);
644
306
                                res = Impl::vector_vector(column_left->get_ptr(),
645
306
                                                          column_right->get_ptr(), type_left,
646
306
                                                          type_right, max_and_multiplier.first,
647
306
                                                          max_and_multiplier.second, type_result,
648
306
                                                          check_overflow_for_decimal);
649
306
                                return true;
650
306
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
152
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
152
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
152
                                        type_left, type_right, type_result);
644
152
                                res = Impl::vector_vector(column_left->get_ptr(),
645
152
                                                          column_right->get_ptr(), type_left,
646
152
                                                          type_right, max_and_multiplier.first,
647
152
                                                          max_and_multiplier.second, type_result,
648
152
                                                          check_overflow_for_decimal);
649
152
                                return true;
650
152
                            })) {
_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
2.00k
            } else {
656
2.00k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
2.00k
                                         DataTypeDecimal256>(
658
2.00k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
2.00k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
2.00k
                                        type_left, type_right, type_result);
661
2.00k
                                res = Impl::vector_vector(column_left->get_ptr(),
662
2.00k
                                                          column_right->get_ptr(), type_left,
663
2.00k
                                                          type_right, max_and_multiplier.first,
664
2.00k
                                                          max_and_multiplier.second, type_result,
665
2.00k
                                                          check_overflow_for_decimal);
666
2.00k
                                return true;
667
2.00k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
57
                                        type_left, type_right, type_result);
661
57
                                res = Impl::vector_vector(column_left->get_ptr(),
662
57
                                                          column_right->get_ptr(), type_left,
663
57
                                                          type_right, max_and_multiplier.first,
664
57
                                                          max_and_multiplier.second, type_result,
665
57
                                                          check_overflow_for_decimal);
666
57
                                return true;
667
57
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_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
166
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
166
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
166
                                        type_left, type_right, type_result);
661
166
                                res = Impl::vector_vector(column_left->get_ptr(),
662
166
                                                          column_right->get_ptr(), type_left,
663
166
                                                          type_right, max_and_multiplier.first,
664
166
                                                          max_and_multiplier.second, type_result,
665
166
                                                          check_overflow_for_decimal);
666
166
                                return true;
667
166
                            })) {
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
734
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
734
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
734
                                        type_left, type_right, type_result);
661
734
                                res = Impl::vector_vector(column_left->get_ptr(),
662
734
                                                          column_right->get_ptr(), type_left,
663
734
                                                          type_right, max_and_multiplier.first,
664
734
                                                          max_and_multiplier.second, type_result,
665
734
                                                          check_overflow_for_decimal);
666
734
                                return true;
667
734
                            })) {
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
240
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
240
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
240
                                        type_left, type_right, type_result);
661
240
                                res = Impl::vector_vector(column_left->get_ptr(),
662
240
                                                          column_right->get_ptr(), type_left,
663
240
                                                          type_right, max_and_multiplier.first,
664
240
                                                          max_and_multiplier.second, type_result,
665
240
                                                          check_overflow_for_decimal);
666
240
                                return true;
667
240
                            })) {
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
663
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
663
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
663
                                        type_left, type_right, type_result);
661
663
                                res = Impl::vector_vector(column_left->get_ptr(),
662
663
                                                          column_right->get_ptr(), type_left,
663
663
                                                          type_right, max_and_multiplier.first,
664
663
                                                          max_and_multiplier.second, type_result,
665
663
                                                          check_overflow_for_decimal);
666
663
                                return true;
667
663
                            })) {
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
2.00k
            }
673
25.1k
        } else {
674
25.1k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
25.1k
        }
676
2.31k
        return res;
677
27.4k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
152
                            bool check_overflow_for_decimal) const {
637
152
        ColumnPtr res = nullptr;
638
152
        if constexpr (result_is_decimal) {
639
152
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
152
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
152
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
152
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
152
                                        type_left, type_right, type_result);
644
152
                                res = Impl::vector_vector(column_left->get_ptr(),
645
152
                                                          column_right->get_ptr(), type_left,
646
152
                                                          type_right, max_and_multiplier.first,
647
152
                                                          max_and_multiplier.second, type_result,
648
152
                                                          check_overflow_for_decimal);
649
152
                                return true;
650
152
                            })) {
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
152
        return res;
677
152
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_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_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
736
                            bool check_overflow_for_decimal) const {
637
736
        ColumnPtr res = nullptr;
638
736
        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
736
            } else {
656
736
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
736
                                         DataTypeDecimal256>(
658
736
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
736
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
736
                                        type_left, type_right, type_result);
661
736
                                res = Impl::vector_vector(column_left->get_ptr(),
662
736
                                                          column_right->get_ptr(), type_left,
663
736
                                                          type_right, max_and_multiplier.first,
664
736
                                                          max_and_multiplier.second, type_result,
665
736
                                                          check_overflow_for_decimal);
666
736
                                return true;
667
736
                            })) {
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
736
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
736
        return res;
677
736
    }
_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
63
                            bool check_overflow_for_decimal) const {
637
63
        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
63
        } else {
674
63
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
63
        }
676
63
        return res;
677
63
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
56
                            bool check_overflow_for_decimal) const {
637
56
        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
56
        } else {
674
56
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
56
        }
676
56
        return res;
677
56
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
15.3k
                            bool check_overflow_for_decimal) const {
637
15.3k
        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
15.3k
        } else {
674
15.3k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
15.3k
        }
676
15.3k
        return res;
677
15.3k
    }
_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.45k
                            bool check_overflow_for_decimal) const {
637
2.45k
        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.45k
        } else {
674
2.45k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
2.45k
        }
676
2.45k
        return res;
677
2.45k
    }
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
240
                            bool check_overflow_for_decimal) const {
637
240
        ColumnPtr res = nullptr;
638
240
        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
240
            } else {
656
240
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
240
                                         DataTypeDecimal256>(
658
240
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
240
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
240
                                        type_left, type_right, type_result);
661
240
                                res = Impl::vector_vector(column_left->get_ptr(),
662
240
                                                          column_right->get_ptr(), type_left,
663
240
                                                          type_right, max_and_multiplier.first,
664
240
                                                          max_and_multiplier.second, type_result,
665
240
                                                          check_overflow_for_decimal);
666
240
                                return true;
667
240
                            })) {
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
240
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
240
        return res;
677
240
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
664
                            bool check_overflow_for_decimal) const {
637
664
        ColumnPtr res = nullptr;
638
664
        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
664
            } else {
656
664
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
664
                                         DataTypeDecimal256>(
658
664
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
664
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
664
                                        type_left, type_right, type_result);
661
664
                                res = Impl::vector_vector(column_left->get_ptr(),
662
664
                                                          column_right->get_ptr(), type_left,
663
664
                                                          type_right, max_and_multiplier.first,
664
664
                                                          max_and_multiplier.second, type_result,
665
664
                                                          check_overflow_for_decimal);
666
664
                                return true;
667
664
                            })) {
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
664
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
664
        return res;
677
664
    }
_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
5.26k
                            bool check_overflow_for_decimal) const {
637
5.26k
        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
5.26k
        } else {
674
5.26k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
5.26k
        }
676
5.26k
        return res;
677
5.26k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
195
                            bool check_overflow_for_decimal) const {
637
195
        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
195
        } else {
674
195
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
195
        }
676
195
        return res;
677
195
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
1.49k
                            bool check_overflow_for_decimal) const {
637
1.49k
        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.49k
        } else {
674
1.49k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
1.49k
        }
676
1.49k
        return res;
677
1.49k
    }
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