Coverage Report

Created: 2026-10-21 21:59

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
185
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
185
        auto column_result = ColumnType ::create(1);
58
185
        column_result->get_element(0) = Impl::apply(a, b);
59
185
        return column_result;
60
185
    }
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
5
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
5
        auto column_result = ColumnType ::create(1);
58
5
        column_result->get_element(0) = Impl::apply(a, b);
59
5
        return column_result;
60
5
    }
_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
82
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
82
        auto column_result = ColumnType ::create(1);
58
82
        column_result->get_element(0) = Impl::apply(a, b);
59
82
        return column_result;
60
82
    }
_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
936k
        for (size_t i = 0; i < size; ++i) {
70
931k
            c[i] = Impl::apply(a[i], b);
71
931k
        }
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
9
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
9
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
9
        auto column_result = ColumnType::create(column_left->size());
65
66
9
        auto& a = column_left_ptr->get_data();
67
9
        auto& c = column_result->get_data();
68
9
        size_t size = a.size();
69
53
        for (size_t i = 0; i < size; ++i) {
70
44
            c[i] = Impl::apply(a[i], b);
71
44
        }
72
9
        return column_result;
73
9
    }
_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.8k
        for (size_t i = 0; i < size; ++i) {
70
13.9k
            c[i] = Impl::apply(a[i], b);
71
13.9k
        }
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
469
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
469
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
469
        auto column_result = ColumnType::create(column_left->size());
65
66
469
        auto& a = column_left_ptr->get_data();
67
469
        auto& c = column_result->get_data();
68
469
        size_t size = a.size();
69
2.24k
        for (size_t i = 0; i < size; ++i) {
70
1.77k
            c[i] = Impl::apply(a[i], b);
71
1.77k
        }
72
469
        return column_result;
73
469
    }
_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.64k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
3.64k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
3.64k
        auto column_result = ColumnType::create(column_left->size());
65
66
3.64k
        auto& a = column_left_ptr->get_data();
67
3.64k
        auto& c = column_result->get_data();
68
3.64k
        size_t size = a.size();
69
308k
        for (size_t i = 0; i < size; ++i) {
70
304k
            c[i] = Impl::apply(a[i], b);
71
304k
        }
72
3.64k
        return column_result;
73
3.64k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
Line
Count
Source
62
110
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
110
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
110
        auto column_result = ColumnType::create(column_left->size());
65
66
110
        auto& a = column_left_ptr->get_data();
67
110
        auto& c = column_result->get_data();
68
110
        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
110
        return column_result;
73
110
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
252
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
252
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
252
        auto column_result = ColumnType::create(column_left->size());
65
66
252
        auto& a = column_left_ptr->get_data();
67
252
        auto& c = column_result->get_data();
68
252
        size_t size = a.size();
69
606k
        for (size_t i = 0; i < size; ++i) {
70
606k
            c[i] = Impl::apply(a[i], b);
71
606k
        }
72
252
        return column_result;
73
252
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
74
75
808
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
808
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
808
        auto column_result = ColumnType::create(column_right->size());
78
808
        DCHECK(column_right_ptr != nullptr);
79
80
808
        auto& b = column_right_ptr->get_data();
81
808
        auto& c = column_result->get_data();
82
808
        size_t size = b.size();
83
750k
        for (size_t i = 0; i < size; ++i) {
84
749k
            c[i] = Impl::apply(a, b[i]);
85
749k
        }
86
808
        return column_result;
87
808
    }
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
63
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
63
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
63
        auto column_result = ColumnType::create(column_right->size());
78
63
        DCHECK(column_right_ptr != nullptr);
79
80
63
        auto& b = column_right_ptr->get_data();
81
63
        auto& c = column_result->get_data();
82
63
        size_t size = b.size();
83
168
        for (size_t i = 0; i < size; ++i) {
84
105
            c[i] = Impl::apply(a, b[i]);
85
105
        }
86
63
        return column_result;
87
63
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
46
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
46
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
46
        auto column_result = ColumnType::create(column_right->size());
78
46
        DCHECK(column_right_ptr != nullptr);
79
80
46
        auto& b = column_right_ptr->get_data();
81
46
        auto& c = column_result->get_data();
82
46
        size_t size = b.size();
83
637
        for (size_t i = 0; i < size; ++i) {
84
591
            c[i] = Impl::apply(a, b[i]);
85
591
        }
86
46
        return column_result;
87
46
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
686
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
686
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
686
        auto column_result = ColumnType::create(column_right->size());
78
686
        DCHECK(column_right_ptr != nullptr);
79
80
686
        auto& b = column_right_ptr->get_data();
81
686
        auto& c = column_result->get_data();
82
686
        size_t size = b.size();
83
649k
        for (size_t i = 0; i < size; ++i) {
84
648k
            c[i] = Impl::apply(a, b[i]);
85
648k
        }
86
686
        return column_result;
87
686
    }
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
23.0k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
23.0k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
23.0k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
23.0k
        auto column_result = ColumnType::create(column_left->size());
94
95
23.0k
        auto& a = column_left_ptr->get_data();
96
23.0k
        auto& b = column_right_ptr->get_data();
97
23.0k
        auto& c = column_result->get_data();
98
23.0k
        size_t size = a.size();
99
4.84M
        for (size_t i = 0; i < size; ++i) {
100
4.81M
            c[i] = Impl::apply(a[i], b[i]);
101
4.81M
        }
102
23.0k
        return column_result;
103
23.0k
    }
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
13.9k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
13.9k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
13.9k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
13.9k
        auto column_result = ColumnType::create(column_left->size());
94
95
13.9k
        auto& a = column_left_ptr->get_data();
96
13.9k
        auto& b = column_right_ptr->get_data();
97
13.9k
        auto& c = column_result->get_data();
98
13.9k
        size_t size = a.size();
99
247k
        for (size_t i = 0; i < size; ++i) {
100
233k
            c[i] = Impl::apply(a[i], b[i]);
101
233k
        }
102
13.9k
        return column_result;
103
13.9k
    }
_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.03k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
2.03k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
2.03k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
2.03k
        auto column_result = ColumnType::create(column_left->size());
94
95
2.03k
        auto& a = column_left_ptr->get_data();
96
2.03k
        auto& b = column_right_ptr->get_data();
97
2.03k
        auto& c = column_result->get_data();
98
2.03k
        size_t size = a.size();
99
42.2k
        for (size_t i = 0; i < size; ++i) {
100
40.2k
            c[i] = Impl::apply(a[i], b[i]);
101
40.2k
        }
102
2.03k
        return column_result;
103
2.03k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
46
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
46
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
46
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
46
        auto column_result = ColumnType::create(column_left->size());
94
95
46
        auto& a = column_left_ptr->get_data();
96
46
        auto& b = column_right_ptr->get_data();
97
46
        auto& c = column_result->get_data();
98
46
        size_t size = a.size();
99
267
        for (size_t i = 0; i < size; ++i) {
100
221
            c[i] = Impl::apply(a[i], b[i]);
101
221
        }
102
46
        return column_result;
103
46
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
104
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
104
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
104
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
104
        auto column_result = ColumnType::create(column_left->size());
94
95
104
        auto& a = column_left_ptr->get_data();
96
104
        auto& b = column_right_ptr->get_data();
97
104
        auto& c = column_result->get_data();
98
104
        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
104
        return column_result;
103
104
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
5.00k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
5.00k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
5.00k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
5.00k
        auto column_result = ColumnType::create(column_left->size());
94
95
5.00k
        auto& a = column_left_ptr->get_data();
96
5.00k
        auto& b = column_right_ptr->get_data();
97
5.00k
        auto& c = column_result->get_data();
98
5.00k
        size_t size = a.size();
99
4.53M
        for (size_t i = 0; i < size; ++i) {
100
4.52M
            c[i] = Impl::apply(a[i], b[i]);
101
4.52M
        }
102
5.00k
        return column_result;
103
5.00k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
192
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
192
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
192
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
192
        auto column_result = ColumnType::create(column_left->size());
94
95
192
        auto& a = column_left_ptr->get_data();
96
192
        auto& b = column_right_ptr->get_data();
97
192
        auto& c = column_result->get_data();
98
192
        size_t size = a.size();
99
1.18k
        for (size_t i = 0; i < size; ++i) {
100
997
            c[i] = Impl::apply(a[i], b[i]);
101
997
        }
102
192
        return column_result;
103
192
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
1.48k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
1.48k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
1.48k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
1.48k
        auto column_result = ColumnType::create(column_left->size());
94
95
1.48k
        auto& a = column_left_ptr->get_data();
96
1.48k
        auto& b = column_right_ptr->get_data();
97
1.48k
        auto& c = column_result->get_data();
98
1.48k
        size_t size = a.size();
99
9.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.48k
        return column_result;
