Coverage Report

Created: 2026-07-07 22:17

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/cast/function_cast_float.cpp
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
18
#include "core/data_type/data_type_number.h"
19
#include "exprs/function/cast/cast_to_float.h"
20
21
namespace doris::CastWrapper {
22
23
template <typename ToDataType>
24
32.8k
WrapperType create_float_wrapper(FunctionContext* context, const DataTypePtr& from_type) {
25
32.8k
    std::shared_ptr<CastToBase> cast_impl;
26
27
32.8k
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
32.8k
        using Types = std::decay_t<decltype(types)>;
29
32.8k
        using FromDataType = typename Types::LeftType;
30
32.8k
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
32.8k
            if (context->enable_strict_mode()) {
32
32.4k
                cast_impl = std::make_shared<
33
32.4k
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
32.4k
            } else {
35
404
                cast_impl = std::make_shared<
36
404
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
404
            }
38
32.8k
            return true;
39
32.8k
        } else {
40
0
            return false;
41
0
        }
42
32.8k
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_2EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_3EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_4EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_5EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_6EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_7EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairIS4_vEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_9EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSS_
Line
Count
Source
27
28
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
28
        using Types = std::decay_t<decltype(types)>;
29
28
        using FromDataType = typename Types::LeftType;
30
28
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
28
            if (context->enable_strict_mode()) {
32
14
                cast_impl = std::make_shared<
33
14
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
14
            } else {
35
14
                cast_impl = std::make_shared<
36
14
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
14
            }
38
28
            return true;
39
        } else {
40
            return false;
41
        }
42
28
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSS_
Line
Count
Source
27
36
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
36
        using Types = std::decay_t<decltype(types)>;
29
36
        using FromDataType = typename Types::LeftType;
30
36
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
36
            if (context->enable_strict_mode()) {
32
18
                cast_impl = std::make_shared<
33
18
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
18
            } else {
35
18
                cast_impl = std::make_shared<
36
18
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
18
            }
38
36
            return true;
39
        } else {
40
            return false;
41
        }
42
36
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSS_
Line
Count
Source
27
32
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
32
        using Types = std::decay_t<decltype(types)>;
29
32
        using FromDataType = typename Types::LeftType;
30
32
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
32
            if (context->enable_strict_mode()) {
32
16
                cast_impl = std::make_shared<
33
16
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
16
            } else {
35
16
                cast_impl = std::make_shared<
36
16
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
16
            }
38
32
            return true;
39
        } else {
40
            return false;
41
        }
42
32
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSS_
Line
Count
Source
27
36
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
36
        using Types = std::decay_t<decltype(types)>;
29
36
        using FromDataType = typename Types::LeftType;
30
36
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
36
            if (context->enable_strict_mode()) {
32
18
                cast_impl = std::make_shared<
33
18
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
18
            } else {
35
18
                cast_impl = std::make_shared<
36
18
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
18
            }
38
36
            return true;
39
        } else {
40
            return false;
41
        }
42
36
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSS_
Line
Count
Source
27
72
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
72
        using Types = std::decay_t<decltype(types)>;
29
72
        using FromDataType = typename Types::LeftType;
30
72
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
72
            if (context->enable_strict_mode()) {
32
36
                cast_impl = std::make_shared<
33
36
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
36
            } else {
35
36
                cast_impl = std::make_shared<
36
36
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
36
            }
38
72
            return true;
39
        } else {
40
            return false;
41
        }
42
72
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSS_
Line
Count
Source
27
74
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
74
        using Types = std::decay_t<decltype(types)>;
29
74
        using FromDataType = typename Types::LeftType;
30
74
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
74
            if (context->enable_strict_mode()) {
32
72
                cast_impl = std::make_shared<
33
72
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
72
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
74
            return true;
39
        } else {
40
            return false;
41
        }
42
74
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSS_
Line
Count
Source
27
15.5k
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
15.5k
        using Types = std::decay_t<decltype(types)>;
29
15.5k
        using FromDataType = typename Types::LeftType;
30
15.5k
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
15.5k
            if (context->enable_strict_mode()) {
32
15.5k
                cast_impl = std::make_shared<
33
15.5k
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
15.5k
            } else {
35
8
                cast_impl = std::make_shared<
36
8
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
8
            }
