Coverage Report

Created: 2026-10-19 20:21

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
187
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
187
        auto column_result = ColumnType ::create(1);
58
187
        column_result->get_element(0) = Impl::apply(a, b);
59
187
        return column_result;
60
187
    }
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
84
    static ColumnPtr constant_constant(Arg a, Arg b) {
57
84
        auto column_result = ColumnType ::create(1);
58
84
        column_result->get_element(0) = Impl::apply(a, b);
59
84
        return column_result;
60
84
    }
_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.96k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
5.96k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
5.96k
        auto column_result = ColumnType::create(column_left->size());
65
66
5.96k
        auto& a = column_left_ptr->get_data();
67
5.96k
        auto& c = column_result->get_data();
68
5.96k
        size_t size = a.size();
69
909k
        for (size_t i = 0; i < size; ++i) {
70
903k
            c[i] = Impl::apply(a[i], b);
71
903k
        }
72
5.96k
        return column_result;
73
5.96k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEa
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEs
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEi
Line
Count
Source
62
7
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
7
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
7
        auto column_result = ColumnType::create(column_left->size());
65
66
7
        auto& a = column_left_ptr->get_data();
67
7
        auto& c = column_result->get_data();
68
7
        size_t size = a.size();
69
52
        for (size_t i = 0; i < size; ++i) {
70
45
            c[i] = Impl::apply(a[i], b);
71
45
        }
72
7
        return column_result;
73
7
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEl
Line
Count
Source
62
1.44k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
1.44k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
1.44k
        auto column_result = ColumnType::create(column_left->size());
65
66
1.44k
        auto& a = column_left_ptr->get_data();
67
1.44k
        auto& c = column_result->get_data();
68
1.44k
        size_t size = a.size();
69
3.85k
        for (size_t i = 0; i < size; ++i) {
70
2.41k
            c[i] = Impl::apply(a[i], b);
71
2.41k
        }
72
1.44k
        return column_result;
73
1.44k
    }
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
446
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
446
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
446
        auto column_result = ColumnType::create(column_left->size());
65
66
446
        auto& a = column_left_ptr->get_data();
67
446
        auto& c = column_result->get_data();
68
446
        size_t size = a.size();
69
2.13k
        for (size_t i = 0; i < size; ++i) {
70
1.69k
            c[i] = Impl::apply(a[i], b);
71
1.69k
        }
72
446
        return column_result;
73
446
    }
_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.60k
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
3.60k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
3.60k
        auto column_result = ColumnType::create(column_left->size());
65
66
3.60k
        auto& a = column_left_ptr->get_data();
67
3.60k
        auto& c = column_result->get_data();
68
3.60k
        size_t size = a.size();
69
292k
        for (size_t i = 0; i < size; ++i) {
70
288k
            c[i] = Impl::apply(a[i], b);
71
288k
        }
72
3.60k
        return column_result;
73
3.60k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEn
Line
Count
Source
62
117
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
117
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
117
        auto column_result = ColumnType::create(column_left->size());
65
66
117
        auto& a = column_left_ptr->get_data();
67
117
        auto& c = column_result->get_data();
68
117
        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
117
        return column_result;
73
117
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEd
Line
Count
Source
62
260
    static ColumnPtr vector_constant(ColumnPtr column_left, Arg b) {
63
260
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
64
260
        auto column_result = ColumnType::create(column_left->size());
65
66
260
        auto& a = column_left_ptr->get_data();
67
260
        auto& c = column_result->get_data();
68
260
        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
260
        return column_result;
73
260
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EEf
74
75
782
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
782
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
782
        auto column_result = ColumnType::create(column_right->size());
78
782
        DCHECK(column_right_ptr != nullptr);
79
80
782
        auto& b = column_right_ptr->get_data();
81
782
        auto& c = column_result->get_data();
82
782
        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
782
        return column_result;
87
782
    }
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
170
        for (size_t i = 0; i < size; ++i) {
84
107
            c[i] = Impl::apply(a, b[i]);
85
107
        }
86
63
        return column_result;
87
63
    }
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
37
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
37
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
37
        auto column_result = ColumnType::create(column_right->size());
78
37
        DCHECK(column_right_ptr != nullptr);
79
80
37
        auto& b = column_right_ptr->get_data();
81
37
        auto& c = column_result->get_data();
82
37
        size_t size = b.size();
83
623
        for (size_t i = 0; i < size; ++i) {
84
586
            c[i] = Impl::apply(a, b[i]);
85
586
        }
86
37
        return column_result;
87
37
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
669
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
669
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
669
        auto column_result = ColumnType::create(column_right->size());
78
669
        DCHECK(column_right_ptr != nullptr);
79
80
669
        auto& b = column_right_ptr->get_data();
81
669
        auto& c = column_result->get_data();
82
669
        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
669
        return column_result;
87
669
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE15constant_vectorEfNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE15constant_vectorEaNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE15constant_vectorEsNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE15constant_vectorEiNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE15constant_vectorElNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Line
Count
Source
75
13
    static ColumnPtr constant_vector(Arg a, ColumnPtr column_right) {
76
13
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
77
13
        auto column_result = ColumnType::create(column_right->size());
78
13
        DCHECK(column_right_ptr != nullptr);
79
80
13
        auto& b = column_right_ptr->get_data();
81
13
        auto& c = column_result->get_data();
82
13
        size_t size = b.size();
83
100k
        for (size_t i = 0; i < size; ++i) {
84
100k
            c[i] = Impl::apply(a, b[i]);
85
100k
        }
86
13
        return column_result;
87
13
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE15constant_vectorEnNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE15constant_vectorEdNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE15constant_vectorEfNS_3COWINS_7IColumnEE13immutable_ptrIS6_EE
88
89
25.3k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
25.3k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
25.3k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
25.3k
        auto column_result = ColumnType::create(column_left->size());
94
95
25.3k
        auto& a = column_left_ptr->get_data();
96
25.3k
        auto& b = column_right_ptr->get_data();
97
25.3k
        auto& c = column_result->get_data();
98
25.3k
        size_t size = a.size();
99
4.83M
        for (size_t i = 0; i < size; ++i) {
100
4.81M
            c[i] = Impl::apply(a[i], b[i]);
101
4.81M
        }
102
25.3k
        return column_result;
103
25.3k
    }
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
16.1k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
16.1k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
16.1k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
16.1k
        auto column_result = ColumnType::create(column_left->size());
94
95
16.1k
        auto& a = column_left_ptr->get_data();
96
16.1k
        auto& b = column_right_ptr->get_data();
97
16.1k
        auto& c = column_result->get_data();
98
16.1k
        size_t size = a.size();
99
245k
        for (size_t i = 0; i < size; ++i) {
100
229k
            c[i] = Impl::apply(a[i], b[i]);
101
229k
        }
102
16.1k
        return column_result;
103
16.1k
    }
_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.01k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
2.01k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
2.01k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
2.01k
        auto column_result = ColumnType::create(column_left->size());
94
95
2.01k
        auto& a = column_left_ptr->get_data();
96
2.01k
        auto& b = column_right_ptr->get_data();
97
2.01k
        auto& c = column_result->get_data();
98
2.01k
        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.01k
        return column_result;
103
2.01k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
47
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
47
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
47
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
47
        auto column_result = ColumnType::create(column_left->size());
94
95
47
        auto& a = column_left_ptr->get_data();
96
47
        auto& b = column_right_ptr->get_data();
97
47
        auto& c = column_result->get_data();
98
47
        size_t size = a.size();
99
268
        for (size_t i = 0; i < size; ++i) {
100
221
            c[i] = Impl::apply(a[i], b[i]);
101
221
        }
102
47
        return column_result;
103
47
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
103
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
103
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
103
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
103
        auto column_result = ColumnType::create(column_left->size());
94
95
103
        auto& a = column_left_ptr->get_data();
96
103
        auto& b = column_right_ptr->get_data();
97
103
        auto& c = column_result->get_data();
98
103
        size_t size = a.size();
99
4.38k
        for (size_t i = 0; i < size; ++i) {
100
4.28k
            c[i] = Impl::apply(a[i], b[i]);
101
4.28k
        }
102
103
        return column_result;
103
103
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
5.06k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
5.06k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
5.06k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
5.06k
        auto column_result = ColumnType::create(column_left->size());
94
95
5.06k
        auto& a = column_left_ptr->get_data();
96
5.06k
        auto& b = column_right_ptr->get_data();
97
5.06k
        auto& c = column_result->get_data();
98
5.06k
        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.06k
        return column_result;
103
5.06k
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
201
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
201
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
201
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
201
        auto column_result = ColumnType::create(column_left->size());
94
95
201
        auto& a = column_left_ptr->get_data();
96
201
        auto& b = column_right_ptr->get_data();
97
201
        auto& c = column_result->get_data();
98
201
        size_t size = a.size();
99
1.19k
        for (size_t i = 0; i < size; ++i) {
100
996
            c[i] = Impl::apply(a[i], b[i]);
101
996
        }
102
201
        return column_result;
103
201
    }
_ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
89
1.49k
    static ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) {
90
1.49k
        const auto* column_left_ptr = assert_cast<const ColumnType*>(column_left.get());
91
1.49k
        const auto* column_right_ptr = assert_cast<const ColumnType*>(column_right.get());
92
93
1.49k
        auto column_result = ColumnType::create(column_left->size());
94
95
1.49k
        auto& a = column_left_ptr->get_data();
96
1.49k
        auto& b = column_right_ptr->get_data();
97
1.49k
        auto& c = column_result->get_data();
98
1.49k
        size_t size = a.size();
99
9.51k
        for (size_t i = 0; i < size; ++i) {
100
8.02k
            c[i] = Impl::apply(a[i], b[i]);
101
8.02k
        }
102
1.49k
        return column_result;
103
1.49k
    }
Unexecuted instantiation: _ZN5doris21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
104
};
105
106
template <typename Impl>
107
struct PlusMinusDecimalImpl {
108
    static constexpr bool result_is_decimal = true;
109
    static constexpr auto name = Impl::name;
110
    static constexpr PrimitiveType TypeA = Impl::PTypeA;
111
    static constexpr PrimitiveType TypeB = Impl::PTypeB;
112
    using ArgA = typename PrimitiveTypeTraits<TypeA>::CppType;
113
    using ArgB = typename PrimitiveTypeTraits<TypeB>::CppType;
114
    using ArgNativeTypeA = typename Impl::ArgNativeTypeA;
115
    using ArgNativeTypeB = typename Impl::ArgNativeTypeA;
116
    using DataTypeA = typename PrimitiveTypeTraits<TypeA>::DataType;
117
    using DataTypeB = typename PrimitiveTypeTraits<TypeB>::DataType;
118
    using ColumnTypeA = typename PrimitiveTypeTraits<TypeA>::ColumnType;
119
    using ColumnTypeB = typename PrimitiveTypeTraits<TypeB>::ColumnType;
120
121
    constexpr static bool need_replace_null_data_to_default = true;
122
123
80
    static DataTypes get_variadic_argument_types() {
124
80
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
80
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
80
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE27get_variadic_argument_typesEv
Line
Count
Source
123
8
    static DataTypes get_variadic_argument_types() {
124
8
        return {std::make_shared<typename PrimitiveTypeTraits<TypeA>::DataType>(),
125
8
                std::make_shared<typename PrimitiveTypeTraits<TypeB>::DataType>()};
126
8
    }
127
128
    template <PrimitiveType ResultType>
129
        requires(is_decimal(ResultType))
130
    static ColumnPtr constant_constant(
131
            ArgA a, ArgB b, const DataTypeA* type_left, const DataTypeB* type_right,
132
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
133
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
134
74
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
74
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
74
        if (check_overflow_for_decimal) {
138
74
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
12
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
12
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
12
                                    max_result_number, scale_diff_multiplier));
142
62
            } else {
143
62
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
62
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
62
                                    scale_diff_multiplier));
146
62
            }
147
148
74
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
74
        return column_result;
160
74
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE17constant_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESB_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
134
6
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
6
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
6
        if (check_overflow_for_decimal) {
138
6
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
6
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
6
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
6
                                    max_result_number, scale_diff_multiplier));
142
            } else {
143
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
                                    scale_diff_multiplier));
146
            }
147
148
6
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
            } else {
154
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
                                     max_result_number, scale_diff_multiplier));
157
            }
158
0
        }
159
6
        return column_result;
160
6
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
134
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
1
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
1
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
1
            } else {
143
1
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
1
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
1
                                    scale_diff_multiplier));
146
1
            }
147
148
1
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
1
        return column_result;
160
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
134
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
1
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
1
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
1
            } else {
143
1
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
1
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
1
                                    scale_diff_multiplier));