103
1.48k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
104
};
105
106
template <typename Impl>
107
struct PlusMinusDecimalImpl {
108
    static constexpr bool result_is_decimal = true;
109
    static constexpr auto name = Impl::name;
110
    static constexpr PrimitiveType TypeA = Impl::PTypeA;
111
    static constexpr PrimitiveType TypeB = Impl::PTypeB;
112
    using ArgA = typename PrimitiveTypeTraits<TypeA>::CppType;
113
    using ArgB = typename PrimitiveTypeTraits<TypeB>::CppType;
114
    using ArgNativeTypeA = typename Impl::ArgNativeTypeA;
115
    using ArgNativeTypeB = typename Impl::ArgNativeTypeA;
116
    using DataTypeA = typename PrimitiveTypeTraits<TypeA>::DataType;
117
    using DataTypeB = typename PrimitiveTypeTraits<TypeB>::DataType;
118
    using ColumnTypeA = typename PrimitiveTypeTraits<TypeA>::ColumnType;
119
    using ColumnTypeB = typename PrimitiveTypeTraits<TypeB>::ColumnType;
120
121
    constexpr static bool need_replace_null_data_to_default = true;
122
123
80
    static DataTypes get_variadic_argument_types() {
124
80
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
80
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
80
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
127
128
    template <PrimitiveType ResultType>
129
        requires(is_decimal(ResultType))
130
    static ColumnPtr constant_constant(
131
            ArgA a, ArgB b, const DataTypeA* type_left, const DataTypeB* type_right,
132
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
133
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
134
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
375
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
375
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
375
        auto column_result =
171
375
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
375
        DCHECK(column_left_ptr != nullptr);
173
174
375
        const auto& a = column_left_ptr->get_data();
175
375
        auto& c = column_result->get_data();
176
375
        std::visit(
177
376
                [&](auto check_overflow_for_decimal) {
178
1.86k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
1.48k
                        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.48k
                        } else {
186
1.48k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.48k
                                    apply<check_overflow_for_decimal>(
188
1.48k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.48k
                                            max_result_number, scale_diff_multiplier));
190
1.48k
                        }
191
1.48k
                    }
192
376
                },
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
219
                [&](auto check_overflow_for_decimal) {
178
1.27k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
1.05k
                        } else {
186
1.05k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.05k
                                    apply<check_overflow_for_decimal>(
188
1.05k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.05k
                                            max_result_number, scale_diff_multiplier));
190
1.05k
                        }
191
1.05k
                    }
192
219
                },
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
94
                [&](auto check_overflow_for_decimal) {
178
437
                    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
343
                        } else {
186
343
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
343
                                    apply<check_overflow_for_decimal>(
188
343
                                            a[i], b, *type_left, *type_right, res_data_type,
189
343
                                            max_result_number, scale_diff_multiplier));
190
343
                        }
191
343
                    }
192
94
                },
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
375
                make_bool_variant(check_overflow_for_decimal));
194
195
375
        return column_result;
196
375
    }
_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
219
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
219
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
219
        auto column_result =
171
219
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
219
        DCHECK(column_left_ptr != nullptr);
173
174
219
        const auto& a = column_left_ptr->get_data();
175
219
        auto& c = column_result->get_data();
176
219
        std::visit(
177
219
                [&](auto check_overflow_for_decimal) {
178
219
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
219
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
219
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
219
                                    apply<check_overflow_for_decimal>(
182
219
                                            a[i].value(), b.value(), *type_left, *type_right,
183
219
                                            res_data_type, max_result_number,
184
219
                                            scale_diff_multiplier));
185
219
                        } else {
186
219
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
219
                                    apply<check_overflow_for_decimal>(
188
219
                                            a[i], b, *type_left, *type_right, res_data_type,
189
219
                                            max_result_number, scale_diff_multiplier));
190
219
                        }
191
219
                    }
192
219
                },
193
219
                make_bool_variant(check_overflow_for_decimal));
194
195
219
        return column_result;
196
219
    }
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
93
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
93
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
93
        auto column_result =
171
93
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
93
        DCHECK(column_left_ptr != nullptr);
173
174
93
        const auto& a = column_left_ptr->get_data();
175
93
        auto& c = column_result->get_data();
176
93
        std::visit(
177
93
                [&](auto check_overflow_for_decimal) {
178
93
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
93
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
93
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
93
                                    apply<check_overflow_for_decimal>(
182
93
                                            a[i].value(), b.value(), *type_left, *type_right,
183
93
                                            res_data_type, max_result_number,
184
93
                                            scale_diff_multiplier));
185
93
                        } else {
186
93
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
93
                                    apply<check_overflow_for_decimal>(
188
93
                                            a[i], b, *type_left, *type_right, res_data_type,
189
93
                                            max_result_number, scale_diff_multiplier));
190
93
                        }
191
93
                    }
192
93
                },
193
93
                make_bool_variant(check_overflow_for_decimal));
194
195
93
        return column_result;
196
93
    }
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.80k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.80k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.80k
        auto column_result =
207
3.80k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.80k
        auto& b = column_right_ptr->get_data();
210
3.80k
        auto& c = column_result->get_data();
211
3.80k
        std::visit(
212
3.81k
                [&](auto check_overflow_for_decimal) {
213
5.34M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5.34M
                        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.34M
                        } else {
221
5.34M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5.34M
                                    apply<check_overflow_for_decimal>(
223
5.34M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5.34M
                                            max_result_number, scale_diff_multiplier));
225
5.34M
                        }
226
5.34M
                    }
227
3.81k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
6
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
3.32k
                [&](auto check_overflow_for_decimal) {
213
2.98M
                    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.97M
                        } else {
221
2.97M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.97M
                                    apply<check_overflow_for_decimal>(
223
2.97M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.97M
                                            max_result_number, scale_diff_multiplier));
225
2.97M
                        }
226
2.97M
                    }
227
3.32k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
5
                [&](auto check_overflow_for_decimal) {
213
16
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
11
                        } else {
221
11
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
11
                                    apply<check_overflow_for_decimal>(
223
11
                                            a, b[i], *type_left, *type_right, res_data_type,
224
11
                                            max_result_number, scale_diff_multiplier));
225
11
                        }
226
11
                    }
227
5
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
3
                        } else {
221
3
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3
                                    apply<check_overflow_for_decimal>(
223
3
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3
                                            max_result_number, scale_diff_multiplier));
225
3
                        }
226
3
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
469
                [&](auto check_overflow_for_decimal) {
213
2.36M
                    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.36M
                        } else {
221
2.36M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.36M
                                    apply<check_overflow_for_decimal>(
223
2.36M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.36M
                                            max_result_number, scale_diff_multiplier));
225
2.36M
                        }
226
2.36M
                    }
227
469
                },
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.80k
                make_bool_variant(check_overflow_for_decimal));
229
3.80k
        return column_result;
230
3.80k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
3.32k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
3.32k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
3.32k
        auto column_result =
207
3.32k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
3.32k
        auto& b = column_right_ptr->get_data();
210
3.32k
        auto& c = column_result->get_data();
211
3.32k
        std::visit(
212
3.32k
                [&](auto check_overflow_for_decimal) {
213
3.32k
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
3.32k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
3.32k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
3.32k
                                    apply<check_overflow_for_decimal>(
217
3.32k
                                            a.value(), b[i].value(), *type_left, *type_right,
218
3.32k
                                            res_data_type, max_result_number,
219
3.32k
                                            scale_diff_multiplier));
220
3.32k
                        } else {
221
3.32k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3.32k
                                    apply<check_overflow_for_decimal>(
223
3.32k
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3.32k
                                            max_result_number, scale_diff_multiplier));
225
3.32k
                        }
226
3.32k
                    }
227
3.32k
                },
228
3.32k
                make_bool_variant(check_overflow_for_decimal));
229
3.32k
        return column_result;
230
3.32k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
5
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
5
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
5
        auto column_result =
207
5
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
5
        auto& b = column_right_ptr->get_data();
210
5
        auto& c = column_result->get_data();
211
5
        std::visit(
212
5
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
5
                                    apply<check_overflow_for_decimal>(
217
5
                                            a.value(), b[i].value(), *type_left, *type_right,
218
5
                                            res_data_type, max_result_number,
219
5
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
5
                },
228
5
                make_bool_variant(check_overflow_for_decimal));
229
5
        return column_result;
230
5
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
469
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
469
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
469
        auto column_result =
207
469
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
469
        auto& b = column_right_ptr->get_data();
210
469
        auto& c = column_result->get_data();