38
15.5k
            return true;
39
        } else {
40
            return false;
41
        }
42
15.5k
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSS_
Line
Count
Source
27
324
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
324
        using Types = std::decay_t<decltype(types)>;
29
324
        using FromDataType = typename Types::LeftType;
30
324
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
324
            if (context->enable_strict_mode()) {
32
320
                cast_impl = std::make_shared<
33
320
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
320
            } else {
35
4
                cast_impl = std::make_shared<
36
4
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
4
            }
38
324
            return true;
39
        } else {
40
            return false;
41
        }
42
324
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSS_
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSS_
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSS_
Line
Count
Source
27
160
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
160
        using Types = std::decay_t<decltype(types)>;
29
160
        using FromDataType = typename Types::LeftType;
30
160
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
160
            if (context->enable_strict_mode()) {
32
152
                cast_impl = std::make_shared<
33
152
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
152
            } else {
35
8
                cast_impl = std::make_shared<
36
8
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
8
            }
38
160
            return true;
39
        } else {
40
            return false;
41
        }
42
160
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_2EEEvEEEEbSS_
Line
Count
Source
27
150
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
150
        using Types = std::decay_t<decltype(types)>;
29
150
        using FromDataType = typename Types::LeftType;
30
150
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
150
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
148
            } else {
35
148
                cast_impl = std::make_shared<
36
148
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
148
            }
38
150
            return true;
39
        } else {
40
            return false;
41
        }
42
150
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_3EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_4EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_5EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_6EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_7EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS2_ILS3_8EEEvEEEEbSS_
Line
Count
Source
27
4
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
4
        using Types = std::decay_t<decltype(types)>;
29
4
        using FromDataType = typename Types::LeftType;
30
4
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
4
            if (context->enable_strict_mode()) {
32
2
                cast_impl = std::make_shared<
33
2
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
2
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
4
            return true;
39
        } else {
40
            return false;
41
        }
42
4
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairIS4_vEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_28EEEvEEEEbSS_
Line
Count
Source
27
28
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
28
        using Types = std::decay_t<decltype(types)>;
29
28
        using FromDataType = typename Types::LeftType;
30
28
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
28
            if (context->enable_strict_mode()) {
32
14
                cast_impl = std::make_shared<
33
14
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
14
            } else {
35
14
                cast_impl = std::make_shared<
36
14
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
14
            }
38
28
            return true;
39
        } else {
40
            return false;
41
        }
42
28
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_29EEEvEEEEbSS_
Line
Count
Source
27
36
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
36
        using Types = std::decay_t<decltype(types)>;
29
36
        using FromDataType = typename Types::LeftType;
30
36
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
36
            if (context->enable_strict_mode()) {
32
18
                cast_impl = std::make_shared<
33
18
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
18
            } else {
35
18
                cast_impl = std::make_shared<
36
18
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
18
            }
38
36
            return true;
39
        } else {
40
            return false;
41
        }
42
36
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_20EEEvEEEEbSS_
Line
Count
Source
27
32
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
32
        using Types = std::decay_t<decltype(types)>;
29
32
        using FromDataType = typename Types::LeftType;
30
32
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
32
            if (context->enable_strict_mode()) {
32
16
                cast_impl = std::make_shared<
33
16
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
16
            } else {
35
16
                cast_impl = std::make_shared<
36
16
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
16
            }
38
32
            return true;
39
        } else {
40
            return false;
41
        }
42
32
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_30EEEvEEEEbSS_
Line
Count
Source
27
36
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
36
        using Types = std::decay_t<decltype(types)>;
29
36
        using FromDataType = typename Types::LeftType;
30
36
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
36
            if (context->enable_strict_mode()) {
32
18
                cast_impl = std::make_shared<
33
18
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
18
            } else {
35
18
                cast_impl = std::make_shared<
36
18
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
18
            }
38
36
            return true;
39
        } else {
40
            return false;
41
        }
42
36
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_15DataTypeDecimalILS3_35EEEvEEEEbSS_
Line
Count
Source
27
36
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
36
        using Types = std::decay_t<decltype(types)>;
29
36
        using FromDataType = typename Types::LeftType;