146
1
            }
147
148
1
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
1
        return column_result;
160
1
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE17constant_constantILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESB_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
134
6
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
6
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
6
        if (check_overflow_for_decimal) {
138
6
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
6
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
6
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
6
                                    max_result_number, scale_diff_multiplier));
142
            } else {
143
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
                                    scale_diff_multiplier));
146
            }
147
148
6
        } else {
149
0
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
0
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
0
                                     max_result_number, scale_diff_multiplier));
153
            } else {
154
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
                                     max_result_number, scale_diff_multiplier));
157
            }
158
0
        }
159
6
        return column_result;
160
6
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
134
58
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
58
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
58
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
58
            } else {
143
58
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
58
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
58
                                    scale_diff_multiplier));
146
58
            }
147
148
58
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
58
        return column_result;
160
58
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESC_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESC_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESB_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE17constant_constantILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESF_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Line
Count
Source
134
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
135
2
        auto column_result = ColumnDecimal<ResultType>::create(1, res_data_type.get_scale());
136
137
2
        if (check_overflow_for_decimal) {
138
            if constexpr (ResultType == TYPE_DECIMALV2) {
139
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
140
                        apply<true>(a.value(), b.value(), *type_left, *type_right, res_data_type,
141
                                    max_result_number, scale_diff_multiplier));
142
2
            } else {
143
2
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
144
2
                        apply<true>(a, b, *type_left, *type_right, res_data_type, max_result_number,
145
2
                                    scale_diff_multiplier));
146
2
            }
147
148
2
        } else {
149
            if constexpr (ResultType == TYPE_DECIMALV2) {
150
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
151
                        apply<false>(a.value(), b.value(), *type_left, *type_right, res_data_type,
152
                                     max_result_number, scale_diff_multiplier));
153
0
            } else {
154
0
                column_result->get_element(0) = typename PrimitiveTypeTraits<ResultType>::CppType(
155
0
                        apply<false>(a, b, *type_left, *type_right, res_data_type,
156
0
                                     max_result_number, scale_diff_multiplier));
157
0
            }
158
0
        }
159
2
        return column_result;
160
2
    }
161
162
    template <PrimitiveType ResultType>
163
        requires(is_decimal(ResultType))
164
    static ColumnPtr vector_constant(
165
            ColumnPtr column_left, ArgB b, const DataTypeA* type_left, const DataTypeB* type_right,
166
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
167
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
168
395
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
395
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
395
        auto column_result =
171
395
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
395
        DCHECK(column_left_ptr != nullptr);
173
174
395
        const auto& a = column_left_ptr->get_data();
175
395
        auto& c = column_result->get_data();
176
395
        std::visit(
177
396
                [&](auto check_overflow_for_decimal) {
178
1.92k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
1.52k
                        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.52k
                        } else {
186
1.52k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.52k
                                    apply<check_overflow_for_decimal>(
188
1.52k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.52k
                                            max_result_number, scale_diff_multiplier));
190
1.52k
                        }
191
1.52k
                    }
192
396
                },
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
243
                [&](auto check_overflow_for_decimal) {
178
1.33k
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
                                    apply<check_overflow_for_decimal>(
182
                                            a[i].value(), b.value(), *type_left, *type_right,
183
                                            res_data_type, max_result_number,
184
                                            scale_diff_multiplier));
185
1.09k
                        } else {
186
1.09k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
1.09k
                                    apply<check_overflow_for_decimal>(
188
1.09k
                                            a[i], b, *type_left, *type_right, res_data_type,
189
1.09k
                                            max_result_number, scale_diff_multiplier));
190
1.09k
                        }
191
1.09k
                    }
192
243
                },
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
90
                [&](auto check_overflow_for_decimal) {
178
435
                    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
345
                        } else {
186
345
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
345
                                    apply<check_overflow_for_decimal>(
188
345
                                            a[i], b, *type_left, *type_right, res_data_type,
189
345
                                            max_result_number, scale_diff_multiplier));
190
345
                        }
191
345
                    }
192
90
                },
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
395
                make_bool_variant(check_overflow_for_decimal));
194
195
395
        return column_result;
196
395
    }
_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
242
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
242
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
242
        auto column_result =
171
242
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
242
        DCHECK(column_left_ptr != nullptr);
173
174
242
        const auto& a = column_left_ptr->get_data();
175
242
        auto& c = column_result->get_data();
176
242
        std::visit(
177
242
                [&](auto check_overflow_for_decimal) {
178
242
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
242
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
242
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
242
                                    apply<check_overflow_for_decimal>(
182
242
                                            a[i].value(), b.value(), *type_left, *type_right,
183
242
                                            res_data_type, max_result_number,
184
242
                                            scale_diff_multiplier));
185
242
                        } else {
186
242
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
242
                                    apply<check_overflow_for_decimal>(
188
242
                                            a[i], b, *type_left, *type_right, res_data_type,
189
242
                                            max_result_number, scale_diff_multiplier));
190
242
                        }
191
242
                    }
192
242
                },
193
242
                make_bool_variant(check_overflow_for_decimal));
194
195
242
        return column_result;
196
242
    }
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
90
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
169
90
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
170
90
        auto column_result =
171
90
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
172
90
        DCHECK(column_left_ptr != nullptr);
173
174
90
        const auto& a = column_left_ptr->get_data();
175
90
        auto& c = column_result->get_data();
176
90
        std::visit(
177
90
                [&](auto check_overflow_for_decimal) {
178
90
                    for (size_t i = 0; i < column_left->size(); ++i) {
179
90
                        if constexpr (ResultType == TYPE_DECIMALV2) {
180
90
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
181
90
                                    apply<check_overflow_for_decimal>(
182
90
                                            a[i].value(), b.value(), *type_left, *type_right,
183
90
                                            res_data_type, max_result_number,
184
90
                                            scale_diff_multiplier));
185
90
                        } else {
186
90
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
187
90
                                    apply<check_overflow_for_decimal>(
188
90
                                            a[i], b, *type_left, *type_right, res_data_type,
189
90
                                            max_result_number, scale_diff_multiplier));
190
90
                        }
191
90
                    }
192
90
                },
193
90
                make_bool_variant(check_overflow_for_decimal));
194
195
90
        return column_result;
196
90
    }
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
2.83k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2.83k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2.83k
        auto column_result =
207
2.83k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2.83k
        auto& b = column_right_ptr->get_data();
210
2.83k
        auto& c = column_result->get_data();
211
2.83k
        std::visit(
212
2.83k
                [&](auto check_overflow_for_decimal) {
213
5.13M
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5.13M
                        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.13M
                        } else {
221
5.13M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5.13M
                                    apply<check_overflow_for_decimal>(
223
5.13M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5.13M
                                            max_result_number, scale_diff_multiplier));
225
5.13M
                        }
226
5.13M
                    }
227
2.83k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
6
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2.38k
                [&](auto check_overflow_for_decimal) {
213
2.83M
                    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.82M
                        } else {
221
2.82M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.82M
                                    apply<check_overflow_for_decimal>(
223
2.82M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.82M
                                            max_result_number, scale_diff_multiplier));
225
2.82M
                        }
226
2.82M
                    }
227
2.38k
                },
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
17
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
12
                        } else {
221
12
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
12
                                    apply<check_overflow_for_decimal>(
223
12
                                            a, b[i], *type_left, *type_right, res_data_type,
224
12
                                            max_result_number, scale_diff_multiplier));
225
12
                        }
226
12
                    }
227
5
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
4
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
                        } else {
221
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
                                    apply<check_overflow_for_decimal>(
223
                                            a, b[i], *type_left, *type_right, res_data_type,
224
                                            max_result_number, scale_diff_multiplier));
225
                        }
226
2
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
2
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
3
                        } else {
221
3
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
3
                                    apply<check_overflow_for_decimal>(
223
3
                                            a, b[i], *type_left, *type_right, res_data_type,
224
3
                                            max_result_number, scale_diff_multiplier));
225
3
                        }
226
3
                    }
227
2
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Line
Count
Source
212
445
                [&](auto check_overflow_for_decimal) {
213
2.30M
                    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.30M
                        } else {
221
2.30M
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.30M
                                    apply<check_overflow_for_decimal>(
223
2.30M
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.30M
                                            max_result_number, scale_diff_multiplier));
225
2.30M
                        }
226
2.30M
                    }
227
445
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSP_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Line
Count
Source
212
1
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
                                    apply<check_overflow_for_decimal>(
217
                                            a.value(), b[i].value(), *type_left, *type_right,
218
                                            res_data_type, max_result_number,
219
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSO_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSS_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSS_
228
2.83k
                make_bool_variant(check_overflow_for_decimal));
229
2.83k
        return column_result;
230
2.83k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2.38k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2.38k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2.38k
        auto column_result =
207
2.38k
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2.38k
        auto& b = column_right_ptr->get_data();
210
2.38k
        auto& c = column_result->get_data();
211
2.38k
        std::visit(
212
2.38k
                [&](auto check_overflow_for_decimal) {
213
2.38k
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2.38k
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2.38k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2.38k
                                    apply<check_overflow_for_decimal>(
217
2.38k
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2.38k
                                            res_data_type, max_result_number,
219
2.38k
                                            scale_diff_multiplier));
220
2.38k
                        } else {
221
2.38k
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2.38k
                                    apply<check_overflow_for_decimal>(
223
2.38k
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2.38k
                                            max_result_number, scale_diff_multiplier));
225
2.38k
                        }
226
2.38k
                    }
227
2.38k
                },
228
2.38k
                make_bool_variant(check_overflow_for_decimal));
229
2.38k
        return column_result;
230
2.38k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
5
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
5
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
5
        auto column_result =
207
5
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
5
        auto& b = column_right_ptr->get_data();
210
5
        auto& c = column_result->get_data();
211
5
        std::visit(
212
5
                [&](auto check_overflow_for_decimal) {
213
5
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
5
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
5
                                    apply<check_overflow_for_decimal>(
217
5
                                            a.value(), b[i].value(), *type_left, *type_right,
218
5
                                            res_data_type, max_result_number,
219
5
                                            scale_diff_multiplier));
220
5
                        } else {
221
5
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
5
                                    apply<check_overflow_for_decimal>(
223
5
                                            a, b[i], *type_left, *type_right, res_data_type,
224
5
                                            max_result_number, scale_diff_multiplier));
225
5
                        }
226
5
                    }
227
5
                },
228
5
                make_bool_variant(check_overflow_for_decimal));
229
5
        return column_result;
230
5
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE15constant_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_14DecimalV2ValueESA_PKNS_15DataTypeDecimalILS2_20EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
2
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
2
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
2
        auto column_result =
207
2
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
2
        auto& b = column_right_ptr->get_data();
210
2
        auto& c = column_result->get_data();
211
2
        std::visit(
212
2
                [&](auto check_overflow_for_decimal) {
213
2
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
2
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
2
                                    apply<check_overflow_for_decimal>(
217
2
                                            a.value(), b[i].value(), *type_left, *type_right,
218
2
                                            res_data_type, max_result_number,
219
2
                                            scale_diff_multiplier));
220
2
                        } else {
221
2
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
2
                                    apply<check_overflow_for_decimal>(
223
2
                                            a, b[i], *type_left, *type_right, res_data_type,
224
2
                                            max_result_number, scale_diff_multiplier));
225
2
                        }
226
2
                    }
227
2
                },
228
2
                make_bool_variant(check_overflow_for_decimal));
229
2
        return column_result;
230
2
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIiEESA_PKNS_15DataTypeDecimalILS2_28EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Line
Count
Source
204
445
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
445
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
445
        auto column_result =
207
445
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
445
        auto& b = column_right_ptr->get_data();
210
445
        auto& c = column_result->get_data();
211
445
        std::visit(
212
445
                [&](auto check_overflow_for_decimal) {
213
445
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
445
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
445
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
445
                                    apply<check_overflow_for_decimal>(
217
445
                                            a.value(), b[i].value(), *type_left, *type_right,
218
445
                                            res_data_type, max_result_number,
219
445
                                            scale_diff_multiplier));
220
445
                        } else {
221
445
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
445
                                    apply<check_overflow_for_decimal>(
223
445
                                            a, b[i], *type_left, *type_right, res_data_type,
224
445
                                            max_result_number, scale_diff_multiplier));
225
445
                        }
226
445
                    }
227
445
                },
228
445
                make_bool_variant(check_overflow_for_decimal));
229
445
        return column_result;
230
445
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIlEESA_PKNS_15DataTypeDecimalILS2_29EEESG_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESL_RKNSD_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Line
Count
Source
204
1
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
205
1
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
206
1
        auto column_result =