211
469
        std::visit(
212
469
                [&](auto check_overflow_for_decimal) {
213
469
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
469
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
469
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
469
                                    apply<check_overflow_for_decimal>(
217
469
                                            a.value(), b[i].value(), *type_left, *type_right,
218
469
                                            res_data_type, max_result_number,
219
469
                                            scale_diff_multiplier));
220
469
                        } else {
221
469
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
469
                                    apply<check_overflow_for_decimal>(
223
469
                                            a, b[i], *type_left, *type_right, res_data_type,
224
469
                                            max_result_number, scale_diff_multiplier));
225
469
                        }
226
469
                    }
227
469
                },
228
469
                make_bool_variant(check_overflow_for_decimal));
229
469
        return column_result;
230
469
    }
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.23k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
2.23k
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
2.23k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
2.23k
        auto column_result =
301
2.23k
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
2.23k
        auto sz = column_left->size();
303
2.23k
        const auto& a = column_left_ptr->get_data().data();
304
2.23k
        const auto& b = column_right_ptr->get_data().data();
305
2.23k
        const auto& c = column_result->get_data().data();
306
2.23k
        std::visit(
307
2.26k
                [&](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.26k
                },
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
672
                [&](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
672
                },
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
250
                [&](auto check_overflow_for_decimal) {
308
1.33k
                    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.08k
                        } else {
316
1.08k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
1.08k
                                    apply<check_overflow_for_decimal>(
318
1.08k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
1.08k
                                            max_result_number, scale_diff_multiplier));
320
1.08k
                        }
321
1.08k
                    }
322
250
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
663
                [&](auto check_overflow_for_decimal) {
308
4.18k
                    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.52k
                        } else {
316
3.52k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
3.52k
                                    apply<check_overflow_for_decimal>(
318
3.52k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
3.52k
                                            max_result_number, scale_diff_multiplier));
320
3.52k
                        }
321
3.52k
                    }
322
663
                },
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.23k
                make_bool_variant(check_overflow_for_decimal));
324
2.23k
        return column_result;
325
2.23k
    }
_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
152
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
152
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
152
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
152
        auto column_result =
301
152
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
152
        auto sz = column_left->size();
303
152
        const auto& a = column_left_ptr->get_data().data();
304
152
        const auto& b = column_right_ptr->get_data().data();
305
152
        const auto& c = column_result->get_data().data();
306
152
        std::visit(
307
152
                [&](auto check_overflow_for_decimal) {
308
152
                    for (size_t i = 0; i < sz; i++) {
309
152
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
152
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
152
                                    apply<check_overflow_for_decimal>(
312
152
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
152
                                            res_data_type, max_result_number,
314
152
                                            scale_diff_multiplier));
315
152
                        } else {
316
152
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
152
                                    apply<check_overflow_for_decimal>(
318
152
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
152
                                            max_result_number, scale_diff_multiplier));
320
152
                        }
321
152
                    }
322
152
                },
323
152
                make_bool_variant(check_overflow_for_decimal));
324
152
        return column_result;
325
152
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
60
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
60
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
60
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
60
        auto column_result =
301
60
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
60
        auto sz = column_left->size();
303
60
        const auto& a = column_left_ptr->get_data().data();
304
60
        const auto& b = column_right_ptr->get_data().data();
305
60
        const auto& c = column_result->get_data().data();
306
60
        std::visit(
307
60
                [&](auto check_overflow_for_decimal) {
308
60
                    for (size_t i = 0; i < sz; i++) {
309
60
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
60
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
60
                                    apply<check_overflow_for_decimal>(
312
60
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
60
                                            res_data_type, max_result_number,
314
60
                                            scale_diff_multiplier));
315
60
                        } else {
316
60
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
60
                                    apply<check_overflow_for_decimal>(
318
60
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
60
                                            max_result_number, scale_diff_multiplier));
320
60
                        }
321
60
                    }
322
60
                },
323
60
                make_bool_variant(check_overflow_for_decimal));
324
60
        return column_result;
325
60
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
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
664
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
664
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
664
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
664
        auto column_result =
301
664
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
664
        auto sz = column_left->size();
303
664
        const auto& a = column_left_ptr->get_data().data();
304
664
        const auto& b = column_right_ptr->get_data().data();
305
664
        const auto& c = column_result->get_data().data();
306
664
        std::visit(
307
664
                [&](auto check_overflow_for_decimal) {
308
664
                    for (size_t i = 0; i < sz; i++) {
309
664
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
664
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
664
                                    apply<check_overflow_for_decimal>(
312
664
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
664
                                            res_data_type, max_result_number,
314
664
                                            scale_diff_multiplier));
315
664
                        } else {
316
664
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
664
                                    apply<check_overflow_for_decimal>(
318
664
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
664
                                            max_result_number, scale_diff_multiplier));
320
664
                        }
321
664
                    }
322
664
                },
323
664
                make_bool_variant(check_overflow_for_decimal));
324
664
        return column_result;
325
664
    }
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
249
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
249
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
249
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
249
        auto column_result =
301
249
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
249
        auto sz = column_left->size();
303
249
        const auto& a = column_left_ptr->get_data().data();
304
249
        const auto& b = column_right_ptr->get_data().data();
305
249
        const auto& c = column_result->get_data().data();
306
249
        std::visit(
307
249
                [&](auto check_overflow_for_decimal) {
308
249
                    for (size_t i = 0; i < sz; i++) {
309
249
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
249
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
249
                                    apply<check_overflow_for_decimal>(
312
249
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
249
                                            res_data_type, max_result_number,
314
249
                                            scale_diff_multiplier));
315
249
                        } else {
316
249
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
249
                                    apply<check_overflow_for_decimal>(
318
249
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
249
                                            max_result_number, scale_diff_multiplier));
320
249
                        }
321
249
                    }
322
249
                },
323
249
                make_bool_variant(check_overflow_for_decimal));
324
249
        return column_result;
325
249
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
655
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
655
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
655
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
655
        auto column_result =
301
655
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
655
        auto sz = column_left->size();
303
655
        const auto& a = column_left_ptr->get_data().data();
304
655
        const auto& b = column_right_ptr->get_data().data();
305
655
        const auto& c = column_result->get_data().data();
306
655
        std::visit(
307
655
                [&](auto check_overflow_for_decimal) {
308
655
                    for (size_t i = 0; i < sz; i++) {
309
655
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
655
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
655
                                    apply<check_overflow_for_decimal>(
312
655
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
655
                                            res_data_type, max_result_number,
314
655
                                            scale_diff_multiplier));
315
655
                        } else {
316
655
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
655
                                    apply<check_overflow_for_decimal>(
318
655
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
655
                                            max_result_number, scale_diff_multiplier));
320
655
                        }
321
655
                    }
322
655
                },
323
655
                make_bool_variant(check_overflow_for_decimal));
324
655
        return column_result;
325
655
    }
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.48M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
5.48M
        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.47M
        } else {
350
5.47M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
5.47M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
5.47M
                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.47M
                } else {
360
5.47M
                    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.47M
                }
368
5.47M
                return res;
369
5.47M
            } else {
370
0
                res = Impl::template apply<ResultType>(a, b);
371
0
                return res;
372
0
            }
373
5.47M
        }
374
5.48M
    }
_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.97M
            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.97M
        } else {
350
2.97M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.97M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.97M
                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.97M
                } else {
360
2.97M
                    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.97M
                }
368
2.97M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.97M
        }
374
2.97M
    }
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.36M
            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.36M
        } else {
350
2.36M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.36M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.36M
                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.36M
                } else {
360
2.36M
                    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.36M
                }
368
2.36M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.36M
        }
374
2.36M
    }
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.87k
            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.87k
        } else {
350
3.87k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.87k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.87k
                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.86k
                } else {
360
3.86k
                    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.86k
                }
368
3.86k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.87k
        }
374
3.87k
    }
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
6.50k
                           const DataTypeDecimal<PT>& type_result) {
381
6.50k
        auto max_result_number =
382
6.50k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
6.50k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
6.50k
        auto result_scale = type_result.get_scale();
386
6.50k
        DCHECK(orig_result_scale >= result_scale);
387
6.50k
        auto scale_diff_multiplier =
388
6.50k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
6.50k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
6.50k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
6.50k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
162
                           const DataTypeDecimal<PT>& type_result) {
381
162
        auto max_result_number =
382
162
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
162
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
162
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
162
        auto scale_diff_multiplier =
388
162
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
162
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
162
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
162
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
69
                           const DataTypeDecimal<PT>& type_result) {
381
69
        auto max_result_number =
382
69
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
69
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
69
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
69
        auto scale_diff_multiplier =
388
69
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
69
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
69
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
69
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
3.50k
                           const DataTypeDecimal<PT>& type_result) {
381
3.50k
        auto max_result_number =
382
3.50k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
3.50k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
3.50k
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
3.50k
        auto scale_diff_multiplier =
388
3.50k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
3.50k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
3.50k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
3.50k
    }
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
684
                           const DataTypeDecimal<PT>& type_result) {
381
684
        auto max_result_number =
382
684
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
684
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
684
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
684
        auto scale_diff_multiplier =
388
684
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
684
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
684
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
684
    }
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
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_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
936
                           const DataTypeDecimal<PT>& type_result) {
381
936
        auto max_result_number =
382
936
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
936
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
936
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
936
        auto scale_diff_multiplier =
388
936
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
936
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
936
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
936
    }
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
750
                           const DataTypeDecimal<PT>& type_result) {
381
750
        auto max_result_number =
382
750
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
750
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
750
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
750
        auto scale_diff_multiplier =
388
750
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
750
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
750
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
750
    }
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.1k
    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
