Coverage Report

Created: 2026-08-26 13:03

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
151
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE6createEv
Line
Count
Source
39
3
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE6createEv
Line
Count
Source
39
2
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE6createEv
Line
Count
Source
39
2
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE6createEv
Line
Count
Source
39
2
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE6createEv
Line
Count
Source
39
15
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E6createEv
Line
Count
Source
39
41
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E6createEv
Line
Count
Source
39
64
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
_ZN5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE6createEv
Line
Count
Source
39
16
    static FunctionPtr create() { return std::make_shared<FunctionStringToString>(); }
40
41
10
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE8get_nameB5cxx11Ev
Line
Count
Source
41
1
    String get_name() const override { return name; }
42
43
131
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE23get_number_of_argumentsEv
Line
Count
Source
43
1
    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
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE23get_number_of_argumentsEv
Line
Count
Source
43
13
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E23get_number_of_argumentsEv
Line
Count
Source
43
39
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E23get_number_of_argumentsEv
Line
Count
Source
43
62
    size_t get_number_of_arguments() const override { return 1; }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE23get_number_of_argumentsEv
Line
Count
Source
43
14
    size_t get_number_of_arguments() const override { return 1; }
44
45
131
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
131
        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
131
        return arguments[0];
53
131
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        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
1
        return arguments[0];
53
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        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
1
        return arguments[0];
53
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISA_EE
Line
Count
Source
45
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
1
        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
1
        return arguments[0];
53
1
    }
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
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
45
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
13
        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
13
        return arguments[0];
53
13
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
45
39
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
39
        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
39
        return arguments[0];
53
39
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_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_11InitcapImplENS_13NameToInitcapEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
45
14
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
46
14
        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
14
        return arguments[0];
53
14
    }
54
55
10
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
10
        return {};
60
10
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_21ExtractTopLevelDomainEEENS_18NameTopLevelDomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_32ExtractFirstSignificantSubdomainEEENS_29NameFirstSignificantSubdomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_30CutToFirstSignificantSubdomainEEENS_34NameCutToFirstSignificantSubdomainEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE32get_variadic_argument_types_implEv
Line
Count
Source
55
1
    DataTypes get_variadic_argument_types_impl() const override {
56
        if constexpr (has_variadic_argument) {
57
            return Impl::get_variadic_argument_types();
58
        }
59
1
        return {};
60
1
    }
61
62
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
63
124
                        uint32_t result, size_t input_rows_count) const override {
64
124
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
124
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
124
            auto col_res = ColumnString::create();
67
124
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
124
                                         col_res->get_offsets()));
69
124
            block.replace_by_position(result, std::move(col_res));
70
124
        } 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
124
        return Status::OK();
76
124
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb0EEEEENS_10NameDomainEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
1
                        uint32_t result, size_t input_rows_count) const override {
64
1
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
1
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
1
            auto col_res = ColumnString::create();
67
1
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
1
                                         col_res->get_offsets()));
69
1
            block.replace_by_position(result, std::move(col_res));
70
1
        } 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
1
        return Status::OK();
76
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_13ExtractDomainILb1EEEEENS_20NameDomainWithoutWWWEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
1
                        uint32_t result, size_t input_rows_count) const override {
64
1
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
1
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
1
            auto col_res = ColumnString::create();
67
1
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
1
                                         col_res->get_offsets()));
69
1
            block.replace_by_position(result, std::move(col_res));
70
1
        } 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
1
        return Status::OK();
76
1
    }
_ZNK5doris22FunctionStringToStringINS_20ExtractSubstringImplINS_15ExtractProtocolEEENS_12NameProtocolEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
1
                        uint32_t result, size_t input_rows_count) const override {
64
1
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
1
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
1
            auto col_res = ColumnString::create();
67
1
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
1
                                         col_res->get_offsets()));
69
1
            block.replace_by_position(result, std::move(col_res));
70
1
        } 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
1
        return Status::OK();
76
1
    }
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
_ZNK5doris22FunctionStringToStringINS_13NameQuoteImplENS_9NameQuoteEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
12
                        uint32_t result, size_t input_rows_count) const override {
64
12
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
12
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
12
            auto col_res = ColumnString::create();
67
12
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
12
                                         col_res->get_offsets()));
69
12
            block.replace_by_position(result, std::move(col_res));
70
12
        } 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
12
        return Status::OK();
76
12
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToLowerEEES2_E12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
36
                        uint32_t result, size_t input_rows_count) const override {
64
36
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
36
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
36
            auto col_res = ColumnString::create();
67
36
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
36
                                         col_res->get_offsets()));
69
36
            block.replace_by_position(result, std::move(col_res));
70
36
        } 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
36
        return Status::OK();
76
36
    }
_ZNK5doris22FunctionStringToStringINS_12TransferImplINS_11NameToUpperEEES2_E12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
60
                        uint32_t result, size_t input_rows_count) const override {
64
60
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
60
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
60
            auto col_res = ColumnString::create();
67
60
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
60
                                         col_res->get_offsets()));
69
60
            block.replace_by_position(result, std::move(col_res));
70
60
        } 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
60
        return Status::OK();
76
60
    }
_ZNK5doris22FunctionStringToStringINS_11InitcapImplENS_13NameToInitcapEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
63
13
                        uint32_t result, size_t input_rows_count) const override {
64
13
        const ColumnPtr column = block.get_by_position(arguments[0]).column;
65
13
        if (const auto* col = check_and_get_column<ColumnString>(column.get())) {
66
13
            auto col_res = ColumnString::create();
67
13
            RETURN_IF_ERROR(Impl::vector(col->get_chars(), col->get_offsets(), col_res->get_chars(),
68
13
                                         col_res->get_offsets()));
69
13
            block.replace_by_position(result, std::move(col_res));
70
13
        } 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
13
        return Status::OK();
76
13
    }
77
};
78
79
} // namespace doris