207
1
                ColumnDecimal<ResultType>::create(column_right->size(), res_data_type.get_scale());
208
209
1
        auto& b = column_right_ptr->get_data();
210
1
        auto& c = column_result->get_data();
211
1
        std::visit(
212
1
                [&](auto check_overflow_for_decimal) {
213
1
                    for (size_t i = 0; i < column_right->size(); ++i) {
214
1
                        if constexpr (ResultType == TYPE_DECIMALV2) {
215
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
216
1
                                    apply<check_overflow_for_decimal>(
217
1
                                            a.value(), b[i].value(), *type_left, *type_right,
218
1
                                            res_data_type, max_result_number,
219
1
                                            scale_diff_multiplier));
220
1
                        } else {
221
1
                            c[i] = typename DataTypeDecimal<ResultType>::FieldType(
222
1
                                    apply<check_overflow_for_decimal>(
223
1
                                            a, b[i], *type_left, *type_right, res_data_type,
224
1
                                            max_result_number, scale_diff_multiplier));
225
1
                        }
226
1
                    }
227
1
                },
228
1
                make_bool_variant(check_overflow_for_decimal));
229
1
        return column_result;
230
1
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_12Decimal128V3ESA_PKNS_15DataTypeDecimalILS2_30EEESF_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESK_RKNSC_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE15constant_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EENS_7DecimalIN4wide7integerILm256EiEEEESA_PKNS_15DataTypeDecimalILS2_35EEESJ_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESO_RKNSG_IXT_EEEb
231
232
    /*
233
    select 999999999999999999999999999 * 999999999999999999999999999;
234
    999999999999999999999999998000000000.000000000000000001 54 digits
235
    */
236
    template <bool check_overflow>
237
    static void vector_vector(const ColumnDecimal128V2::Container::value_type* __restrict a,
238
                              const ColumnDecimal128V2::Container::value_type* __restrict b,
239
                              ColumnDecimal128V2::Container::value_type* c, size_t size) {
240
        auto sng_uptr = std::unique_ptr<int8_t[]>(new int8_t[size]);
241
        int8_t* sgn = sng_uptr.get();
242
        auto max = DecimalV2Value::get_max_decimal();
243
        auto min = DecimalV2Value::get_min_decimal();
244
245
        for (int i = 0; i < size; i++) {
246
            sgn[i] = ((DecimalV2Value(a[i]).value() > 0) && (DecimalV2Value(b[i]).value() > 0)) ||
247
                                     ((DecimalV2Value(a[i]).value() < 0) &&
248
                                      (DecimalV2Value(b[i]).value() < 0))
249
                             ? 1
250
                     : ((DecimalV2Value(a[i]).value() == 0) || (DecimalV2Value(b[i]).value() == 0))
251
                             ? 0
252
                             : -1;
253
        }
254
255
        for (int i = 0; i < size; i++) {
256
            if constexpr (check_overflow) {
257
                int128_t i128_mul_result;
258
                if (common::mul_overflow(DecimalV2Value(a[i]).value(), DecimalV2Value(b[i]).value(),
259
                                         i128_mul_result)) {
260
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
261
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
262
                                    DecimalV2Value(a[i]).to_string(), "add",
263
                                    DecimalV2Value(b[i]).to_string(),
264
                                    DecimalV2Value(i128_mul_result).to_string(), "decimalv2");
265
                }
266
                c[i] = DecimalV2Value((i128_mul_result - sgn[i]) / DecimalV2Value::ONE_BILLION +
267
                                      sgn[i]);
268
                if (c[i].value() > max.value() || c[i].value() < min.value()) {
269
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
270
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
271
                                    DecimalV2Value(a[i]).to_string(), "add",
272
                                    DecimalV2Value(b[i]).to_string(),
273
                                    DecimalV2Value(i128_mul_result).to_string(), "decimalv2");
274
                }
275
            } else {
276
                c[i] = DecimalV2Value(
277
                        (DecimalV2Value(a[i]).value() * DecimalV2Value(b[i]).value() - sgn[i]) /
278
                                DecimalV2Value::ONE_BILLION +
279
                        sgn[i]);
280
            }
281
        }
282
    }
283
284
    template <typename T>
285
    static int8_t sgn(const T& x) {
286
        return (x > 0) ? 1 : ((x < 0) ? -1 : 0);
287
    }
288
289
    template <PrimitiveType ResultType>
290
        requires(is_decimal(ResultType))
291
    static ColumnPtr vector_vector(
292
            ColumnPtr column_left, ColumnPtr column_right, const DataTypeA* type_left,
293
            const DataTypeB* type_right,
294
            const typename PrimitiveTypeTraits<ResultType>::CppType& max_result_number,
295
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier,
296
2.11k
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
2.11k
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
2.11k
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
2.11k
        auto column_result =
301
2.11k
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
2.11k
        auto sz = column_left->size();
303
2.11k
        const auto& a = column_left_ptr->get_data().data();
304
2.11k
        const auto& b = column_right_ptr->get_data().data();
305
2.11k
        const auto& c = column_result->get_data().data();
306
2.11k
        std::visit(
307
2.13k
                [&](auto check_overflow_for_decimal) {
308
141k
                    for (size_t i = 0; i < sz; i++) {
309
139k
                        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
137k
                        } else {
316
137k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
137k
                                    apply<check_overflow_for_decimal>(
318
137k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
137k
                                            max_result_number, scale_diff_multiplier));
320
137k
                        }
321
139k
                    }
322
2.13k
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
154
                [&](auto check_overflow_for_decimal) {
308
1.08k
                    for (size_t i = 0; i < sz; i++) {
309
933
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
933
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
933
                                    apply<check_overflow_for_decimal>(
312
933
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
933
                                            res_data_type, max_result_number,
314
933
                                            scale_diff_multiplier));
315
                        } else {
316
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
                                    apply<check_overflow_for_decimal>(
318
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
                                            max_result_number, scale_diff_multiplier));
320
                        }
321
933
                    }
322
154
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
60
                [&](auto check_overflow_for_decimal) {
308
431
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
371
                        } else {
316
371
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
371
                                    apply<check_overflow_for_decimal>(
318
371
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
371
                                            max_result_number, scale_diff_multiplier));
320
371
                        }
321
371
                    }
322
60
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
167
                [&](auto check_overflow_for_decimal) {
308
1.07k
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
909
                        } else {
316
909
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
909
                                    apply<check_overflow_for_decimal>(
318
909
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
909
                                            max_result_number, scale_diff_multiplier));
320
909
                        }
321
909
                    }
322
167
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
572
                [&](auto check_overflow_for_decimal) {
308
131k
                    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
572
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
8
                [&](auto check_overflow_for_decimal) {
308
18
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
10
                        } else {
316
10
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
10
                                    apply<check_overflow_for_decimal>(
318
10
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
10
                                            max_result_number, scale_diff_multiplier));
320
10
                        }
321
10
                    }
322
8
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
154
                [&](auto check_overflow_for_decimal) {
308
1.08k
                    for (size_t i = 0; i < sz; i++) {
309
933
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
933
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
933
                                    apply<check_overflow_for_decimal>(
312
933
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
933
                                            res_data_type, max_result_number,
314
933
                                            scale_diff_multiplier));
315
                        } else {
316
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
                                    apply<check_overflow_for_decimal>(
318
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
                                            max_result_number, scale_diff_multiplier));
320
                        }
321
933
                    }
322
154
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
58
                [&](auto check_overflow_for_decimal) {
308
411
                    for (size_t i = 0; i < sz; i++) {
309
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
                                    apply<check_overflow_for_decimal>(
312
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
                                            res_data_type, max_result_number,
314
                                            scale_diff_multiplier));
315
353
                        } else {
316
353
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
353
                                    apply<check_overflow_for_decimal>(
318
353
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
353
                                            max_result_number, scale_diff_multiplier));
320
353
                        }
321
353
                    }
322
58
                },
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Unexecuted instantiation: _ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb0EEEEDaSN_
_ZZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEbENKUlT_E_clISt17integral_constantIbLb1EEEEDaSN_
Line
Count
Source
307
237
                [&](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.09k
                        } else {
316
1.09k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
1.09k
                                    apply<check_overflow_for_decimal>(
318
1.09k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
1.09k
                                            max_result_number, scale_diff_multiplier));
320
1.09k
                        }
321
1.09k
                    }
322
237
                },
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
648
                [&](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.54k
                        } else {
316
3.54k
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
3.54k
                                    apply<check_overflow_for_decimal>(
318
3.54k
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
3.54k
                                            max_result_number, scale_diff_multiplier));
320
3.54k
                        }
321
3.54k
                    }
322
648
                },
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.11k
                make_bool_variant(check_overflow_for_decimal));
324
2.11k
        return column_result;
325
2.11k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
153
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
153
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
153
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
153
        auto column_result =
301
153
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
153
        auto sz = column_left->size();
303
153
        const auto& a = column_left_ptr->get_data().data();
304
153
        const auto& b = column_right_ptr->get_data().data();
305
153
        const auto& c = column_result->get_data().data();
306
153
        std::visit(
307
153
                [&](auto check_overflow_for_decimal) {
308
153
                    for (size_t i = 0; i < sz; i++) {
309
153
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
153
                                    apply<check_overflow_for_decimal>(
312
153
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
153
                                            res_data_type, max_result_number,
314
153
                                            scale_diff_multiplier));
315
153
                        } else {
316
153
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
153
                                    apply<check_overflow_for_decimal>(
318
153
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
153
                                            max_result_number, scale_diff_multiplier));
320
153
                        }
321
153
                    }
322
153
                },
323
153
                make_bool_variant(check_overflow_for_decimal));
324
153
        return column_result;
325
153
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
59
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
59
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
59
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
59
        auto column_result =
301
59
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
59
        auto sz = column_left->size();
303
59
        const auto& a = column_left_ptr->get_data().data();
304
59
        const auto& b = column_right_ptr->get_data().data();
305
59
        const auto& c = column_result->get_data().data();
306
59
        std::visit(
307
59
                [&](auto check_overflow_for_decimal) {
308
59
                    for (size_t i = 0; i < sz; i++) {
309
59
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
59
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
59
                                    apply<check_overflow_for_decimal>(
312
59
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
59
                                            res_data_type, max_result_number,
314
59
                                            scale_diff_multiplier));
315
59
                        } else {
316
59
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
59
                                    apply<check_overflow_for_decimal>(
318
59
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
59
                                            max_result_number, scale_diff_multiplier));
320
59
                        }
321
59
                    }
322
59
                },
323
59
                make_bool_variant(check_overflow_for_decimal));
324
59
        return column_result;
325
59
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_29EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
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
563
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
563
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
563
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
563
        auto column_result =
301
563
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
563
        auto sz = column_left->size();
303
563
        const auto& a = column_left_ptr->get_data().data();
304
563
        const auto& b = column_right_ptr->get_data().data();
305
563
        const auto& c = column_result->get_data().data();
306
563
        std::visit(
307
563
                [&](auto check_overflow_for_decimal) {
308
563
                    for (size_t i = 0; i < sz; i++) {
309
563
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
563
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
563
                                    apply<check_overflow_for_decimal>(
312
563
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
563
                                            res_data_type, max_result_number,
314
563
                                            scale_diff_multiplier));
315
563
                        } else {
316
563
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
563
                                    apply<check_overflow_for_decimal>(
318
563
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
563
                                            max_result_number, scale_diff_multiplier));
320
563
                        }
321
563
                    }
322
563
                },
323
563
                make_bool_variant(check_overflow_for_decimal));
324
563
        return column_result;
325
563
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_30EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_29EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_30EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE13vector_vectorILS2_35EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_35EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
8
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
8
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
8
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
8
        auto column_result =
301
8
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
8
        auto sz = column_left->size();
303
8
        const auto& a = column_left_ptr->get_data().data();
304
8
        const auto& b = column_right_ptr->get_data().data();
305
8
        const auto& c = column_result->get_data().data();
306
8
        std::visit(
307
8
                [&](auto check_overflow_for_decimal) {
308
8
                    for (size_t i = 0; i < sz; i++) {
309
8
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
8
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
8
                                    apply<check_overflow_for_decimal>(
312
8
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
8
                                            res_data_type, max_result_number,
314
8
                                            scale_diff_multiplier));
315
8
                        } else {
316
8
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
8
                                    apply<check_overflow_for_decimal>(
318
8
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
8
                                            max_result_number, scale_diff_multiplier));
320
8
                        }
321
8
                    }
322
8
                },
323
8
                make_bool_variant(check_overflow_for_decimal));
324
8
        return column_result;