223
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
270
    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
240
    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
4.88k
    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
640
    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.1k
    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
223
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
270
    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
239
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
54
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
4.88k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
214
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
640
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEEC2Ev
Line
Count
Source
403
10
    FunctionPlusMinus() = default;
404
405
35
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
406
407
14.1k
    bool need_replace_null_data_to_default() const override {
408
14.1k
        return Impl::need_replace_null_data_to_default;
409
14.1k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
122
    bool need_replace_null_data_to_default() const override {
408
122
        return Impl::need_replace_null_data_to_default;
409
122
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
41
    bool need_replace_null_data_to_default() const override {
408
41
        return Impl::need_replace_null_data_to_default;
409
41
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
117
    bool need_replace_null_data_to_default() const override {
408
117
        return Impl::need_replace_null_data_to_default;
409
117
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
323
    bool need_replace_null_data_to_default() const override {
408
323
        return Impl::need_replace_null_data_to_default;
409
323
    }
_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
108
    bool need_replace_null_data_to_default() const override {
408
108
        return Impl::need_replace_null_data_to_default;
409
108
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.26k
    bool need_replace_null_data_to_default() const override {
408
1.26k
        return Impl::need_replace_null_data_to_default;
409
1.26k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
76
    bool need_replace_null_data_to_default() const override {
408
76
        return Impl::need_replace_null_data_to_default;
409
76
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
2.56k
    bool need_replace_null_data_to_default() const override {
408
2.56k
        return Impl::need_replace_null_data_to_default;
409
2.56k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
122
    bool need_replace_null_data_to_default() const override {
408
122
        return Impl::need_replace_null_data_to_default;
409
122
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
45
    bool need_replace_null_data_to_default() const override {
408
45
        return Impl::need_replace_null_data_to_default;
409
45
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
374
    bool need_replace_null_data_to_default() const override {
408
374
        return Impl::need_replace_null_data_to_default;
409
374
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
483
    bool need_replace_null_data_to_default() const override {
408
483
        return Impl::need_replace_null_data_to_default;
409
483
    }
_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
491
    bool need_replace_null_data_to_default() const override {
408
491
        return Impl::need_replace_null_data_to_default;
409
491
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
119
    bool need_replace_null_data_to_default() const override {
408
119
        return Impl::need_replace_null_data_to_default;
409
119
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
6.17k
    bool need_replace_null_data_to_default() const override {
408
6.17k
        return Impl::need_replace_null_data_to_default;
409
6.17k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
184
    bool need_replace_null_data_to_default() const override {
408
184
        return Impl::need_replace_null_data_to_default;
409
184
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
1.49k
    bool need_replace_null_data_to_default() const override {
408
1.49k
        return Impl::need_replace_null_data_to_default;
409
1.49k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE33need_replace_null_data_to_defaultEv
410
411
20.8k
    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.1k
    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
214
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
261
    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
230
    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.86k
    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
631
    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
20.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
20.9k
        return arguments[0];
419
20.9k
    }
_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
214
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
214
        return arguments[0];
419
214
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
261
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
261
        return arguments[0];
419
261
    }
_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
231
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
231
        return arguments[0];
419
231
    }
_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.87k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
4.87k
        return arguments[0];
419
4.87k
    }
_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
631
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
631
        return arguments[0];
419
631
    }
_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
122k
    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
203
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
7.34k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.88k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
198
    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
333
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
569
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
45.0k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
418
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
8.80k
    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
499
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
490
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.94k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
2.49k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
451
    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.23k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
554
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
39.7k
    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
35.9k
                        uint32_t result, size_t input_rows_count) const override {
425
35.9k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
35.9k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
35.9k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
35.9k
                block.get_by_position(arguments[0]).type.get());
429
35.9k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
35.9k
                block.get_by_position(arguments[1]).type.get());
431
35.9k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
35.9k
        bool is_const_left = is_column_const(*column_left);
433
35.9k
        bool is_const_right = is_column_const(*column_right);
434
435
35.9k
        ColumnPtr column_result = nullptr;
436
35.9k
        if (is_const_left && is_const_right) {
437
259
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
259
                                              res_data_type, context->check_overflow_for_decimal());
439
35.7k
        } else if (is_const_left) {
440
4.61k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
4.61k
                                            res_data_type, context->check_overflow_for_decimal());
442
31.1k
        } else if (is_const_right) {
443
5.80k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
5.80k
                                            res_data_type, context->check_overflow_for_decimal());
445
25.2k
        } else {
446
25.2k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
25.2k
                                          res_data_type, context->check_overflow_for_decimal());
448
25.2k
        }
449
35.9k
        block.replace_by_position(result, std::move(column_result));
450
35.9k
        return Status::OK();
451
35.9k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
164
                        uint32_t result, size_t input_rows_count) const override {
425
164
        auto& column_left = block.get_by_position(arguments[0]).column;
426
164
        auto& column_right = block.get_by_position(arguments[1]).column;
427
164
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
164
                block.get_by_position(arguments[0]).type.get());
429
164
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
164
                block.get_by_position(arguments[1]).type.get());
431
164
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
164
        bool is_const_left = is_column_const(*column_left);
433
164
        bool is_const_right = is_column_const(*column_right);
434
435
164
        ColumnPtr column_result = nullptr;
436
164
        if (is_const_left && is_const_right) {
437
6
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
6
                                              res_data_type, context->check_overflow_for_decimal());
439
158
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
156
        } else if (is_const_right) {
443
2
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
2
                                            res_data_type, context->check_overflow_for_decimal());
445
154
        } else {
446
154
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
154
                                          res_data_type, context->check_overflow_for_decimal());
448
154
        }
449
164
        block.replace_by_position(result, std::move(column_result));
450
164
        return Status::OK();
451
164
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
68
                        uint32_t result, size_t input_rows_count) const override {
425
68
        auto& column_left = block.get_by_position(arguments[0]).column;
426
68
        auto& column_right = block.get_by_position(arguments[1]).column;
427
68
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
68
                block.get_by_position(arguments[0]).type.get());
429
68
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
68
                block.get_by_position(arguments[1]).type.get());
431
68
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
68
        bool is_const_left = is_column_const(*column_left);
433
68
        bool is_const_right = is_column_const(*column_right);
434
435
68
        ColumnPtr column_result = nullptr;
436
68
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
68
        } else if (is_const_left) {
440
1
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
1
                                            res_data_type, context->check_overflow_for_decimal());
442
67
        } else if (is_const_right) {
443
8
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
8
                                            res_data_type, context->check_overflow_for_decimal());
445
59
        } else {
446
59
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
59
                                          res_data_type, context->check_overflow_for_decimal());
448
59
        }
449
68
        block.replace_by_position(result, std::move(column_result));
450
68
        return Status::OK();
451
68
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
3.50k
                        uint32_t result, size_t input_rows_count) const override {
425
3.50k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
3.50k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
3.50k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
3.50k
                block.get_by_position(arguments[0]).type.get());
429
3.50k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
3.50k
                block.get_by_position(arguments[1]).type.get());
431
3.50k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
3.50k
        bool is_const_left = is_column_const(*column_left);
433
3.50k
        bool is_const_right = is_column_const(*column_right);
434
435
3.50k
        ColumnPtr column_result = nullptr;
436
3.50k
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
3.50k
        } else if (is_const_left) {
440
3.32k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
3.32k
                                            res_data_type, context->check_overflow_for_decimal());
442
3.32k
        } 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
166
        } else {
446
166
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
166
                                          res_data_type, context->check_overflow_for_decimal());
448
166
        }
449
3.50k
        block.replace_by_position(result, std::move(column_result));
450
3.50k
        return Status::OK();
451
3.50k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
681
                        uint32_t result, size_t input_rows_count) const override {
425
681
        auto& column_left = block.get_by_position(arguments[0]).column;
426
681
        auto& column_right = block.get_by_position(arguments[1]).column;
427
681
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
681
                block.get_by_position(arguments[0]).type.get());
429
681
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
681
                block.get_by_position(arguments[1]).type.get());
431
681
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
681
        bool is_const_left = is_column_const(*column_left);
