Coverage Report

Created: 2026-04-15 18:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/function_string_to_string.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/FunctionStringToString.h
19
// and modified by Doris
20
21
#pragma once
22
23
#include "core/column/column_string.h"
24
#include "core/column/column_vector.h"
25
#include "core/data_type/data_type_number.h"
26
#include "core/data_type/data_type_string.h"
27
#include "exprs/function/function.h"
28
#include "exprs/function/function_helpers.h"
29
30
namespace doris {
31
32
template <typename Impl, typename Name>
33
class FunctionStringToString : public IFunction {
34
public:
35
    static constexpr auto name = Name::name;
36
    static constexpr bool has_variadic_argument =
37
            !std::is_void_v<decltype(has_variadic_argument_types(std::declval<Impl>()))>;
38
39
264
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE6createEv
Line
Count
Source
39
30
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E6createEv
Line
Count
Source
39
66
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E6createEv
Line
Count
Source
39
116
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE6createEv
Line
Count
Source
39
22
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE6createEv
Line
Count
Source
39
6
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE6createEv
Line
Count
Source
39
4
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE6createEv
Line
Count
Source
39
4
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE6createEv
Line
Count
Source
39
4
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
40
41
20
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
2
    String get_name() const override { return name; }
42
43
224
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE23get_number_of_argumentsEv
Line
Count
Source
43
26
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E23get_number_of_argumentsEv
Line
Count
Source
43
62
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E23get_number_of_argumentsEv
Line
Count
Source
43
112
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE23get_number_of_argumentsEv
Line
Count
Source
43
18
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE23get_number_of_argumentsEv
Line
Count
Source
43
2
    size_t get_number_of_arguments() const override { return 1; }
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE23get_number_of_argumentsEv
44
45
224
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
224
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
224
        return arguments[0];
53
224
    }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
45
26
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
26
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
26
        return arguments[0];
53
26
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
62
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
62
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
62
        return arguments[0];
53
62
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
112
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
112
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
112
        return arguments[0];
53
112
    }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
45
18
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
18
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
18
        return arguments[0];
53
18
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
2
        return arguments[0];
53
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
2
        return arguments[0];
53
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
45
2
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
2
        if (!is_string_type(arguments[0]->get_primitive_type())) {
47
0
            throw doris::Exception(ErrorCode::INVALID_ARGUMENT,
48
0
                                   "Illegal type {} of argument of function {}",
49
0
                                   arguments[0]->get_name(), get_name());
50
0
        }
51
52
2
        return arguments[0];
53
2
    }
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
54
55
20
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
20
        return {};
60
20
    }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
2
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
2
        return {};
60
2
    }
61
62
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
63
210
                        uint32_t result, size_t input_rows_count) const override {
64
210
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
210
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
210
            auto col_res = ColumnString::create();
67
210
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
210
                                         col_res->get_offsets()));
69
210
            block.replace_by_position(result, std::move(col_res));
70
210
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
210
        return Status::OK();
76
210
    }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
24
                        uint32_t result, size_t input_rows_count) const override {
64
24
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
24
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
24
            auto col_res = ColumnString::create();
67
24
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
24
                                         col_res->get_offsets()));
69
24
            block.replace_by_position(result, std::move(col_res));
70
24
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
24
        return Status::OK();
76
24
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
56
                        uint32_t result, size_t input_rows_count) const override {
64
56
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
56
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
56
            auto col_res = ColumnString::create();
67
56
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
56
                                         col_res->get_offsets()));
69
56
            block.replace_by_position(result, std::move(col_res));
70
56
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
56
        return Status::OK();
76
56
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
108
                        uint32_t result, size_t input_rows_count) const override {
64
108
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
108
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
108
            auto col_res = ColumnString::create();
67
108
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
108
                                         col_res->get_offsets()));
69
108
            block.replace_by_position(result, std::move(col_res));
70
108
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
108
        return Status::OK();
76
108
    }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
16
                        uint32_t result, size_t input_rows_count) const override {
64
16
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
16
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
16
            auto col_res = ColumnString::create();
67
16
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
16
                                         col_res->get_offsets()));
69
16
            block.replace_by_position(result, std::move(col_res));
70
16
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
16
        return Status::OK();
76
16
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
2
                        uint32_t result, size_t input_rows_count) const override {
64
2
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
2
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
2
            auto col_res = ColumnString::create();
67
2
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
2
                                         col_res->get_offsets()));
69
2
            block.replace_by_position(result, std::move(col_res));
70
2
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
2
        return Status::OK();
76
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
2
                        uint32_t result, size_t input_rows_count) const override {
64
2
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
2
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
2
            auto col_res = ColumnString::create();
67
2
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
2
                                         col_res->get_offsets()));
69
2
            block.replace_by_position(result, std::move(col_res));
70
2
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
2
        return Status::OK();
76
2
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
2
                        uint32_t result, size_t input_rows_count) const override {
64
2
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
2
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
2
            auto col_res = ColumnString::create();
67
2
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
2
                                         col_res->get_offsets()));
69
2
            block.replace_by_position(result, std::move(col_res));
70
2
        } else {
71
0
            return Status::RuntimeError("Illegal column {} of argument of function {}",
72
0
                                        block.get_by_position(arguments[0]).column->get_name(),
73
0
                                        get_name());
74
0
        }
75
2
        return Status::OK();
76
2
    }
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
77
};
78
79
} // namespace doris