325
8
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE13vector_vectorILS2_20EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_20EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
154
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
154
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
154
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
154
        auto column_result =
301
154
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
154
        auto sz = column_left->size();
303
154
        const auto& a = column_left_ptr->get_data().data();
304
154
        const auto& b = column_right_ptr->get_data().data();
305
154
        const auto& c = column_result->get_data().data();
306
154
        std::visit(
307
154
                [&](auto check_overflow_for_decimal) {
308
154
                    for (size_t i = 0; i < sz; i++) {
309
154
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
154
                                    apply<check_overflow_for_decimal>(
312
154
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
154
                                            res_data_type, max_result_number,
314
154
                                            scale_diff_multiplier));
315
154
                        } else {
316
154
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
154
                                    apply<check_overflow_for_decimal>(
318
154
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
154
                                            max_result_number, scale_diff_multiplier));
320
154
                        }
321
154
                    }
322
154
                },
323
154
                make_bool_variant(check_overflow_for_decimal));
324
154
        return column_result;
325
154
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE13vector_vectorILS2_28EQclL_ZNS_10is_decimalES2_ETL0__EEENS_3COWINS_7IColumnEE13immutable_ptrIS7_EESA_SA_PKNS_15DataTypeDecimalILS2_28EEESE_RKNS_19PrimitiveTypeTraitsIXT_EE7CppTypeESJ_RKNSB_IXT_EEEb
Line
Count
Source
296
56
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
56
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
56
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
56
        auto column_result =
301
56
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
56
        auto sz = column_left->size();
303
56
        const auto& a = column_left_ptr->get_data().data();
304
56
        const auto& b = column_right_ptr->get_data().data();
305
56
        const auto& c = column_result->get_data().data();
306
56
        std::visit(
307
56
                [&](auto check_overflow_for_decimal) {
308
56
                    for (size_t i = 0; i < sz; i++) {
309
56
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
56
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
56
                                    apply<check_overflow_for_decimal>(
312
56
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
56
                                            res_data_type, max_result_number,
314
56
                                            scale_diff_multiplier));
315
56
                        } else {
316
56
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
56
                                    apply<check_overflow_for_decimal>(
318
56
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
56
                                            max_result_number, scale_diff_multiplier));
320
56
                        }
321
56
                    }
322
56
                },
323
56
                make_bool_variant(check_overflow_for_decimal));
324
56
        return column_result;
325
56
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_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
237
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
237
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
237
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
237
        auto column_result =
301
237
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
237
        auto sz = column_left->size();
303
237
        const auto& a = column_left_ptr->get_data().data();
304
237
        const auto& b = column_right_ptr->get_data().data();
305
237
        const auto& c = column_result->get_data().data();
306
237
        std::visit(
307
237
                [&](auto check_overflow_for_decimal) {
308
237
                    for (size_t i = 0; i < sz; i++) {
309
237
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
237
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
237
                                    apply<check_overflow_for_decimal>(
312
237
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
237
                                            res_data_type, max_result_number,
314
237
                                            scale_diff_multiplier));
315
237
                        } else {
316
237
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
237
                                    apply<check_overflow_for_decimal>(
318
237
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
237
                                            max_result_number, scale_diff_multiplier));
320
237
                        }
321
237
                    }
322
237
                },
323
237
                make_bool_variant(check_overflow_for_decimal));
324
237
        return column_result;
325
237
    }
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
646
            const DataTypeDecimal<ResultType>& res_data_type, bool check_overflow_for_decimal) {
297
646
        const auto* column_left_ptr = assert_cast<const ColumnTypeA*>(column_left.get());
298
646
        const auto* column_right_ptr = assert_cast<const ColumnTypeB*>(column_right.get());
299
300
646
        auto column_result =
301
646
                ColumnDecimal<ResultType>::create(column_left->size(), res_data_type.get_scale());
302
646
        auto sz = column_left->size();
303
646
        const auto& a = column_left_ptr->get_data().data();
304
646
        const auto& b = column_right_ptr->get_data().data();
305
646
        const auto& c = column_result->get_data().data();
306
646
        std::visit(
307
646
                [&](auto check_overflow_for_decimal) {
308
646
                    for (size_t i = 0; i < sz; i++) {
309
646
                        if constexpr (ResultType == TYPE_DECIMALV2) {
310
646
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
311
646
                                    apply<check_overflow_for_decimal>(
312
646
                                            a[i].value(), b[i].value(), *type_left, *type_right,
313
646
                                            res_data_type, max_result_number,
314
646
                                            scale_diff_multiplier));
315
646
                        } else {
316
646
                            c[i] = typename ColumnDecimal<ResultType>::value_type(
317
646
                                    apply<check_overflow_for_decimal>(
318
646
                                            a[i], b[i], *type_left, *type_right, res_data_type,
319
646
                                            max_result_number, scale_diff_multiplier));
320
646
                        }
321
646
                    }
322
646
                },
323
646
                make_bool_variant(check_overflow_for_decimal));
324
646
        return column_result;
325
646
    }
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.28M
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
5.28M
        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.28M
        } else {
350
5.28M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
5.28M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
5.28M
                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.28M
                } else {
360
5.28M
                    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.28M
                }
368
5.28M
                return res;
369
5.28M
            } else {
370
0
                res = Impl::template apply<ResultType>(a, b);
371
0
                return res;
372
0
            }
373
5.28M
        }
374
5.28M
    }
_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.83M
            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.83M
        } else {
350
2.83M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.83M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.83M
                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.83M
                } else {
360
2.83M
                    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.83M
                }
368
2.83M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.83M
        }
374
2.83M
    }
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.31M
            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.31M
        } else {
350
2.31M
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
2.31M
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
2.31M
                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.31M
                } else {
360
2.31M
                    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.31M
                }
368
2.31M
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
2.31M
        }
374
2.31M
    }
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.88k
            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.88k
        } else {
350
3.88k
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
3.88k
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
3.88k
                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.88k
                } else {
360
3.88k
                    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.88k
                }
368
3.88k
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
3.88k
        }
374
3.88k
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEnnRKNS_15DataTypeDecimalILS2_30EEESD_RKNSA_IXT0_EEERKNS7_7CppTypeESJ_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_28EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_29EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_30EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb1ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
Line
Count
Source
333
92
            const typename PrimitiveTypeTraits<ResultType>::CppType& scale_diff_multiplier) {
334
        if constexpr (ResultType == TYPE_DECIMALV2) {
335
            // Now, Doris only support decimal +-*/ decimal.
336
            if constexpr (check_overflow) {
337
                auto res = Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
338
                if (res > max_result_number.value() || res < -max_result_number.value()) {
339
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
340
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
341
                                    DecimalV2Value(a).to_string(), "add",
342
                                    DecimalV2Value(b).to_string(), DecimalV2Value(res).to_string(),
343
                                    type_to_string(ResultType));
344
                }
345
                return res;
346
            } else {
347
                return Impl::apply(DecimalV2Value(a), DecimalV2Value(b)).value();
348
            }
349
92
        } else {
350
92
            typename PrimitiveTypeTraits<ResultType>::CppType::NativeType res;
351
92
            if constexpr (check_overflow) {
352
                // TODO handle overflow gracefully
353
92
                if (UNLIKELY(Impl::template apply<ResultType>(a, b, res))) {
354
0
                    throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
355
0
                                    "Arithmetic overflow: {} {} {} = {}, result type: {}",
356
0
                                    type_left.to_string(ArgA(a)), "add",
357
0
                                    type_right.to_string(ArgB(b)), type_to_string(ResultType),
358
0
                                    type_result.get_name());
359
92
                } else {
360
92
                    if (res > max_result_number.value || res < -max_result_number.value) {
361
0
                        throw Exception(ErrorCode::ARITHMETIC_OVERFLOW_ERRROR,
362
0
                                        "Arithmetic overflow: {} {} {} = {}, result type: {}",
363
0
                                        type_left.to_string(ArgA(a)), "add",
364
0
                                        type_right.to_string(ArgB(b)), type_to_string(ResultType),
365
0
                                        type_result.get_name());
366
0
                    }
367
92
                }
368
92
                return res;
369
            } else {
370
                res = Impl::template apply<ResultType>(a, b);
371
                return res;
372
            }
373
92
        }
374
92
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEE5applyILb0ELS2_35EQclL_ZNS_10is_decimalES2_ETL0_0_EEENS_19PrimitiveTypeTraitsIXT0_EE7CppType10NativeTypeEN4wide7integerILm256EiEESC_RKNS_15DataTypeDecimalILS2_35EEESG_RKNSD_IXT0_EEERKNS7_7CppTypeESM_
375
376
    template <PrimitiveType PT>
377
    static std::pair<typename PrimitiveTypeTraits<PT>::CppType,
378
                     typename PrimitiveTypeTraits<PT>::CppType>
379
    get_max_and_multiplier(const DataTypeA* type_left, const DataTypeB* type_right,
380
5.41k
                           const DataTypeDecimal<PT>& type_result) {
381
5.41k
        auto max_result_number =
382
5.41k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
5.41k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
5.41k
        auto result_scale = type_result.get_scale();
386
5.41k
        DCHECK(orig_result_scale >= result_scale);
387
5.41k
        auto scale_diff_multiplier =
388
5.41k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
5.41k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
5.41k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
5.41k
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
164
                           const DataTypeDecimal<PT>& type_result) {
381
164
        auto max_result_number =
382
164
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
164
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
164
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
164
        auto scale_diff_multiplier =
388
164
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
164
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
164
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
164
    }
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
66
                           const DataTypeDecimal<PT>& type_result) {
381
66
        auto max_result_number =
382
66
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
66
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
66
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
66
        auto scale_diff_multiplier =
388
66
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
66
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
66
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
66
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
2.55k
                           const DataTypeDecimal<PT>& type_result) {
381
2.55k
        auto max_result_number =
382
2.55k
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
2.55k
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
2.55k
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
2.55k
        auto scale_diff_multiplier =
388
2.55k
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
2.55k
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
2.55k
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
2.55k
    }
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
580
                           const DataTypeDecimal<PT>& type_result) {
381
580
        auto max_result_number =
382
580
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
580
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
580
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
580
        auto scale_diff_multiplier =
388
580
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
580
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
580
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
580
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_30EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_35EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
13
                           const DataTypeDecimal<PT>& type_result) {
381
13
        auto max_result_number =
382
13
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
13
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
13
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
13
        auto scale_diff_multiplier =
388
13
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
13
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
13
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
13
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEE22get_max_and_multiplierILS2_20EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_20EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
164
                           const DataTypeDecimal<PT>& type_result) {
381
164
        auto max_result_number =
382
164
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
164
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
164
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
164
        auto scale_diff_multiplier =
388
164
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
164
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
164
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
164
    }
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
129
                           const DataTypeDecimal<PT>& type_result) {
381
129
        auto max_result_number =
382
129
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
129
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
129
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
129
        auto scale_diff_multiplier =
388
129
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
129
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
129
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
129
    }
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_30EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEE22get_max_and_multiplierILS2_35EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_28EEESE_RKNSB_IXT_EEE
Unexecuted instantiation: _ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_28EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
_ZN5doris20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEE22get_max_and_multiplierILS2_29EEESt4pairINS_19PrimitiveTypeTraitsIXT_EE7CppTypeES9_EPKNS_15DataTypeDecimalILS2_29EEESE_RKNSB_IXT_EEE
Line
Count
Source
380
922
                           const DataTypeDecimal<PT>& type_result) {
381
922
        auto max_result_number =
382
922
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
922
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
922
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
922
        auto scale_diff_multiplier =
388
922
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
922
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
922
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
922
    }
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
734
                           const DataTypeDecimal<PT>& type_result) {
381
734
        auto max_result_number =
382
734
                DataTypeDecimal<PT>::get_max_digits_number(type_result.get_precision());
383
384
734
        auto orig_result_scale = type_left->get_scale() + type_right->get_scale();
385
734
        auto result_scale = type_result.get_scale();
386
        DCHECK(orig_result_scale >= result_scale);
387
734
        auto scale_diff_multiplier =
388
734
                DataTypeDecimal<PT>::get_scale_multiplier(orig_result_scale - result_scale);
389
734
        return {typename PrimitiveTypeTraits<PT>::CppType(max_result_number),
390
734
                typename PrimitiveTypeTraits<PT>::CppType(scale_diff_multiplier)};
391
734
    }
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
20.8k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE6createEv
Line
Count
Source
401
60
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE6createEv
Line
Count
Source
401
33
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE6createEv
Line
Count
Source
401
187
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
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
145
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE6createEv
Line
Count
Source
401
13.0k
    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