433
681
        bool is_const_right = is_column_const(*column_right);
434
435
681
        ColumnPtr column_result = nullptr;
436
681
        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
681
        } else if (is_const_left) {
440
5
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
5
                                            res_data_type, context->check_overflow_for_decimal());
442
676
        } 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
666
        } else {
446
666
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
666
                                          res_data_type, context->check_overflow_for_decimal());
448
666
        }
449
681
        block.replace_by_position(result, std::move(column_result));
450
681
        return Status::OK();
451
681
    }
_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
128
                        uint32_t result, size_t input_rows_count) const override {
425
128
        auto& column_left = block.get_by_position(arguments[0]).column;
426
128
        auto& column_right = block.get_by_position(arguments[1]).column;
427
128
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
128
                block.get_by_position(arguments[0]).type.get());
429
128
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
128
                block.get_by_position(arguments[1]).type.get());
431
128
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
128
        bool is_const_left = is_column_const(*column_left);
433
128
        bool is_const_right = is_column_const(*column_right);
434
435
128
        ColumnPtr column_result = nullptr;
436
128
        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
128
        } else if (is_const_left) {
440
63
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
63
                                            res_data_type, context->check_overflow_for_decimal());
442
65
        } else if (is_const_right) {
443
9
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
9
                                            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
128
        block.replace_by_position(result, std::move(column_result));
450
128
        return Status::OK();
451
128
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
14.8k
                        uint32_t result, size_t input_rows_count) const override {
425
14.8k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
14.8k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
14.8k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
14.8k
                block.get_by_position(arguments[0]).type.get());
429
14.8k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
14.8k
                block.get_by_position(arguments[1]).type.get());
431
14.8k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
14.8k
        bool is_const_left = is_column_const(*column_left);
433
14.8k
        bool is_const_right = is_column_const(*column_right);
434
435
14.8k
        ColumnPtr column_result = nullptr;
436
14.8k
        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
14.8k
        } else if (is_const_left) {
440
46
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
46
                                            res_data_type, context->check_overflow_for_decimal());
442
14.7k
        } else if (is_const_right) {
443
854
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
854
                                            res_data_type, context->check_overflow_for_decimal());
445
13.9k
        } else {
446
13.9k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
13.9k
                                          res_data_type, context->check_overflow_for_decimal());
448
13.9k
        }
449
14.8k
        block.replace_by_position(result, std::move(column_result));
450
14.8k
        return Status::OK();
451
14.8k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
152
                        uint32_t result, size_t input_rows_count) const override {
425
152
        auto& column_left = block.get_by_position(arguments[0]).column;
426
152
        auto& column_right = block.get_by_position(arguments[1]).column;
427
152
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
152
                block.get_by_position(arguments[0]).type.get());
429
152
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
152
                block.get_by_position(arguments[1]).type.get());
431
152
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
152
        bool is_const_left = is_column_const(*column_left);
433
152
        bool is_const_right = is_column_const(*column_right);
434
435
152
        ColumnPtr column_result = nullptr;
436
152
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
152
        } else if (is_const_left) {
440
0
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
0
                                            res_data_type, context->check_overflow_for_decimal());
442
152
        } else if (is_const_right) {
443
0
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
0
                                            res_data_type, context->check_overflow_for_decimal());
445
152
        } else {
446
152
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
152
                                          res_data_type, context->check_overflow_for_decimal());
448
152
        }
449
152
        block.replace_by_position(result, std::move(column_result));
450
152
        return Status::OK();
451
152
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
2.80k
                        uint32_t result, size_t input_rows_count) const override {
425
2.80k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
2.80k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
2.80k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
2.80k
                block.get_by_position(arguments[0]).type.get());
429
2.80k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
2.80k
                block.get_by_position(arguments[1]).type.get());
431
2.80k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
2.80k
        bool is_const_left = is_column_const(*column_left);
433
2.80k
        bool is_const_right = is_column_const(*column_right);
434
435
2.80k
        ColumnPtr column_result = nullptr;
436
2.80k
        if (is_const_left && is_const_right) {
437
24
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
24
                                              res_data_type, context->check_overflow_for_decimal());
439
2.77k
        } else if (is_const_left) {
440
686
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
686
                                            res_data_type, context->check_overflow_for_decimal());
442
2.09k
        } else if (is_const_right) {
443
52
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
52
                                            res_data_type, context->check_overflow_for_decimal());
445
2.03k
        } else {
446
2.03k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
2.03k
                                          res_data_type, context->check_overflow_for_decimal());
448
2.03k
        }
449
2.80k
        block.replace_by_position(result, std::move(column_result));
450
2.80k
        return Status::OK();
451
2.80k
    }
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
130
                        uint32_t result, size_t input_rows_count) const override {
425
130
        auto& column_left = block.get_by_position(arguments[0]).column;
426
130
        auto& column_right = block.get_by_position(arguments[1]).column;
427
130
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
130
                block.get_by_position(arguments[0]).type.get());
429
130
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
130
                block.get_by_position(arguments[1]).type.get());
431
130
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
130
        bool is_const_left = is_column_const(*column_left);
433
130
        bool is_const_right = is_column_const(*column_right);
434
435
130
        ColumnPtr column_result = nullptr;
436
130
        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
72
        } else if (is_const_left) {
440
2
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2
                                            res_data_type, context->check_overflow_for_decimal());
442
70
        } else if (is_const_right) {
443
13
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
13
                                            res_data_type, context->check_overflow_for_decimal());
445
57
        } else {
446
57
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
57
                                          res_data_type, context->check_overflow_for_decimal());
448
57
        }
449
130
        block.replace_by_position(result, std::move(column_result));
450
130
        return Status::OK();
451
130
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
933
                        uint32_t result, size_t input_rows_count) const override {
425
933
        auto& column_left = block.get_by_position(arguments[0]).column;
426
933
        auto& column_right = block.get_by_position(arguments[1]).column;
427
933
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
933
                block.get_by_position(arguments[0]).type.get());
429
933
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
933
                block.get_by_position(arguments[1]).type.get());
431
933
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
933
        bool is_const_left = is_column_const(*column_left);
433
933
        bool is_const_right = is_column_const(*column_right);
434
435
933
        ColumnPtr column_result = nullptr;
436
933
        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
933
        } else if (is_const_left) {
440
469
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
469
                                            res_data_type, context->check_overflow_for_decimal());
442
469
        } else if (is_const_right) {
443
219
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
219
                                            res_data_type, context->check_overflow_for_decimal());
445
245
        } else {
446
245
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
245
                                          res_data_type, context->check_overflow_for_decimal());
448
245
        }
449
933
        block.replace_by_position(result, std::move(column_result));
450
933
        return Status::OK();
451
933
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
751
                        uint32_t result, size_t input_rows_count) const override {
425
751
        auto& column_left = block.get_by_position(arguments[0]).column;
426
751
        auto& column_right = block.get_by_position(arguments[1]).column;
427
751
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
751
                block.get_by_position(arguments[0]).type.get());
429
751
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
751
                block.get_by_position(arguments[1]).type.get());
431
751
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
751
        bool is_const_left = is_column_const(*column_left);
433
751
        bool is_const_right = is_column_const(*column_right);
434
435
751
        ColumnPtr column_result = nullptr;
436
751
        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
751
        } 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
750
        } else if (is_const_right) {
443
94
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
94
                                            res_data_type, context->check_overflow_for_decimal());
445
656
        } else {
446
656
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
656
                                          res_data_type, context->check_overflow_for_decimal());
448
656
        }
449
751
        block.replace_by_position(result, std::move(column_result));
450
751
        return Status::OK();
451
751
    }
_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
521
                        uint32_t result, size_t input_rows_count) const override {
425
521
        auto& column_left = block.get_by_position(arguments[0]).column;
426
521
        auto& column_right = block.get_by_position(arguments[1]).column;
427
521
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
521
                block.get_by_position(arguments[0]).type.get());
429
521
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
521
                block.get_by_position(arguments[1]).type.get());
431
521
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
521
        bool is_const_left = is_column_const(*column_left);
433
521
        bool is_const_right = is_column_const(*column_right);
434
435
521
        ColumnPtr column_result = nullptr;
436
521
        if (is_const_left && is_const_right) {
437
5
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
5
                                              res_data_type, context->check_overflow_for_decimal());
439
516
        } 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
516
        } else if (is_const_right) {
443
470
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
470
                                            res_data_type, context->check_overflow_for_decimal());
445
470
        } else {
446
46
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
46
                                          res_data_type, context->check_overflow_for_decimal());
448
46
        }
449
521
        block.replace_by_position(result, std::move(column_result));
450
521
        return Status::OK();
451
521
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
144
                        uint32_t result, size_t input_rows_count) const override {
425
144
        auto& column_left = block.get_by_position(arguments[0]).column;
426
144
        auto& column_right = block.get_by_position(arguments[1]).column;
427
144
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
144
                block.get_by_position(arguments[0]).type.get());