30
36
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
36
            if (context->enable_strict_mode()) {
32
18
                cast_impl = std::make_shared<
33
18
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
18
            } else {
35
18
                cast_impl = std::make_shared<
36
18
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
18
            }
38
36
            return true;
39
        } else {
40
            return false;
41
        }
42
36
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeDateEvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeDateV2EvEEEEbSS_
Line
Count
Source
27
74
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
74
        using Types = std::decay_t<decltype(types)>;
29
74
        using FromDataType = typename Types::LeftType;
30
74
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
74
            if (context->enable_strict_mode()) {
32
72
                cast_impl = std::make_shared<
33
72
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
72
            } else {
35
2
                cast_impl = std::make_shared<
36
2
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
2
            }
38
74
            return true;
39
        } else {
40
            return false;
41
        }
42
74
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_18DataTypeDateTimeV2EvEEEEbSS_
Line
Count
Source
27
15.5k
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
15.5k
        using Types = std::decay_t<decltype(types)>;
29
15.5k
        using FromDataType = typename Types::LeftType;
30
15.5k
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
15.5k
            if (context->enable_strict_mode()) {
32
15.5k
                cast_impl = std::make_shared<
33
15.5k
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
15.5k
            } else {
35
8
                cast_impl = std::make_shared<
36
8
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
8
            }
38
15.5k
            return true;
39
        } else {
40
            return false;
41
        }
42
15.5k
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_16DataTypeDateTimeEvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeTimeV2EvEEEEbSS_
Line
Count
Source
27
324
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
324
        using Types = std::decay_t<decltype(types)>;
29
324
        using FromDataType = typename Types::LeftType;
30
324
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
324
            if (context->enable_strict_mode()) {
32
320
                cast_impl = std::make_shared<
33
320
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
320
            } else {
35
4
                cast_impl = std::make_shared<
36
4
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
4
            }
38
324
            return true;
39
        } else {
40
            return false;
41
        }
42
324
    };
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_19DataTypeTimeStampTzEvEEEEbSS_
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv4EvEEEEbSS_
Unexecuted instantiation: _ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_12DataTypeIPv6EvEEEEbSS_
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlRKT_E_clINS_8TypePairINS_14DataTypeStringEvEEEEbSS_
Line
Count
Source
27
160
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
160
        using Types = std::decay_t<decltype(types)>;
29
160
        using FromDataType = typename Types::LeftType;
30
160
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
160
            if (context->enable_strict_mode()) {
32
152
                cast_impl = std::make_shared<
33
152
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
152
            } else {
35
8
                cast_impl = std::make_shared<
36
8
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
8
            }
38
160
            return true;
39
        } else {
40
            return false;
41
        }
42
160
    };
43
44
32.8k
    if (!call_on_index_and_data_type<void>(from_type->get_primitive_type(), make_cast_wrapper)) {
45
0
        return create_unsupport_wrapper(
46
0
                fmt::format("CAST AS number not supported {}", from_type->get_name()));
47
0
    }
48
49
32.8k
    return [cast_impl](FunctionContext* context, Block& block, const ColumnNumbers& arguments,
50
32.8k
                       uint32_t result, size_t input_rows_count,
51
32.8k
                       const NullMap::value_type* null_map = nullptr) {
52
32.8k
        return cast_impl->execute_impl(context, block, arguments, result, input_rows_count,
53
32.8k
                                       null_map);
54
32.8k
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlS8_SA_SF_jmSH_E_clES8_SA_SF_jmSH_
Line
Count
Source
51
16.3k
                       const NullMap::value_type* null_map = nullptr) {
52
16.3k
        return cast_impl->execute_impl(context, block, arguments, result, input_rows_count,
53
16.3k
                                       null_map);
54
16.3k
    };
_ZZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEEENKUlS8_SA_SF_jmSH_E_clES8_SA_SF_jmSH_
Line
Count
Source
51
16.4k
                       const NullMap::value_type* null_map = nullptr) {
52
16.4k
        return cast_impl->execute_impl(context, block, arguments, result, input_rows_count,
53
16.4k
                                       null_map);
54
16.4k
    };