225
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE6createEv
Line
Count
Source
401
269
    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
274
    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.78k
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE6createEv
Line
Count
Source
401
230
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE6createEv
Line
Count
Source
401
638
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE6createEv
Line
Count
Source
401
10
    static FunctionPtr create() { return std::make_shared<FunctionPlusMinus>(); }
402
403
20.8k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEEC2Ev
Line
Count
Source
403
60
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEEC2Ev
Line
Count
Source
403
33
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEEC2Ev
Line
Count
Source
403
187
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
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
145
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
13.0k
    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
225
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEEC2Ev
Line
Count
Source
403
269
    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
274
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEEC2Ev
Line
Count
Source
403
54
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEEC2Ev
Line
Count
Source
403
4.78k
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEEC2Ev
Line
Count
Source
403
230
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEEC2Ev
Line
Count
Source
403
638
    FunctionPlusMinus() = default;
_ZN5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEEC2Ev
Line
Count
Source
403
10
    FunctionPlusMinus() = default;
404
405
35
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
1
    String get_name() const override { return name; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE8get_nameB5cxx11Ev
Line
Count
Source
405
2
    String get_name() const override { return name; }
406
407
16.0k
    bool need_replace_null_data_to_default() const override {
408
16.0k
        return Impl::need_replace_null_data_to_default;
409
16.0k
    }
_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
119
    bool need_replace_null_data_to_default() const override {
408
119
        return Impl::need_replace_null_data_to_default;
409
119
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
307
    bool need_replace_null_data_to_default() const override {
408
307
        return Impl::need_replace_null_data_to_default;
409
307
    }
_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
106
    bool need_replace_null_data_to_default() const override {
408
106
        return Impl::need_replace_null_data_to_default;
409
106
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
3.06k
    bool need_replace_null_data_to_default() const override {
408
3.06k
        return Impl::need_replace_null_data_to_default;
409
3.06k
    }
_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.51k
    bool need_replace_null_data_to_default() const override {
408
2.51k
        return Impl::need_replace_null_data_to_default;
409
2.51k
    }
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
385
    bool need_replace_null_data_to_default() const override {
408
385
        return Impl::need_replace_null_data_to_default;
409
385
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
464
    bool need_replace_null_data_to_default() const override {
408
464
        return Impl::need_replace_null_data_to_default;
409
464
    }
_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
467
    bool need_replace_null_data_to_default() const override {
408
467
        return Impl::need_replace_null_data_to_default;
409
467
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
118
    bool need_replace_null_data_to_default() const override {
408
118
        return Impl::need_replace_null_data_to_default;
409
118
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
6.32k
    bool need_replace_null_data_to_default() const override {
408
6.32k
        return Impl::need_replace_null_data_to_default;
409
6.32k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE33need_replace_null_data_to_defaultEv
Line
Count
Source
407
198
    bool need_replace_null_data_to_default() const override {
408
198
        return Impl::need_replace_null_data_to_default;
409
198
    }
_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.6k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
51
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
24
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
178
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
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
136
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
12.9k
    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
216
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
260
    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
265
    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.77k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
221
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
629
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE23get_number_of_argumentsEv
Line
Count
Source
411
1
    size_t get_number_of_arguments() const override { return 2; }
412
413
192
    DataTypes get_variadic_argument_types_impl() const override {
414
192
        return Impl::get_variadic_argument_types();
415
192
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE3EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE4EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE5EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE32get_variadic_argument_types_implEv
Line
Count
Source
413
8
    DataTypes get_variadic_argument_types_impl() const override {
414
8
        return Impl::get_variadic_argument_types();
415
8
    }
416
417
20.6k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
20.6k
        return arguments[0];
419
20.6k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
51
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
51
        return arguments[0];
419
51
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
24
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
24
        return arguments[0];
419
24
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
178
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
178
        return arguments[0];
419
178
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
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
136
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
136
        return arguments[0];
419
136
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
13.0k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
13.0k
        return arguments[0];
419
13.0k
    }
_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
216
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
216
        return arguments[0];
419
216
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
260
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
260
        return arguments[0];
419
260
    }
_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
264
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
264
        return arguments[0];
419
264
    }
_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.77k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
4.77k
        return arguments[0];
419
4.77k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
221
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
221
        return arguments[0];
419
221
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
629
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
629
        return arguments[0];
419
629
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
417
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
418
1
        return arguments[0];
419
1
    }
420
421
127k
    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
200
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
5.45k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.65k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE35EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
186
    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
554
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
52.2k
    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.65k
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE40use_default_implementation_for_constantsEv
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
500
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
489
    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.41k
    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.28k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
549
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
39.8k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
1.37k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE40use_default_implementation_for_constantsEv
Line
Count
Source
421
6.15k
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE40use_default_implementation_for_constantsEv
422
423
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
424
37.6k
                        uint32_t result, size_t input_rows_count) const override {
425
37.6k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
37.6k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
37.6k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
37.6k
                block.get_by_position(arguments[0]).type.get());
429
37.6k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
37.6k
                block.get_by_position(arguments[1]).type.get());
431
37.6k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
37.6k
        bool is_const_left = is_column_const(*column_left);
433
37.6k
        bool is_const_right = is_column_const(*column_right);
434
435
37.6k
        ColumnPtr column_result = nullptr;
436
37.6k
        if (is_const_left && is_const_right) {
437
261
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
261
                                              res_data_type, context->check_overflow_for_decimal());
439
37.3k
        } else if (is_const_left) {
440
3.61k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
3.61k
                                            res_data_type, context->check_overflow_for_decimal());
442
33.7k
        } else if (is_const_right) {
443
6.36k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
6.36k
                                            res_data_type, context->check_overflow_for_decimal());
445
27.4k
        } else {
446
27.4k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
27.4k
                                          res_data_type, context->check_overflow_for_decimal());
448
27.4k
        }
449
37.6k
        block.replace_by_position(result, std::move(column_result));
450
37.6k
        return Status::OK();
451
37.6k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
162
                        uint32_t result, size_t input_rows_count) const override {
425
162
        auto& column_left = block.get_by_position(arguments[0]).column;
426
162
        auto& column_right = block.get_by_position(arguments[1]).column;
427
162
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
162
                block.get_by_position(arguments[0]).type.get());
429
162
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
162
                block.get_by_position(arguments[1]).type.get());
431
162
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
162
        bool is_const_left = is_column_const(*column_left);
433
162
        bool is_const_right = is_column_const(*column_right);
434
435
162
        ColumnPtr column_result = nullptr;
436
162
        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
156
        } 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
154
        } 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
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
162
        block.replace_by_position(result, std::move(column_result));
450
162
        return Status::OK();
451
162
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
67
                        uint32_t result, size_t input_rows_count) const override {
425
67
        auto& column_left = block.get_by_position(arguments[0]).column;
426
67
        auto& column_right = block.get_by_position(arguments[1]).column;
427
67
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
67
                block.get_by_position(arguments[0]).type.get());
429
67
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
67
                block.get_by_position(arguments[1]).type.get());
431
67
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
67
        bool is_const_left = is_column_const(*column_left);
433
67
        bool is_const_right = is_column_const(*column_right);
434
435
67
        ColumnPtr column_result = nullptr;
436
67
        if (is_const_left && is_const_right) {
437
0
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
0
                                              res_data_type, context->check_overflow_for_decimal());
439
67
        } else if (is_const_left) {
440
1
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
1
                                            res_data_type, context->check_overflow_for_decimal());
442
66
        } else if (is_const_right) {
443
8
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
8
                                            res_data_type, context->check_overflow_for_decimal());
445
58
        } else {
446
58
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
58
                                          res_data_type, context->check_overflow_for_decimal());
448
58
        }
449
67
        block.replace_by_position(result, std::move(column_result));
450
67
        return Status::OK();
451
67
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
2.55k
                        uint32_t result, size_t input_rows_count) const override {
425
2.55k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
2.55k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
2.55k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
2.55k
                block.get_by_position(arguments[0]).type.get());
429
2.55k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
2.55k
                block.get_by_position(arguments[1]).type.get());
431
2.55k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
2.55k
        bool is_const_left = is_column_const(*column_left);
433
2.55k
        bool is_const_right = is_column_const(*column_right);
434
435
2.55k
        ColumnPtr column_result = nullptr;
436
2.55k
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
2.55k
        } else if (is_const_left) {
440
2.38k
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
2.38k
                                            res_data_type, context->check_overflow_for_decimal());
442
2.38k
        } 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
2.55k
        block.replace_by_position(result, std::move(column_result));
450
2.55k
        return Status::OK();
451
2.55k
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
579
                        uint32_t result, size_t input_rows_count) const override {
425
579
        auto& column_left = block.get_by_position(arguments[0]).column;
426
579
        auto& column_right = block.get_by_position(arguments[1]).column;
427
579
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
579
                block.get_by_position(arguments[0]).type.get());
429
579
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
579
                block.get_by_position(arguments[1]).type.get());
431
579
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
579
        bool is_const_left = is_column_const(*column_left);
433
579
        bool is_const_right = is_column_const(*column_right);
434
435
579
        ColumnPtr column_result = nullptr;
436
579
        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
579
        } 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
574
        } 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
564
        } else {
446
564
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
564
                                          res_data_type, context->check_overflow_for_decimal());
448
564
        }
449
579
        block.replace_by_position(result, std::move(column_result));
450
579
        return Status::OK();
451
579
    }
_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
126
                        uint32_t result, size_t input_rows_count) const override {
425
126
        auto& column_left = block.get_by_position(arguments[0]).column;
426
126
        auto& column_right = block.get_by_position(arguments[1]).column;
427
126
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
126
                block.get_by_position(arguments[0]).type.get());
429
126
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
126
                block.get_by_position(arguments[1]).type.get());
431
126
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
126
        bool is_const_left = is_column_const(*column_left);
433
126
        bool is_const_right = is_column_const(*column_right);
434
435
126
        ColumnPtr column_result = nullptr;
436
126
        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
126
        } 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
63
        } else if (is_const_right) {
443
7
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
7
                                            res_data_type, context->check_overflow_for_decimal());
445
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
126
        block.replace_by_position(result, std::move(column_result));
450
126
        return Status::OK();
451
126
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
17.6k
                        uint32_t result, size_t input_rows_count) const override {
425
17.6k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
17.6k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
17.6k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
17.6k
                block.get_by_position(arguments[0]).type.get());
429
17.6k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
17.6k
                block.get_by_position(arguments[1]).type.get());
431
17.6k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
17.6k
        bool is_const_left = is_column_const(*column_left);
433
17.6k
        bool is_const_right = is_column_const(*column_right);
434
435
17.6k
        ColumnPtr column_result = nullptr;
436
17.6k
        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
17.6k
        } else if (is_const_left) {
440
37
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
37
                                            res_data_type, context->check_overflow_for_decimal());
442
17.5k
        } else if (is_const_right) {
443
1.44k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
1.44k
                                            res_data_type, context->check_overflow_for_decimal());
445
16.1k
        } else {
446
16.1k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
16.1k
                                          res_data_type, context->check_overflow_for_decimal());
448
16.1k
        }
449
17.6k
        block.replace_by_position(result, std::move(column_result));
450
17.6k
        return Status::OK();
451
17.6k
    }
_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.76k
                        uint32_t result, size_t input_rows_count) const override {
425
2.76k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
2.76k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
2.76k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
2.76k
                block.get_by_position(arguments[0]).type.get());
429
2.76k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
2.76k
                block.get_by_position(arguments[1]).type.get());
431
2.76k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
2.76k
        bool is_const_left = is_column_const(*column_left);
433
2.76k
        bool is_const_right = is_column_const(*column_right);
434
435
2.76k
        ColumnPtr column_result = nullptr;
436
2.76k
        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.73k
        } else if (is_const_left) {
440
669
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
669
                                            res_data_type, context->check_overflow_for_decimal());
442
2.06k
        } else if (is_const_right) {
443
53
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
53
                                            res_data_type, context->check_overflow_for_decimal());
445
2.01k
        } else {
446
2.01k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
2.01k
                                          res_data_type, context->check_overflow_for_decimal());
448
2.01k
        }
449
2.76k
        block.replace_by_position(result, std::move(column_result));
450
2.76k
        return Status::OK();
451
2.76k
    }
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
922
                        uint32_t result, size_t input_rows_count) const override {
425
922
        auto& column_left = block.get_by_position(arguments[0]).column;
426
922
        auto& column_right = block.get_by_position(arguments[1]).column;
427
922
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
922
                block.get_by_position(arguments[0]).type.get());
429
922
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
922
                block.get_by_position(arguments[1]).type.get());
431
922
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
922
        bool is_const_left = is_column_const(*column_left);