429
144
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
144
                block.get_by_position(arguments[1]).type.get());
431
144
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
144
        bool is_const_left = is_column_const(*column_left);
433
144
        bool is_const_right = is_column_const(*column_right);
434
435
144
        ColumnPtr column_result = nullptr;
436
144
        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
143
        } 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
143
        } 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
104
        } else {
446
104
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
104
                                          res_data_type, context->check_overflow_for_decimal());
448
104
        }
449
144
        block.replace_by_position(result, std::move(column_result));
450
144
        return Status::OK();
451
144
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
8.73k
                        uint32_t result, size_t input_rows_count) const override {
425
8.73k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
8.73k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
8.73k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
8.73k
                block.get_by_position(arguments[0]).type.get());
429
8.73k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
8.73k
                block.get_by_position(arguments[1]).type.get());
431
8.73k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
8.73k
        bool is_const_left = is_column_const(*column_left);
433
8.73k
        bool is_const_right = is_column_const(*column_right);
434
435
8.73k
        ColumnPtr column_result = nullptr;
436
8.73k
        if (is_const_left && is_const_right) {
437
82
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
82
                                              res_data_type, context->check_overflow_for_decimal());
439
8.64k
        } 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.63k
        } else if (is_const_right) {
443
3.64k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
3.64k
                                            res_data_type, context->check_overflow_for_decimal());
445
4.99k
        } else {
446
4.99k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
4.99k
                                          res_data_type, context->check_overflow_for_decimal());
448
4.99k
        }
449
8.73k
        block.replace_by_position(result, std::move(column_result));
450
8.73k
        return Status::OK();
451
8.73k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
302
                        uint32_t result, size_t input_rows_count) const override {
425
302
        auto& column_left = block.get_by_position(arguments[0]).column;
426
302
        auto& column_right = block.get_by_position(arguments[1]).column;
427
302
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
302
                block.get_by_position(arguments[0]).type.get());
429
302
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
302
                block.get_by_position(arguments[1]).type.get());
431
302
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
302
        bool is_const_left = is_column_const(*column_left);
433
302
        bool is_const_right = is_column_const(*column_right);
434
435
302
        ColumnPtr column_result = nullptr;
436
302
        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
301
        } 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
301
        } else if (is_const_right) {
443
110
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
110
                                            res_data_type, context->check_overflow_for_decimal());
445
191
        } else {
446
191
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
191
                                          res_data_type, context->check_overflow_for_decimal());
448
191
        }
449
302
        block.replace_by_position(result, std::move(column_result));
450
302
        return Status::OK();
451
302
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
1.75k
                        uint32_t result, size_t input_rows_count) const override {
425
1.75k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
1.75k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
1.75k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
1.75k
                block.get_by_position(arguments[0]).type.get());
429
1.75k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
1.75k
                block.get_by_position(arguments[1]).type.get());
431
1.75k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
1.75k
        bool is_const_left = is_column_const(*column_left);
433
1.75k
        bool is_const_right = is_column_const(*column_right);
434
435
1.75k
        ColumnPtr column_result = nullptr;
436
1.75k
        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.73k
        } 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.73k
        } else if (is_const_right) {
443
252
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
252
                                            res_data_type, context->check_overflow_for_decimal());
445
1.48k
        } else {
446
1.48k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
1.48k
                                          res_data_type, context->check_overflow_for_decimal());
448
1.48k
        }
449
1.75k
        block.replace_by_position(result, std::move(column_result));
450
1.75k
        return Status::OK();
451
1.75k
    }
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
259
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
259
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
259
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
259
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
259
        ColumnPtr column_result = nullptr;
463
464
259
        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
185
        } else {
514
185
            column_result = Impl::constant_constant(
515
185
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
185
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
185
        }
518
519
74
        return ColumnConst::create(std::move(column_result), column_left->size());
520
259
    }
_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
5
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
5
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
5
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
5
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
5
        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
5
        } else {
514
5
            column_result = Impl::constant_constant(
515
5
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
5
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
5
        }
518
519
5
        return ColumnConst::create(std::move(column_result), column_left->size());
520
5
    }
_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
82
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
82
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
82
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
82
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
82
        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
82
        } else {
514
82
            column_result = Impl::constant_constant(
515
82
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
82
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
82
        }
518
519
82
        return ColumnConst::create(std::move(column_result), column_left->size());
520
82
    }
_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.80k
                              bool check_overflow_for_decimal) const {
526
5.80k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
5.80k
        DCHECK(column_right_ptr != nullptr);
528
529
5.80k
        ColumnPtr res = nullptr;
530
5.80k
        if constexpr (result_is_decimal) {
531
376
            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
372
            } else {
551
372
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
372
                                         DataTypeDecimal256>(
553
372
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
371
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
371
                                        type_left, type_right, type_result);
556
371
                                res = Impl::vector_constant(
557
371
                                        column_left->get_ptr(),
558
371
                                        column_right_ptr
559
371
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
371
                                        type_left, type_right, max_and_multiplier.first,
561
371
                                        max_and_multiplier.second, type_result,
562
371
                                        check_overflow_for_decimal);
563
371
                                return true;
564
371
                            })) {
_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
218
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
218
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
218
                                        type_left, type_right, type_result);
556
218
                                res = Impl::vector_constant(
557
218
                                        column_left->get_ptr(),
558
218
                                        column_right_ptr
559
218
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
218
                                        type_left, type_right, max_and_multiplier.first,
561
218
                                        max_and_multiplier.second, type_result,
562
218
                                        check_overflow_for_decimal);
563
218
                                return true;
564
218
                            })) {
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
94
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
94
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
94
                                        type_left, type_right, type_result);
556
94
                                res = Impl::vector_constant(
557
94
                                        column_left->get_ptr(),
558
94
                                        column_right_ptr
559
94
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
94
                                        type_left, type_right, max_and_multiplier.first,
561
94
                                        max_and_multiplier.second, type_result,
562
94
                                        check_overflow_for_decimal);
563
94
                                return true;
564
94
                            })) {
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
372
            }
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
376
        return res;
576
5.80k
    }
_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
9
                              bool check_overflow_for_decimal) const {
526
9
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
9
        DCHECK(column_right_ptr != nullptr);
528
529
9
        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
9
        } else {
571
9
            res = Impl::vector_constant(
572
9
                    column_left->get_ptr(),
573
9
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
9
        }
575
9
        return res;
576
9
    }
_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
52
                              bool check_overflow_for_decimal) const {
526
52
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
52
        DCHECK(column_right_ptr != nullptr);
528
529
52
        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
52
        } else {
571
52
            res = Impl::vector_constant(
572
52
                    column_left->get_ptr(),
573
52
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
52
        }
575
52
        return res;
576
52
    }
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
219
                              bool check_overflow_for_decimal) const {
526
219
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
219
        DCHECK(column_right_ptr != nullptr);
528
529
219
        ColumnPtr res = nullptr;
530
219
        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
219
            } else {
551
219
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
219
                                         DataTypeDecimal256>(
553
219
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
219
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
219
                                        type_left, type_right, type_result);
556
219
                                res = Impl::vector_constant(
557
219
                                        column_left->get_ptr(),
558
219
                                        column_right_ptr
559
219
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
219
                                        type_left, type_right, max_and_multiplier.first,
561
219
                                        max_and_multiplier.second, type_result,
562
219
                                        check_overflow_for_decimal);
563
219
                                return true;
564
219
                            })) {
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
219
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
219
        return res;
576
219
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
94
                              bool check_overflow_for_decimal) const {
526
94
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
94
        DCHECK(column_right_ptr != nullptr);
528
529
94
        ColumnPtr res = nullptr;
530
94
        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
94
            } else {
551
94
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
94
                                         DataTypeDecimal256>(
553
94
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
94
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
94
                                        type_left, type_right, type_result);
556
94
                                res = Impl::vector_constant(
557
94
                                        column_left->get_ptr(),
558
94
                                        column_right_ptr
559
94
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
94
                                        type_left, type_right, max_and_multiplier.first,
561
94
                                        max_and_multiplier.second, type_result,
562
94
                                        check_overflow_for_decimal);
563
94
                                return true;
564
94
                            })) {
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
94
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
94
        return res;
576
94
    }
_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
470
                              bool check_overflow_for_decimal) const {
526
470
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
470
        DCHECK(column_right_ptr != nullptr);
528
529
470
        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
470
        } else {
571
470
            res = Impl::vector_constant(
572
470
                    column_left->get_ptr(),
573
470
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
470
        }
575
470
        return res;
576
470
    }