55
32.8k
}
_ZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE8EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEE
Line
Count
Source
24
16.3k
WrapperType create_float_wrapper(FunctionContext* context, const DataTypePtr& from_type) {
25
16.3k
    std::shared_ptr<CastToBase> cast_impl;
26
27
16.3k
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
16.3k
        using Types = std::decay_t<decltype(types)>;
29
16.3k
        using FromDataType = typename Types::LeftType;
30
16.3k
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
16.3k
            if (context->enable_strict_mode()) {
32
16.3k
                cast_impl = std::make_shared<
33
16.3k
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
16.3k
            } else {
35
16.3k
                cast_impl = std::make_shared<
36
16.3k
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
16.3k
            }
38
16.3k
            return true;
39
16.3k
        } else {
40
16.3k
            return false;
41
16.3k
        }
42
16.3k
    };
43
44
16.3k
    if (!call_on_index_and_data_type<void>(from_type->get_primitive_type(), make_cast_wrapper)) {
45
0
        return create_unsupport_wrapper(
46
0
                fmt::format("CAST AS number not supported {}", from_type->get_name()));
47
0
    }
48
49
16.3k
    return [cast_impl](FunctionContext* context, Block& block, const ColumnNumbers& arguments,
50
16.3k
                       uint32_t result, size_t input_rows_count,
51
16.3k
                       const NullMap::value_type* null_map = nullptr) {
52
16.3k
        return cast_impl->execute_impl(context, block, arguments, result, input_rows_count,
53
16.3k
                                       null_map);
54
16.3k
    };
55
16.3k
}
_ZN5doris11CastWrapper20create_float_wrapperINS_14DataTypeNumberILNS_13PrimitiveTypeE9EEEEESt8functionIFNS_6StatusEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmPKhEES8_RKSt10shared_ptrIKNS_9IDataTypeEE
Line
Count
Source
24
16.4k
WrapperType create_float_wrapper(FunctionContext* context, const DataTypePtr& from_type) {
25
16.4k
    std::shared_ptr<CastToBase> cast_impl;
26
27
16.4k
    auto make_cast_wrapper = [&](const auto& types) -> bool {
28
16.4k
        using Types = std::decay_t<decltype(types)>;
29
16.4k
        using FromDataType = typename Types::LeftType;
30
16.4k
        if constexpr (type_allow_cast_to_basic_number<FromDataType>) {
31
16.4k
            if (context->enable_strict_mode()) {
32
16.4k
                cast_impl = std::make_shared<
33
16.4k
                        CastToImpl<CastModeType::StrictMode, FromDataType, ToDataType>>();
34
16.4k
            } else {
35
16.4k
                cast_impl = std::make_shared<
36
16.4k
                        CastToImpl<CastModeType::NonStrictMode, FromDataType, ToDataType>>();
37
16.4k
            }
38
16.4k
            return true;
39
16.4k
        } else {
40
16.4k
            return false;
41
16.4k
        }
42
16.4k
    };
43
44
16.4k
    if (!call_on_index_and_data_type<void>(from_type->get_primitive_type(), make_cast_wrapper)) {
45
0
        return create_unsupport_wrapper(
46
0
                fmt::format("CAST AS number not supported {}", from_type->get_name()));
47
0
    }
48
49
16.4k
    return [cast_impl](FunctionContext* context, Block& block, const ColumnNumbers& arguments,
50
16.4k
                       uint32_t result, size_t input_rows_count,
51
16.4k
                       const NullMap::value_type* null_map = nullptr) {
52
16.4k
        return cast_impl->execute_impl(context, block, arguments, result, input_rows_count,
53
16.4k
                                       null_map);
54
16.4k
    };
55
16.4k
}
56
57
WrapperType create_float_wrapper(FunctionContext* context, const DataTypePtr& from_type,
58
32.8k
                                 PrimitiveType to_type) {
59
32.8k
    switch (to_type) {
60
16.3k
    case TYPE_FLOAT:
61
16.3k
        return create_float_wrapper<DataTypeFloat32>(context, from_type);
62
16.4k
    case TYPE_DOUBLE:
63
16.4k
        return create_float_wrapper<DataTypeFloat64>(context, from_type);
64
0
    default:
65
0
        return create_unsupport_wrapper(
66
0
                fmt::format("CAST AS float: unsupported to_type {}", type_to_string(to_type)));
67
32.8k
    }
68
32.8k
}
69
70
} // namespace doris::CastWrapper