433
922
        bool is_const_right = is_column_const(*column_right);
434
435
922
        ColumnPtr column_result = nullptr;
436
922
        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
922
        } else if (is_const_left) {
440
444
            column_result = constant_vector(column_left, column_right, type_left, type_right,
441
444
                                            res_data_type, context->check_overflow_for_decimal());
442
478
        } else if (is_const_right) {
443
242
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
242
                                            res_data_type, context->check_overflow_for_decimal());
445
242
        } else {
446
236
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
236
                                          res_data_type, context->check_overflow_for_decimal());
448
236
        }
449
922
        block.replace_by_position(result, std::move(column_result));
450
922
        return Status::OK();
451
922
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
736
                        uint32_t result, size_t input_rows_count) const override {
425
736
        auto& column_left = block.get_by_position(arguments[0]).column;
426
736
        auto& column_right = block.get_by_position(arguments[1]).column;
427
736
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
736
                block.get_by_position(arguments[0]).type.get());
429
736
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
736
                block.get_by_position(arguments[1]).type.get());
431
736
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
736
        bool is_const_left = is_column_const(*column_left);
433
736
        bool is_const_right = is_column_const(*column_right);
434
435
736
        ColumnPtr column_result = nullptr;
436
736
        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
736
        } 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
735
        } else if (is_const_right) {
443
90
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
90
                                            res_data_type, context->check_overflow_for_decimal());
445
645
        } else {
446
645
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
645
                                          res_data_type, context->check_overflow_for_decimal());
448
645
        }
449
736
        block.replace_by_position(result, std::move(column_result));
450
736
        return Status::OK();
451
736
    }
_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
498
                        uint32_t result, size_t input_rows_count) const override {
425
498
        auto& column_left = block.get_by_position(arguments[0]).column;
426
498
        auto& column_right = block.get_by_position(arguments[1]).column;
427
498
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
498
                block.get_by_position(arguments[0]).type.get());
429
498
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
498
                block.get_by_position(arguments[1]).type.get());
431
498
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
498
        bool is_const_left = is_column_const(*column_left);
433
498
        bool is_const_right = is_column_const(*column_right);
434
435
498
        ColumnPtr column_result = nullptr;
436
498
        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
493
        } 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
493
        } else if (is_const_right) {
443
446
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
446
                                            res_data_type, context->check_overflow_for_decimal());
445
446
        } else {
446
47
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
47
                                          res_data_type, context->check_overflow_for_decimal());
448
47
        }
449
498
        block.replace_by_position(result, std::move(column_result));
450
498
        return Status::OK();
451
498
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
142
                        uint32_t result, size_t input_rows_count) const override {
425
142
        auto& column_left = block.get_by_position(arguments[0]).column;
426
142
        auto& column_right = block.get_by_position(arguments[1]).column;
427
142
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
142
                block.get_by_position(arguments[0]).type.get());
429
142
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
142
                block.get_by_position(arguments[1]).type.get());
431
142
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
142
        bool is_const_left = is_column_const(*column_left);
433
142
        bool is_const_right = is_column_const(*column_right);
434
435
142
        ColumnPtr column_result = nullptr;
436
142
        if (is_const_left && is_const_right) {
437
1
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
1
                                              res_data_type, context->check_overflow_for_decimal());
439
141
        } 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
141
        } 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
102
        } else {
446
102
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
102
                                          res_data_type, context->check_overflow_for_decimal());
448
102
        }
449
142
        block.replace_by_position(result, std::move(column_result));
450
142
        return Status::OK();
451
142
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
8.76k
                        uint32_t result, size_t input_rows_count) const override {
425
8.76k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
8.76k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
8.76k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
8.76k
                block.get_by_position(arguments[0]).type.get());
429
8.76k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
8.76k
                block.get_by_position(arguments[1]).type.get());
431
8.76k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
8.76k
        bool is_const_left = is_column_const(*column_left);
433
8.76k
        bool is_const_right = is_column_const(*column_right);
434
435
8.76k
        ColumnPtr column_result = nullptr;
436
8.76k
        if (is_const_left && is_const_right) {
437
84
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
84
                                              res_data_type, context->check_overflow_for_decimal());
439
8.67k
        } 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.66k
        } else if (is_const_right) {
443
3.60k
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
3.60k
                                            res_data_type, context->check_overflow_for_decimal());
445
5.06k
        } else {
446
5.06k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
5.06k
                                          res_data_type, context->check_overflow_for_decimal());
448
5.06k
        }
449
8.76k
        block.replace_by_position(result, std::move(column_result));
450
8.76k
        return Status::OK();
451
8.76k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
318
                        uint32_t result, size_t input_rows_count) const override {
425
318
        auto& column_left = block.get_by_position(arguments[0]).column;
426
318
        auto& column_right = block.get_by_position(arguments[1]).column;
427
318
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
318
                block.get_by_position(arguments[0]).type.get());
429
318
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
318
                block.get_by_position(arguments[1]).type.get());
431
318
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
318
        bool is_const_left = is_column_const(*column_left);
433
318
        bool is_const_right = is_column_const(*column_right);
434
435
318
        ColumnPtr column_result = nullptr;
436
318
        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
317
        } 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
317
        } else if (is_const_right) {
443
117
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
117
                                            res_data_type, context->check_overflow_for_decimal());
445
200
        } else {
446
200
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
200
                                          res_data_type, context->check_overflow_for_decimal());
448
200
        }
449
318
        block.replace_by_position(result, std::move(column_result));
450
318
        return Status::OK();
451
318
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
424
1.76k
                        uint32_t result, size_t input_rows_count) const override {
425
1.76k
        auto& column_left = block.get_by_position(arguments[0]).column;
426
1.76k
        auto& column_right = block.get_by_position(arguments[1]).column;
427
1.76k
        const auto* type_left = assert_cast<const typename Impl::DataTypeA*>(
428
1.76k
                block.get_by_position(arguments[0]).type.get());
429
1.76k
        const auto* type_right = assert_cast<const typename Impl::DataTypeB*>(
430
1.76k
                block.get_by_position(arguments[1]).type.get());
431
1.76k
        const auto& res_data_type = remove_nullable(block.get_by_position(result).type);
432
1.76k
        bool is_const_left = is_column_const(*column_left);
433
1.76k
        bool is_const_right = is_column_const(*column_right);
434
435
1.76k
        ColumnPtr column_result = nullptr;
436
1.76k
        if (is_const_left && is_const_right) {
437
19
            column_result = constant_constant(column_left, column_right, type_left, type_right,
438
19
                                              res_data_type, context->check_overflow_for_decimal());
439
1.74k
        } 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.74k
        } else if (is_const_right) {
443
260
            column_result = vector_constant(column_left, column_right, type_left, type_right,
444
260
                                            res_data_type, context->check_overflow_for_decimal());
445
1.48k
        } else {
446
1.48k
            column_result = vector_vector(column_left, column_right, type_left, type_right,
447
1.48k
                                          res_data_type, context->check_overflow_for_decimal());
448
1.48k
        }
449
1.76k
        block.replace_by_position(result, std::move(column_result));
450
1.76k
        return Status::OK();
451
1.76k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
452
453
private:
454
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right,
455
                                const typename Impl::DataTypeA* type_left,
456
                                const typename Impl::DataTypeB* type_right,
457
261
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
261
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
261
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
261
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
261
        ColumnPtr column_result = nullptr;
463
464
261
        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
187
        } else {
514
187
            column_result = Impl::constant_constant(
515
187
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
187
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
187
        }
518
519
74
        return ColumnConst::create(std::move(column_result), column_left->size());
520
261
    }
_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
84
                                DataTypePtr res_data_type, bool check_overflow_for_decimal) const {
458
84
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
459
84
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
460
84
        DCHECK(column_left_ptr != nullptr && column_right_ptr != nullptr);
461
462
84
        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
84
        } else {
514
84
            column_result = Impl::constant_constant(
515
84
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
516
84
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
517
84
        }
518
519
84
        return ColumnConst::create(std::move(column_result), column_left->size());
520
84
    }
_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
6.36k
                              bool check_overflow_for_decimal) const {
526
6.36k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
6.36k
        DCHECK(column_right_ptr != nullptr);
528
529
6.36k
        ColumnPtr res = nullptr;
530
6.36k
        if constexpr (result_is_decimal) {
531
395
            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
391
            } else {
551
391
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
391
                                         DataTypeDecimal256>(
553
392
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
392
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
392
                                        type_left, type_right, type_result);
556
392
                                res = Impl::vector_constant(
557
392
                                        column_left->get_ptr(),
558
392
                                        column_right_ptr
559
392
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
392
                                        type_left, type_right, max_and_multiplier.first,
561
392
                                        max_and_multiplier.second, type_result,
562
392
                                        check_overflow_for_decimal);
563
392
                                return true;
564
392
                            })) {
_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
243
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
243
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
243
                                        type_left, type_right, type_result);
556
243
                                res = Impl::vector_constant(
557
243
                                        column_left->get_ptr(),
558
243
                                        column_right_ptr
559
243
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
243
                                        type_left, type_right, max_and_multiplier.first,
561
243
                                        max_and_multiplier.second, type_result,
562
243
                                        check_overflow_for_decimal);
563
243
                                return true;
564
243
                            })) {
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
90
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
90
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
90
                                        type_left, type_right, type_result);
556
90
                                res = Impl::vector_constant(
557
90
                                        column_left->get_ptr(),
558
90
                                        column_right_ptr
559
90
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
90
                                        type_left, type_right, max_and_multiplier.first,
561
90
                                        max_and_multiplier.second, type_result,
562
90
                                        check_overflow_for_decimal);
563
90
                                return true;
564
90
                            })) {
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
391
            }
570
5.96k
        } else {
571
5.96k
            res = Impl::vector_constant(
572
5.96k
                    column_left->get_ptr(),
573
5.96k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
5.96k
        }
575
395
        return res;
576
6.36k
    }
_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
7
                              bool check_overflow_for_decimal) const {
526
7
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
7
        DCHECK(column_right_ptr != nullptr);
528
529
7
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
7
        } else {
571
7
            res = Impl::vector_constant(
572
7
                    column_left->get_ptr(),
573
7
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
7
        }
575
7
        return res;
576
7
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE6EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
1.44k
                              bool check_overflow_for_decimal) const {
526
1.44k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
1.44k
        DCHECK(column_right_ptr != nullptr);
528
529
1.44k
        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
1.44k
        } else {
571
1.44k
            res = Impl::vector_constant(
572
1.44k
                    column_left->get_ptr(),
573
1.44k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
1.44k
        }
575
1.44k
        return res;
576
1.44k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
53
                              bool check_overflow_for_decimal) const {
526
53
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
53
        DCHECK(column_right_ptr != nullptr);
528
529
53
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
53
        } else {
571
53
            res = Impl::vector_constant(
572
53
                    column_left->get_ptr(),
573
53
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
53
        }
575
53
        return res;
576
53
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
2
                              bool check_overflow_for_decimal) const {
526
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
2
        DCHECK(column_right_ptr != nullptr);
528
529
2
        ColumnPtr res = nullptr;
530
2
        if constexpr (result_is_decimal) {
531
2
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
2
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
2
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
2
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
2
                                        type_left, type_right, type_result);
536
2
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
2
                                auto src = column_right_ptr
538
2
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
2
                                std::memcpy(&tmp, &src, sizeof(src));
540
2
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
2
                                                            type_right, max_and_multiplier.first,
542
2
                                                            max_and_multiplier.second, type_result,
543
2
                                                            check_overflow_for_decimal);
544
2
                                return true;
545
2
                            })) {
546
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
0
                                    type_to_string(res_data_type->get_primitive_type()));
549
0
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
2
        return res;
576
2
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
13
                              bool check_overflow_for_decimal) const {
526
13
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
13
        DCHECK(column_right_ptr != nullptr);
528
529
13
        ColumnPtr res = nullptr;
530
13
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
13
            } else {
551
13
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
13
                                         DataTypeDecimal256>(
553
13
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
13
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
13
                                        type_left, type_right, type_result);
556
13
                                res = Impl::vector_constant(
557
13
                                        column_left->get_ptr(),
558
13
                                        column_right_ptr
559
13
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
13
                                        type_left, type_right, max_and_multiplier.first,
561
13
                                        max_and_multiplier.second, type_result,
562
13
                                        check_overflow_for_decimal);
563
13
                                return true;
564
13
                            })) {
565
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
0
                                    type_to_string(res_data_type->get_primitive_type()));
568
0
                }
569
13
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
13
        return res;