_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.64k
                              bool check_overflow_for_decimal) const {
526
3.64k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
3.64k
        DCHECK(column_right_ptr != nullptr);
528
529
3.64k
        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.64k
        } else {
571
3.64k
            res = Impl::vector_constant(
572
3.64k
                    column_left->get_ptr(),
573
3.64k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
3.64k
        }
575
3.64k
        return res;
576
3.64k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
110
                              bool check_overflow_for_decimal) const {
526
110
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
110
        DCHECK(column_right_ptr != nullptr);
528
529
110
        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
110
        } else {
571
110
            res = Impl::vector_constant(
572
110
                    column_left->get_ptr(),
573
110
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
110
        }
575
110
        return res;
576
110
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
252
                              bool check_overflow_for_decimal) const {
526
252
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
252
        DCHECK(column_right_ptr != nullptr);
528
529
252
        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
252
        } else {
571
252
            res = Impl::vector_constant(
572
252
                    column_left->get_ptr(),
573
252
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
252
        }
575
252
        return res;
576
252
    }
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.61k
                              bool check_overflow_for_decimal) const {
582
4.61k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
4.61k
        DCHECK(column_left_ptr != nullptr);
584
585
4.61k
        ColumnPtr res = nullptr;
586
4.61k
        if constexpr (result_is_decimal) {
587
3.80k
            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.80k
            } else {
607
3.80k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.80k
                                         DataTypeDecimal256>(
609
3.80k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.80k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.80k
                                        type_left, type_right, type_result);
612
3.80k
                                res = Impl::constant_vector(
613
3.80k
                                        column_left_ptr
614
3.80k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.80k
                                        column_right->get_ptr(), type_left, type_right,
616
3.80k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.80k
                                        type_result, check_overflow_for_decimal);
618
3.80k
                                return true;
619
3.80k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
3.32k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.32k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.32k
                                        type_left, type_right, type_result);
612
3.32k
                                res = Impl::constant_vector(
613
3.32k
                                        column_left_ptr
614
3.32k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.32k
                                        column_right->get_ptr(), type_left, type_right,
616
3.32k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.32k
                                        type_result, check_overflow_for_decimal);
618
3.32k
                                return true;
619
3.32k
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
5
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
5
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
5
                                        type_left, type_right, type_result);
612
5
                                res = Impl::constant_vector(
613
5
                                        column_left_ptr
614
5
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
5
                                        column_right->get_ptr(), type_left, type_right,
616
5
                                        max_and_multiplier.first, max_and_multiplier.second,
617
5
                                        type_result, check_overflow_for_decimal);
618
5
                                return true;
619
5
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2
                                        type_left, type_right, type_result);
612
2
                                res = Impl::constant_vector(
613
2
                                        column_left_ptr
614
2
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2
                                        column_right->get_ptr(), type_left, type_right,
616
2
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2
                                        type_result, check_overflow_for_decimal);
618
2
                                return true;
619
2
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
469
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
469
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
469
                                        type_left, type_right, type_result);
612
469
                                res = Impl::constant_vector(
613
469
                                        column_left_ptr
614
469
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
469
                                        column_right->get_ptr(), type_left, type_right,
616
469
                                        max_and_multiplier.first, max_and_multiplier.second,
617
469
                                        type_result, check_overflow_for_decimal);
618
469
                                return true;
619
469
                            })) {
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.80k
            }
625
3.80k
        } else {
626
808
            res = Impl::constant_vector(
627
808
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
808
                    column_right->get_ptr());
629
808
        }
630
3.80k
        return res;
631
4.61k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
2
                              bool check_overflow_for_decimal) const {
582
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2
        DCHECK(column_left_ptr != nullptr);
584
585
2
        ColumnPtr res = nullptr;
586
2
        if constexpr (result_is_decimal) {
587
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
2
                                        type_left, type_right, type_result);
592
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
2
                                auto src = column_left_ptr
594
2
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
2
                                std::memcpy(&tmp, &src, sizeof(src));
596
2
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
2
                                                            type_right, max_and_multiplier.first,
598
2
                                                            max_and_multiplier.second, type_result,
599
2
                                                            check_overflow_for_decimal);
600
2
                                return true;
601
2
                            })) {
602
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
0
                                    type_to_string(res_data_type->get_primitive_type()));
605
0
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
2
        return res;
631
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
1
                              bool check_overflow_for_decimal) const {
582
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1
        DCHECK(column_left_ptr != nullptr);
584
585
1
        ColumnPtr res = nullptr;
586
1
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
1
            } else {
607
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
1
                                         DataTypeDecimal256>(
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
1
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
1
        return res;
631
1
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
3.32k
                              bool check_overflow_for_decimal) const {
582
3.32k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
3.32k
        DCHECK(column_left_ptr != nullptr);
584
585
3.32k
        ColumnPtr res = nullptr;
586
3.32k
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
3.32k
            } else {
607
3.32k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
3.32k
                                         DataTypeDecimal256>(
609
3.32k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
3.32k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
3.32k
                                        type_left, type_right, type_result);
612
3.32k
                                res = Impl::constant_vector(
613
3.32k
                                        column_left_ptr
614
3.32k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
3.32k
                                        column_right->get_ptr(), type_left, type_right,
616
3.32k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
3.32k
                                        type_result, check_overflow_for_decimal);
618
3.32k
                                return true;
619
3.32k
                            })) {
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.32k
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
3.32k
        return res;
631
3.32k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
5
                              bool check_overflow_for_decimal) const {
582
5
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
5
        DCHECK(column_left_ptr != nullptr);
584
585
5
        ColumnPtr res = nullptr;
586
5
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
5
            } else {
607
5
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
5
                                         DataTypeDecimal256>(
609
5
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
5
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
5
                                        type_left, type_right, type_result);
612
5
                                res = Impl::constant_vector(
613
5
                                        column_left_ptr
614
5
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
5
                                        column_right->get_ptr(), type_left, type_right,
616
5
                                        max_and_multiplier.first, max_and_multiplier.second,
617
5
                                        type_result, check_overflow_for_decimal);
618
5
                                return true;
619
5
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
5
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
5
        return res;
631
5
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
63
                              bool check_overflow_for_decimal) const {
582
63
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
63
        DCHECK(column_left_ptr != nullptr);
584
585
63
        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
63
        } else {
626
63
            res = Impl::constant_vector(
627
63
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
63
                    column_right->get_ptr());
629
63
        }
630
63
        return res;
631
63
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
46
                              bool check_overflow_for_decimal) const {
582
46
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
46
        DCHECK(column_left_ptr != nullptr);
584
585
46
        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
46
        } else {
626
46
            res = Impl::constant_vector(
627
46
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
46
                    column_right->get_ptr());
629
46
        }
630
46
        return res;
631
46
    }
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
686
                              bool check_overflow_for_decimal) const {
582
686
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
686
        DCHECK(column_left_ptr != nullptr);
584
585
686
        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
686
        } else {
626
686
            res = Impl::constant_vector(
627
686
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
686
                    column_right->get_ptr());
629
686
        }
630
686
        return res;
631
686
    }
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
469
                              bool check_overflow_for_decimal) const {
582
469
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
469
        DCHECK(column_left_ptr != nullptr);
584
585
469
        ColumnPtr res = nullptr;
586
469
        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
469
            } else {
607
469
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
469
                                         DataTypeDecimal256>(
609
469
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
469
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
469
                                        type_left, type_right, type_result);
612
469
                                res = Impl::constant_vector(
613
469
                                        column_left_ptr
614
469
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
469
                                        column_right->get_ptr(), type_left, type_right,
616
469
                                        max_and_multiplier.first, max_and_multiplier.second,
617
469
                                        type_result, check_overflow_for_decimal);
618
469
                                return true;
619
469
                            })) {
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
469
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
469
        return res;
631
469
    }
_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
25.3k
                            bool check_overflow_for_decimal) const {
637
25.3k
        ColumnPtr res = nullptr;
638
25.3k
        if constexpr (result_is_decimal) {
639
2.25k
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
308
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
308
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
307
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
307
                                        type_left, type_right, type_result);
644
307
                                res = Impl::vector_vector(column_left->get_ptr(),
645
307
                                                          column_right->get_ptr(), type_left,
646
307
                                                          type_right, max_and_multiplier.first,
647
307
                                                          max_and_multiplier.second, type_result,
648
307
                                                          check_overflow_for_decimal);
649
307
                                return true;
650
307
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
153
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
153
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
153
                                        type_left, type_right, type_result);
644
153
                                res = Impl::vector_vector(column_left->get_ptr(),
645
153
                                                          column_right->get_ptr(), type_left,
646
153
                                                          type_right, max_and_multiplier.first,
647
153
                                                          max_and_multiplier.second, type_result,
648
153
                                                          check_overflow_for_decimal);
649
153
                                return true;