576
13
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
242
                              bool check_overflow_for_decimal) const {
526
242
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
242
        DCHECK(column_right_ptr != nullptr);
528
529
242
        ColumnPtr res = nullptr;
530
242
        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
242
            } else {
551
242
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
242
                                         DataTypeDecimal256>(
553
242
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
242
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
242
                                        type_left, type_right, type_result);
556
242
                                res = Impl::vector_constant(
557
242
                                        column_left->get_ptr(),
558
242
                                        column_right_ptr
559
242
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
242
                                        type_left, type_right, max_and_multiplier.first,
561
242
                                        max_and_multiplier.second, type_result,
562
242
                                        check_overflow_for_decimal);
563
242
                                return true;
564
242
                            })) {
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
242
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
242
        return res;
576
242
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
90
                              bool check_overflow_for_decimal) const {
526
90
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
90
        DCHECK(column_right_ptr != nullptr);
528
529
90
        ColumnPtr res = nullptr;
530
90
        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
90
            } else {
551
90
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
90
                                         DataTypeDecimal256>(
553
90
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
90
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
90
                                        type_left, type_right, type_result);
556
90
                                res = Impl::vector_constant(
557
90
                                        column_left->get_ptr(),
558
90
                                        column_right_ptr
559
90
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
90
                                        type_left, type_right, max_and_multiplier.first,
561
90
                                        max_and_multiplier.second, type_result,
562
90
                                        check_overflow_for_decimal);
563
90
                                return true;
564
90
                            })) {
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
90
            }
570
        } else {
571
            res = Impl::vector_constant(
572
                    column_left->get_ptr(),
573
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
        }
575
90
        return res;
576
90
    }
_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
446
                              bool check_overflow_for_decimal) const {
526
446
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
446
        DCHECK(column_right_ptr != nullptr);
528
529
446
        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
446
        } else {
571
446
            res = Impl::vector_constant(
572
446
                    column_left->get_ptr(),
573
446
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
446
        }
575
446
        return res;
576
446
    }
_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.60k
                              bool check_overflow_for_decimal) const {
526
3.60k
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
3.60k
        DCHECK(column_right_ptr != nullptr);
528
529
3.60k
        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.60k
        } else {
571
3.60k
            res = Impl::vector_constant(
572
3.60k
                    column_left->get_ptr(),
573
3.60k
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
3.60k
        }
575
3.60k
        return res;
576
3.60k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
117
                              bool check_overflow_for_decimal) const {
526
117
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
117
        DCHECK(column_right_ptr != nullptr);
528
529
117
        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
117
        } else {
571
117
            res = Impl::vector_constant(
572
117
                    column_left->get_ptr(),
573
117
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
117
        }
575
117
        return res;
576
117
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
525
260
                              bool check_overflow_for_decimal) const {
526
260
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
527
260
        DCHECK(column_right_ptr != nullptr);
528
529
260
        ColumnPtr res = nullptr;
530
        if constexpr (result_is_decimal) {
531
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
532
                if (!cast_type_to_either<DataTypeDecimalV2>(
533
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
534
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
535
                                        type_left, type_right, type_result);
536
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
537
                                auto src = column_right_ptr
538
                                                   ->template get_value<Impl::DataTypeB::PType>();
539
                                std::memcpy(&tmp, &src, sizeof(src));
540
                                res = Impl::vector_constant(column_left->get_ptr(), tmp, type_left,
541
                                                            type_right, max_and_multiplier.first,
542
                                                            max_and_multiplier.second, type_result,
543
                                                            check_overflow_for_decimal);
544
                                return true;
545
                            })) {
546
                    throw Exception(ErrorCode::INTERNAL_ERROR,
547
                                    "Wrong type. Expected: Decimal, Actually: {}",
548
                                    type_to_string(res_data_type->get_primitive_type()));
549
                }
550
            } else {
551
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
552
                                         DataTypeDecimal256>(
553
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
554
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
555
                                        type_left, type_right, type_result);
556
                                res = Impl::vector_constant(
557
                                        column_left->get_ptr(),
558
                                        column_right_ptr
559
                                                ->template get_value<Impl::DataTypeB::PType>(),
560
                                        type_left, type_right, max_and_multiplier.first,
561
                                        max_and_multiplier.second, type_result,
562
                                        check_overflow_for_decimal);
563
                                return true;
564
                            })) {
565
                    throw Exception(ErrorCode::INTERNAL_ERROR,
566
                                    "Wrong type. Expected: Decimal, Actually: {}",
567
                                    type_to_string(res_data_type->get_primitive_type()));
568
                }
569
            }
570
260
        } else {
571
260
            res = Impl::vector_constant(
572
260
                    column_left->get_ptr(),
573
260
                    column_right_ptr->template get_value<Impl::DataTypeB::PType>());
574
260
        }
575
260
        return res;
576
260
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
577
578
    ColumnPtr constant_vector(ColumnPtr column_left, ColumnPtr column_right,
579
                              const typename Impl::DataTypeA* type_left,
580
                              const typename Impl::DataTypeB* type_right, DataTypePtr res_data_type,
581
3.61k
                              bool check_overflow_for_decimal) const {
582
3.61k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
3.61k
        DCHECK(column_left_ptr != nullptr);
584
585
3.61k
        ColumnPtr res = nullptr;
586
3.61k
        if constexpr (result_is_decimal) {
587
2.83k
            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
2.83k
            } else {
607
2.83k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
2.83k
                                         DataTypeDecimal256>(
609
2.83k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.83k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.83k
                                        type_left, type_right, type_result);
612
2.83k
                                res = Impl::constant_vector(
613
2.83k
                                        column_left_ptr
614
2.83k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.83k
                                        column_right->get_ptr(), type_left, type_right,
616
2.83k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.83k
                                        type_result, check_overflow_for_decimal);
618
2.83k
                                return true;
619
2.83k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
609
2.38k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.38k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.38k
                                        type_left, type_right, type_result);
612
2.38k
                                res = Impl::constant_vector(
613
2.38k
                                        column_left_ptr
614
2.38k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.38k
                                        column_right->get_ptr(), type_left, type_right,
616
2.38k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.38k
                                        type_result, check_overflow_for_decimal);
618
2.38k
                                return true;
619
2.38k
                            })) {
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
444
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
444
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
444
                                        type_left, type_right, type_result);
612
444
                                res = Impl::constant_vector(
613
444
                                        column_left_ptr
614
444
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
444
                                        column_right->get_ptr(), type_left, type_right,
616
444
                                        max_and_multiplier.first, max_and_multiplier.second,
617
444
                                        type_result, check_overflow_for_decimal);
618
444
                                return true;
619
444
                            })) {
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
2.83k
            }
625
2.83k
        } else {
626
782
            res = Impl::constant_vector(
627
782
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
782
                    column_right->get_ptr());
629
782
        }
630
2.83k
        return res;
631
3.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
2.38k
                              bool check_overflow_for_decimal) const {
582
2.38k
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
2.38k
        DCHECK(column_left_ptr != nullptr);
584
585
2.38k
        ColumnPtr res = nullptr;
586
2.38k
        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.38k
            } else {
607
2.38k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
2.38k
                                         DataTypeDecimal256>(
609
2.38k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
2.38k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
2.38k
                                        type_left, type_right, type_result);
612
2.38k
                                res = Impl::constant_vector(
613
2.38k
                                        column_left_ptr
614
2.38k
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
2.38k
                                        column_right->get_ptr(), type_left, type_right,
616
2.38k
                                        max_and_multiplier.first, max_and_multiplier.second,
617
2.38k
                                        type_result, check_overflow_for_decimal);
618
2.38k
                                return true;
619
2.38k
                            })) {
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.38k
            }
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.38k
        return res;
631
2.38k
    }
_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
37
                              bool check_overflow_for_decimal) const {
582
37
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
37
        DCHECK(column_left_ptr != nullptr);
584
585
37
        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
37
        } else {
626
37
            res = Impl::constant_vector(
627
37
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
37
                    column_right->get_ptr());
629
37
        }
630
37
        return res;
631
37
    }
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
669
                              bool check_overflow_for_decimal) const {
582
669
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
669
        DCHECK(column_left_ptr != nullptr);
584
585
669
        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
669
        } else {
626
669
            res = Impl::constant_vector(
627
669
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
669
                    column_right->get_ptr());
629
669
        }
630
669
        return res;
631
669
    }
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
444
                              bool check_overflow_for_decimal) const {
582
444
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
444
        DCHECK(column_left_ptr != nullptr);
584
585
444
        ColumnPtr res = nullptr;
586
444
        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
444
            } else {
607
444
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
444
                                         DataTypeDecimal256>(
609
444
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
444
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
444
                                        type_left, type_right, type_result);
612
444
                                res = Impl::constant_vector(
613
444
                                        column_left_ptr
614
444
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
444
                                        column_right->get_ptr(), type_left, type_right,
616
444
                                        max_and_multiplier.first, max_and_multiplier.second,
617
444
                                        type_result, check_overflow_for_decimal);
618
444
                                return true;
619
444
                            })) {
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
444
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
444
        return res;
631
444
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
1
                              bool check_overflow_for_decimal) const {
582
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
1
        DCHECK(column_left_ptr != nullptr);
584
585
1
        ColumnPtr res = nullptr;
586
1
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
1
            } else {
607
1
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
1
                                         DataTypeDecimal256>(
609
1
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
1
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
1
                                        type_left, type_right, type_result);
612
1
                                res = Impl::constant_vector(
613
1
                                        column_left_ptr
614
1
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
1
                                        column_right->get_ptr(), type_left, type_right,
616
1
                                        max_and_multiplier.first, max_and_multiplier.second,
617
1
                                        type_result, check_overflow_for_decimal);
618
1
                                return true;
619
1
                            })) {
620
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
0
                                    type_to_string(res_data_type->get_primitive_type()));
623
0
                }
624
1
            }
625
        } else {
626
            res = Impl::constant_vector(
627
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
                    column_right->get_ptr());
629
        }
630
1
        return res;
631
1
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
581
13
                              bool check_overflow_for_decimal) const {
582
13
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
583
13
        DCHECK(column_left_ptr != nullptr);
584
585
13
        ColumnPtr res = nullptr;
586
        if constexpr (result_is_decimal) {
587
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
588
                if (!cast_type_to_either<DataTypeDecimalV2>(
589
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
590
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
591
                                        type_left, type_right, type_result);
592
                                typename PrimitiveTypeTraits<TYPE_DECIMALV2>::CppType tmp;
593
                                auto src = column_left_ptr
594
                                                   ->template get_value<Impl::DataTypeA::PType>();
595
                                std::memcpy(&tmp, &src, sizeof(src));
596
                                res = Impl::constant_vector(tmp, column_right->get_ptr(), type_left,
597
                                                            type_right, max_and_multiplier.first,
598
                                                            max_and_multiplier.second, type_result,
599
                                                            check_overflow_for_decimal);
600
                                return true;
601
                            })) {
602
                    throw Exception(ErrorCode::INTERNAL_ERROR,
603
                                    "Wrong type. Expected: Decimal, Actually: {}",
604
                                    type_to_string(res_data_type->get_primitive_type()));
605
                }
606
            } else {
607
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
608
                                         DataTypeDecimal256>(
609
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
610
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
611
                                        type_left, type_right, type_result);
612
                                res = Impl::constant_vector(
613
                                        column_left_ptr
614
                                                ->template get_value<Impl::DataTypeA::PType>(),
615
                                        column_right->get_ptr(), type_left, type_right,
616
                                        max_and_multiplier.first, max_and_multiplier.second,
617
                                        type_result, check_overflow_for_decimal);
618
                                return true;
619
                            })) {
620
                    throw Exception(ErrorCode::INTERNAL_ERROR,
621
                                    "Wrong type. Expected: Decimal, Actually: {}",
622
                                    type_to_string(res_data_type->get_primitive_type()));
623
                }
624
            }
625
13
        } else {
626
13
            res = Impl::constant_vector(
627
13
                    column_left_ptr->template get_value<Impl::DataTypeA::PType>(),
628
13
                    column_right->get_ptr());
629
13
        }
630
13
        return res;
631
13
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE9EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_9EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE8EEEEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
632
633
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right,
634
                            const typename Impl::DataTypeA* type_left,
635
                            const typename Impl::DataTypeB* type_right, DataTypePtr res_data_type,
636
27.4k
                            bool check_overflow_for_decimal) const {
637
27.4k
        ColumnPtr res = nullptr;
638
27.4k
        if constexpr (result_is_decimal) {
639
2.12k
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
308
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
308
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
308
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
308
                                        type_left, type_right, type_result);
644
308
                                res = Impl::vector_vector(column_left->get_ptr(),
645
308
                                                          column_right->get_ptr(), type_left,
646
308
                                                          type_right, max_and_multiplier.first,
647
308
                                                          max_and_multiplier.second, type_result,
648
308
                                                          check_overflow_for_decimal);
649
308
                                return true;
650
308
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
1.81k
            } else {
656
1.81k
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
1.81k
                                         DataTypeDecimal256>(
658
1.81k
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
1.80k
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
1.80k
                                        type_left, type_right, type_result);
661
1.80k
                                res = Impl::vector_vector(column_left->get_ptr(),
662
1.80k
                                                          column_right->get_ptr(), type_left,
663
1.80k
                                                          type_right, max_and_multiplier.first,
664
1.80k
                                                          max_and_multiplier.second, type_result,
665
1.80k
                                                          check_overflow_for_decimal);
666
1.80k
                                return true;
667
1.80k
                            })) {
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
57
                                        type_left, type_right, type_result);
661
57
                                res = Impl::vector_vector(column_left->get_ptr(),
662
57
                                                          column_right->get_ptr(), type_left,
663
57
                                                          type_right, max_and_multiplier.first,
664
57
                                                          max_and_multiplier.second, type_result,
665
57
                                                          check_overflow_for_decimal);
666
57
                                return true;
667
57
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
166
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
166
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
166
                                        type_left, type_right, type_result);
661
166
                                res = Impl::vector_vector(column_left->get_ptr(),
662
166
                                                          column_right->get_ptr(), type_left,
663
166
                                                          type_right, max_and_multiplier.first,
664
166
                                                          max_and_multiplier.second, type_result,
665
166
                                                          check_overflow_for_decimal);
666
166
                                return true;
667
166
                            })) {
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_30EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_35EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_28EEEEEDaSM_
Unexecuted instantiation: _ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clINSC_ILS3_29EEEEEDaSM_
_ZZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEbENKUlRKT_E_clISD_EEDaSM_
Line
Count
Source
658
567
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
567
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
567
                                        type_left, type_right, type_result);
661
567
                                res = Impl::vector_vector(column_left->get_ptr(),
662
567
                                                          column_right->get_ptr(), type_left,
663
567
                                                          type_right, max_and_multiplier.first,
664
567
                                                          max_and_multiplier.second, type_result,
665
567
                                                          check_overflow_for_decimal);
666
567
                                return true;
667
567
                            })) {
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
56
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
56
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
56
                                        type_left, type_right, type_result);
661
56
                                res = Impl::vector_vector(column_left->get_ptr(),
662
56
                                                          column_right->get_ptr(), type_left,
663
56
                                                          type_right, max_and_multiplier.first,
664
56
                                                          max_and_multiplier.second, type_result,
665
56
                                                          check_overflow_for_decimal);
666
56
                                return true;
667
56
                            })) {
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
237
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
237
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
237
                                        type_left, type_right, type_result);
661
237
                                res = Impl::vector_vector(column_left->get_ptr(),
662
237
                                                          column_right->get_ptr(), type_left,
663
237
                                                          type_right, max_and_multiplier.first,
664
237
                                                          max_and_multiplier.second, type_result,
665
237
                                                          check_overflow_for_decimal);
666
237
                                return true;
667
237
                            })) {
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
643
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
643
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
643
                                        type_left, type_right, type_result);
661
643
                                res = Impl::vector_vector(column_left->get_ptr(),
662
643
                                                          column_right->get_ptr(), type_left,
663
643
                                                          type_right, max_and_multiplier.first,
664
643
                                                          max_and_multiplier.second, type_result,
665
643
                                                          check_overflow_for_decimal);
666
643
                                return true;
667
643
                            })) {
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.81k
            }
673
25.3k
        } else {
674
25.3k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
25.3k
        }
676
2.12k
        return res;
677
27.4k
    }
_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
59
                            bool check_overflow_for_decimal) const {
637
59
        ColumnPtr res = nullptr;
638
59
        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
59
            } else {
656
59
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
59
                                         DataTypeDecimal256>(
658
59
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
59
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
59
                                        type_left, type_right, type_result);
661
59
                                res = Impl::vector_vector(column_left->get_ptr(),
662
59
                                                          column_right->get_ptr(), type_left,
663
59
                                                          type_right, max_and_multiplier.first,
664
59
                                                          max_and_multiplier.second, type_result,
665
59
                                                          check_overflow_for_decimal);
666
59
                                return true;
667
59
                            })) {
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
59
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
59
        return res;
677
59
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
166
                            bool check_overflow_for_decimal) const {
637
166
        ColumnPtr res = nullptr;
638
166
        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
166
            } else {
656
166
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
166
                                         DataTypeDecimal256>(
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
                            })) {
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
166
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
166
        return res;
677
166
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_16MinusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
568
                            bool check_overflow_for_decimal) const {
637
568
        ColumnPtr res = nullptr;
638
568
        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
568
            } else {
656
568
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
568
                                         DataTypeDecimal256>(
658
568
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
568
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
568
                                        type_left, type_right, type_result);
661
568
                                res = Impl::vector_vector(column_left->get_ptr(),
662
568
                                                          column_right->get_ptr(), type_left,
663
568
                                                          type_right, max_and_multiplier.first,
664
568
                                                          max_and_multiplier.second, type_result,
665
568
                                                          check_overflow_for_decimal);
666
568
                                return true;
667
568
                            })) {
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
568
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
568
        return res;
677
568
    }
_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
16.1k
                            bool check_overflow_for_decimal) const {
637
16.1k
        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
16.1k
        } else {
674
16.1k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
16.1k
        }
676
16.1k
        return res;
677
16.1k
    }
_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.01k
                            bool check_overflow_for_decimal) const {
637
2.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
2.01k
        } else {
674
2.01k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
2.01k
        }
676
2.01k
        return res;
677
2.01k
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_9MinusImplILNS_13PrimitiveTypeE8EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_8EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE20EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_20EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
154
                            bool check_overflow_for_decimal) const {
637
154
        ColumnPtr res = nullptr;
638
154
        if constexpr (result_is_decimal) {
639
154
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
154
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
154
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
154
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
154
                                        type_left, type_right, type_result);
644
154
                                res = Impl::vector_vector(column_left->get_ptr(),
645
154
                                                          column_right->get_ptr(), type_left,
646
154
                                                          type_right, max_and_multiplier.first,
647
154
                                                          max_and_multiplier.second, type_result,
648
154
                                                          check_overflow_for_decimal);
649
154
                                return true;
650
154
                            })) {
651
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
0
                                    type_to_string(res_data_type->get_primitive_type()));
654
0
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
154
        return res;
677
154
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE28EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_28EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
57
                            bool check_overflow_for_decimal) const {
637
57
        ColumnPtr res = nullptr;
638
57
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
57
            } else {
656
57
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
57
                                         DataTypeDecimal256>(
658
57
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
57
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
57
                                        type_left, type_right, type_result);
661
57
                                res = Impl::vector_vector(column_left->get_ptr(),
662
57
                                                          column_right->get_ptr(), type_left,
663
57
                                                          type_right, max_and_multiplier.first,
664
57
                                                          max_and_multiplier.second, type_result,
665
57
                                                          check_overflow_for_decimal);
666
57
                                return true;
667
57
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
57
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
57
        return res;
677
57
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE29EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_29EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
236
                            bool check_overflow_for_decimal) const {
637
236
        ColumnPtr res = nullptr;
638
236
        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
236
            } else {
656
236
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
236
                                         DataTypeDecimal256>(
658
236
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
236
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
236
                                        type_left, type_right, type_result);
661
236
                                res = Impl::vector_vector(column_left->get_ptr(),
662
236
                                                          column_right->get_ptr(), type_left,
663
236
                                                          type_right, max_and_multiplier.first,
664
236
                                                          max_and_multiplier.second, type_result,
665
236
                                                          check_overflow_for_decimal);
666
236
                                return true;
667
236
                            })) {
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
236
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
236
        return res;
677
236
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE30EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_30EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
647
                            bool check_overflow_for_decimal) const {
637
647
        ColumnPtr res = nullptr;
638
647
        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
647
            } else {
656
647
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
647
                                         DataTypeDecimal256>(
658
647
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
647
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
647
                                        type_left, type_right, type_result);
661
647
                                res = Impl::vector_vector(column_left->get_ptr(),
662
647
                                                          column_right->get_ptr(), type_left,
663
647
                                                          type_right, max_and_multiplier.first,
664
647
                                                          max_and_multiplier.second, type_result,
665
647
                                                          check_overflow_for_decimal);
666
647
                                return true;
667
647
                            })) {
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
647
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
647
        return res;
677
647
    }
_ZNK5doris17FunctionPlusMinusINS_20PlusMinusDecimalImplINS_15PlusDecimalImplILNS_13PrimitiveTypeE35EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_15DataTypeDecimalILS3_35EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
74
                            bool check_overflow_for_decimal) const {
637
74
        ColumnPtr res = nullptr;
638
74
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
74
            } else {
656
74
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
74
                                         DataTypeDecimal256>(
658
74
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
74
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
74
                                        type_left, type_right, type_result);
661
74
                                res = Impl::vector_vector(column_left->get_ptr(),
662
74
                                                          column_right->get_ptr(), type_left,
663
74
                                                          type_right, max_and_multiplier.first,
664
74
                                                          max_and_multiplier.second, type_result,
665
74
                                                          check_overflow_for_decimal);
666
74
                                return true;
667
74
                            })) {
668
0
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
0
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
0
                                    type_to_string(res_data_type->get_primitive_type()));
671
0
                }
672
74
            }
673
        } else {
674
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
        }
676
74
        return res;
677
74
    }
Unexecuted instantiation: _ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE3EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_3EEESF_St10shared_ptrIKNS_9IDataTypeEEb
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE4EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_4EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
47
                            bool check_overflow_for_decimal) const {
637
47
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
47
        } else {
674
47
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
47
        }
676
47
        return res;
677
47
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE5EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_5EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
102
                            bool check_overflow_for_decimal) const {
637
102
        ColumnPtr res = nullptr;
638
        if constexpr (result_is_decimal) {
639
            if constexpr (Impl::DataTypeA::PType == TYPE_DECIMALV2) {
640
                if (!cast_type_to_either<DataTypeDecimalV2>(
641
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
642
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
643
                                        type_left, type_right, type_result);
644
                                res = Impl::vector_vector(column_left->get_ptr(),
645
                                                          column_right->get_ptr(), type_left,
646
                                                          type_right, max_and_multiplier.first,
647
                                                          max_and_multiplier.second, type_result,
648
                                                          check_overflow_for_decimal);
649
                                return true;
650
                            })) {
651
                    throw Exception(ErrorCode::INTERNAL_ERROR,
652
                                    "Wrong type. Expected: Decimal, Actually: {}",
653
                                    type_to_string(res_data_type->get_primitive_type()));
654
                }
655
            } else {
656
                if (!cast_type_to_either<DataTypeDecimal32, DataTypeDecimal64, DataTypeDecimal128,
657
                                         DataTypeDecimal256>(
658
                            remove_nullable(res_data_type).get(), [&](const auto& type_result) {
659
                                auto max_and_multiplier = Impl::get_max_and_multiplier(
660
                                        type_left, type_right, type_result);
661
                                res = Impl::vector_vector(column_left->get_ptr(),
662
                                                          column_right->get_ptr(), type_left,
663
                                                          type_right, max_and_multiplier.first,
664
                                                          max_and_multiplier.second, type_result,
665
                                                          check_overflow_for_decimal);
666
                                return true;
667
                            })) {
668
                    throw Exception(ErrorCode::INTERNAL_ERROR,
669
                                    "Wrong type. Expected: Decimal, Actually: {}",
670
                                    type_to_string(res_data_type->get_primitive_type()));
671
                }
672
            }
673
102
        } else {
674
102
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
102
        }
676
102
        return res;
677
102
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE6EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_6EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
5.06k
                            bool check_overflow_for_decimal) const {
637
5.06k
        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.06k
        } else {
674
5.06k
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
5.06k
        }
676
5.06k
        return res;
677
5.06k
    }
_ZNK5doris17FunctionPlusMinusINS_21PlusMinusIntegralImplINS_8PlusImplILNS_13PrimitiveTypeE7EEEEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS8_EESB_PKNS_14DataTypeNumberILS3_7EEESF_St10shared_ptrIKNS_9IDataTypeEEb
Line
Count
Source
636
200
                            bool check_overflow_for_decimal) const {
637
200
        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
200
        } else {
674
200
            res = Impl::vector_vector(column_left->get_ptr(), column_right->get_ptr());
675
200
        }
676
200
        return res;
677
200
    }
_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