650
153
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
1.94k
            } else {
656
1.94k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
1.94k
                                         DataTypeDecimal256>(
658
1.94k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
1.94k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
1.94k
                                        type_left, type_right, type_result);
661
1.94k
                                res = Impl::vector_vector(column_left->get_ptr(),
662
1.94k
                                                          column_right->get_ptr(), type_left,
663
1.94k
                                                          type_right, max_and_multiplier.first,
664
1.94k
                                                          max_and_multiplier.second, type_result,
665
1.94k
                                                          check_overflow_for_decimal);
666
1.94k
                                return true;
667
1.94k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
60
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
60
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
60
                                        type_left, type_right, type_result);
661
60
                                res = Impl::vector_vector(column_left->get_ptr(),
662
60
                                                          column_right->get_ptr(), type_left,
663
60
                                                          type_right, max_and_multiplier.first,
664
60
                                                          max_and_multiplier.second, type_result,
665
60
                                                          check_overflow_for_decimal);
666
60
                                return true;
667
60
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
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
670
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
670
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
670
                                        type_left, type_right, type_result);
661
670
                                res = Impl::vector_vector(column_left->get_ptr(),
662
670
                                                          column_right->get_ptr(), type_left,
663
670
                                                          type_right, max_and_multiplier.first,
664
670
                                                          max_and_multiplier.second, type_result,
665
670
                                                          check_overflow_for_decimal);
666
670
                                return true;
667
670
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
8
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
8
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
8
                                        type_left, type_right, type_result);
661
8
                                res = Impl::vector_vector(column_left->get_ptr(),
662
8
                                                          column_right->get_ptr(), type_left,
663
8
                                                          type_right, max_and_multiplier.first,
664
8
                                                          max_and_multiplier.second, type_result,
665
8
                                                          check_overflow_for_decimal);
666
8
                                return true;
667
8
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
58
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
58
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
58
                                        type_left, type_right, type_result);
661
58
                                res = Impl::vector_vector(column_left->get_ptr(),
662
58
                                                          column_right->get_ptr(), type_left,
663
58
                                                          type_right, max_and_multiplier.first,
664
58
                                                          max_and_multiplier.second, type_result,
665
58
                                                          check_overflow_for_decimal);
666
58
                                return true;
667
58
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
250
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
250
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
250
                                        type_left, type_right, type_result);
661
250
                                res = Impl::vector_vector(column_left->get_ptr(),
662
250
                                                          column_right->get_ptr(), type_left,
663
250
                                                          type_right, max_and_multiplier.first,
664
250
                                                          max_and_multiplier.second, type_result,
665
250
                                                          check_overflow_for_decimal);
666
250
                                return true;
667
250
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
661
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
661
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
661
                                        type_left, type_right, type_result);
661
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
661
                                                          column_right->get_ptr(), type_left,
663
661
                                                          type_right, max_and_multiplier.first,
664
661
                                                          max_and_multiplier.second, type_result,
665
661
                                                          check_overflow_for_decimal);
666
661
                                return true;
667
661
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
74
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
74
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
74
                                        type_left, type_right, type_result);
661
74
                                res = Impl::vector_vector(column_left->get_ptr(),
662
74
                                                          column_right->get_ptr(), type_left,
663
74
                                                          type_right, max_and_multiplier.first,
664
74
                                                          max_and_multiplier.second, type_result,
665
74
                                                          check_overflow_for_decimal);
666
74
                                return true;
667
74
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
1.94k
            }
673
23.1k
        } else {
674
23.1k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
23.1k
        }
676
2.25k
        return res;
677
25.3k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
154
                            bool check_overflow_for_decimal) const {
637
154
        ColumnPtr res = nullptr;
638
154
        if constexpr (result_is_decimal) {
639
154
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
154
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
154
        return res;
677
154
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
60
                            bool check_overflow_for_decimal) const {
637
60
        ColumnPtr res = nullptr;
638
60
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
60
            } else {
656
60
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
60
                                         DataTypeDecimal256>(
658
60
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
60
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
60
                                        type_left, type_right, type_result);
661
60
                                res = Impl::vector_vector(column_left->get_ptr(),
662
60
                                                          column_right->get_ptr(), type_left,
663
60
                                                          type_right, max_and_multiplier.first,
664
60
                                                          max_and_multiplier.second, type_result,
665
60
                                                          check_overflow_for_decimal);
666
60
                                return true;
667
60
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
60
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
60
        return res;
677
60
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
167
                            bool check_overflow_for_decimal) const {
637
167
        ColumnPtr res = nullptr;
638
167
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
167
            } else {
656
167
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
167
                                         DataTypeDecimal256>(
658
167
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
167
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
167
                                        type_left, type_right, type_result);
661
167
                                res = Impl::vector_vector(column_left->get_ptr(),
662
167
                                                          column_right->get_ptr(), type_left,
663
167
                                                          type_right, max_and_multiplier.first,
664
167
                                                          max_and_multiplier.second, type_result,
665
167
                                                          check_overflow_for_decimal);
666
167
                                return true;
667
167
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
167
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
167
        return res;
677
167
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
670
                            bool check_overflow_for_decimal) const {
637
670
        ColumnPtr res = nullptr;
638
670
        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
670
            } else {
656
670
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
670
                                         DataTypeDecimal256>(
658
670
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
670
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
670
                                        type_left, type_right, type_result);
661
670
                                res = Impl::vector_vector(column_left->get_ptr(),
662
670
                                                          column_right->get_ptr(), type_left,
663
670
                                                          type_right, max_and_multiplier.first,
664
670
                                                          max_and_multiplier.second, type_result,
665
670
                                                          check_overflow_for_decimal);
666
670
                                return true;
667
670
                            })) {
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
670
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
670
        return res;
677
670
    }
_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
13.9k
                            bool check_overflow_for_decimal) const {
637
13.9k
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
13.9k
        } else {
674
13.9k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
13.9k
        }
676
13.9k
        return res;
677
13.9k
    }
_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.04k
                            bool check_overflow_for_decimal) const {
637
2.04k
        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.04k
        } else {
674
2.04k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
2.04k
        }
676
2.04k
        return res;
677
2.04k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
154
                            bool check_overflow_for_decimal) const {
637
154
        ColumnPtr res = nullptr;
638
154
        if constexpr (result_is_decimal) {
639
154
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
154
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
154
        return res;
677
154
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
58
                            bool check_overflow_for_decimal) const {
637
58
        ColumnPtr res = nullptr;
638
58
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
58
            } else {
656
58
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
58
                                         DataTypeDecimal256>(
658
58
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
58
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
58
                                        type_left, type_right, type_result);
661
58
                                res = Impl::vector_vector(column_left->get_ptr(),
662
58
                                                          column_right->get_ptr(), type_left,
663
58
                                                          type_right, max_and_multiplier.first,
664
58
                                                          max_and_multiplier.second, type_result,
665
58
                                                          check_overflow_for_decimal);
666
58
                                return true;
667
58
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
58
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
58
        return res;
677
58
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
250
                            bool check_overflow_for_decimal) const {
637
250
        ColumnPtr res = nullptr;
638
250
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
250
            } else {
656
250
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
250
                                         DataTypeDecimal256>(
658
250
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
250
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
250
                                        type_left, type_right, type_result);
661
250
                                res = Impl::vector_vector(column_left->get_ptr(),
662
250
                                                          column_right->get_ptr(), type_left,
663
250
                                                          type_right, max_and_multiplier.first,
664
250
                                                          max_and_multiplier.second, type_result,
665
250
                                                          check_overflow_for_decimal);
666
250
                                return true;
667
250
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
250
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
250
        return res;
677
250
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
660
                            bool check_overflow_for_decimal) const {
637
660
        ColumnPtr res = nullptr;
638
660
        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
660
            } else {
656
660
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
660
                                         DataTypeDecimal256>(
658
660
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
660
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
660
                                        type_left, type_right, type_result);
661
660
                                res = Impl::vector_vector(column_left->get_ptr(),
662
660
                                                          column_right->get_ptr(), type_left,
663
660
                                                          type_right, max_and_multiplier.first,
664
660
                                                          max_and_multiplier.second, type_result,
665
660
                                                          check_overflow_for_decimal);
666
660
                                return true;
667
660
                            })) {
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
660
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
660
        return res;
677
660
    }
_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
104
                            bool check_overflow_for_decimal) const {
637
104
        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
104
        } else {
674
104
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
104
        }
676
104
        return res;
677
104
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
5.01k
                            bool check_overflow_for_decimal) const {
637
5.01k
        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.01k
        } else {
674
5.01k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
5.01k
        }
676
5.01k
        return res;
677
5.01k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
194
                            bool check_overflow_for_decimal) const {
637
194
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
194
        } else {
674
194
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
194
        }
676
194
        return res;
677
194
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
1.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