Coverage Report

Created: 2026-04-01 13:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/function_bit.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
// This file is copied from
18
// https://github.com/ClickHouse/ClickHouse/blob/master/src/Functions/bitAnd.cpp
19
// and modified by Doris
20
21
#include <utility>
22
23
#include "common/status.h"
24
#include "core/column/column.h"
25
#include "core/column/column_string.h"
26
#include "core/column/column_vector.h"
27
#include "core/data_type/data_type_number.h"
28
#include "core/data_type/define_primitive_type.h"
29
#include "core/data_type/number_traits.h"
30
#include "core/pod_array_fwd.h"
31
#include "core/types.h"
32
#include "exprs/function/function_totype.h"
33
#include "exprs/function/function_unary_arithmetic.h"
34
#include "exprs/function/simple_function_factory.h"
35
36
namespace doris {
37
38
template <typename Impl>
39
class FunctionBit : public IFunction {
40
public:
41
    static constexpr auto name = Impl::name;
42
43
15
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE8get_nameB5cxx11Ev
Line
Count
Source
43
1
    String get_name() const override { return name; }
44
45
3.05k
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
30
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
33
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
45
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
820
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
94
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
34
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
32
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
43
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
818
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
85
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
35
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
34
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
44
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
822
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
85
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
46
47
120
    DataTypes get_variadic_argument_types_impl() const override {
48
120
        return {std::make_shared<typename Impl::DataType>(),
49
120
                std::make_shared<typename Impl::DataType>()};
50
120
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
8
    DataTypes get_variadic_argument_types_impl() const override {
48
8
        return {std::make_shared<typename Impl::DataType>(),
49
8
                std::make_shared<typename Impl::DataType>()};
50
8
    }
51
2.91k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
2.91k
        return std::make_shared<typename Impl::DataType>();
53
2.91k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
21
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
21
        return std::make_shared<typename Impl::DataType>();
53
21
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
24
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
24
        return std::make_shared<typename Impl::DataType>();
53
24
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
36
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
36
        return std::make_shared<typename Impl::DataType>();
53
36
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
810
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
810
        return std::make_shared<typename Impl::DataType>();
53
810
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
85
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
85
        return std::make_shared<typename Impl::DataType>();
53
85
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
25
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
25
        return std::make_shared<typename Impl::DataType>();
53
25
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
23
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
23
        return std::make_shared<typename Impl::DataType>();
53
23
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
34
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
34
        return std::make_shared<typename Impl::DataType>();
53
34
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
809
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
809
        return std::make_shared<typename Impl::DataType>();
53
809
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
76
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
76
        return std::make_shared<typename Impl::DataType>();
53
76
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
26
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
26
        return std::make_shared<typename Impl::DataType>();
53
26
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
25
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
25
        return std::make_shared<typename Impl::DataType>();
53
25
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
35
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
35
        return std::make_shared<typename Impl::DataType>();
53
35
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
813
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
813
        return std::make_shared<typename Impl::DataType>();
53
813
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
76
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
76
        return std::make_shared<typename Impl::DataType>();
53
76
    }
54
55
2.91k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Line
Count
Source
55
21
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
24
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
36
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
810
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Line
Count
Source
55
85
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Line
Count
Source
55
25
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
23
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
34
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
809
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Line
Count
Source
55
76
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Line
Count
Source
55
26
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
25
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
35
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
813
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Line
Count
Source
55
76
    size_t get_number_of_arguments() const override { return 2; }
56
57
33.7k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
192
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
244
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
383
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.59k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
860
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
220
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
241
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
345
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.57k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
835
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
214
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
245
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
351
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.57k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
835
    bool use_default_implementation_for_constants() const final { return false; }
58
59
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
60
11.4k
                        uint32_t result, size_t input_rows_count) const override {
61
11.4k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
11.4k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
11.4k
        bool is_const_left = is_column_const(*column_left);
64
11.4k
        bool is_const_right = is_column_const(*column_right);
65
66
11.4k
        ColumnPtr column_result = nullptr;
67
11.4k
        if (is_const_left && is_const_right) {
68
44
            column_result = constant_constant(column_left, column_right);
69
11.3k
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
11.3k
        } else if (is_const_right) {
72
2
            column_result = vector_constant(column_left, column_right);
73
11.3k
        } else {
74
11.3k
            column_result = vector_vector(column_left, column_right);
75
11.3k
        }
76
11.4k
        block.replace_by_position(result, std::move(column_result));
77
78
11.4k
        return Status::OK();
79
11.4k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
69
                        uint32_t result, size_t input_rows_count) const override {
61
69
        auto& column_left = block.get_by_position(arguments[0]).column;
62
69
        auto& column_right = block.get_by_position(arguments[1]).column;
63
69
        bool is_const_left = is_column_const(*column_left);
64
69
        bool is_const_right = is_column_const(*column_right);
65
66
69
        ColumnPtr column_result = nullptr;
67
69
        if (is_const_left && is_const_right) {
68
4
            column_result = constant_constant(column_left, column_right);
69
65
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
65
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
65
        } else {
74
65
            column_result = vector_vector(column_left, column_right);
75
65
        }
76
69
        block.replace_by_position(result, std::move(column_result));
77
78
69
        return Status::OK();
79
69
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
87
                        uint32_t result, size_t input_rows_count) const override {
61
87
        auto& column_left = block.get_by_position(arguments[0]).column;
62
87
        auto& column_right = block.get_by_position(arguments[1]).column;
63
87
        bool is_const_left = is_column_const(*column_left);
64
87
        bool is_const_right = is_column_const(*column_right);
65
66
87
        ColumnPtr column_result = nullptr;
67
87
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
86
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
86
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
86
        } else {
74
86
            column_result = vector_vector(column_left, column_right);
75
86
        }
76
87
        block.replace_by_position(result, std::move(column_result));
77
78
87
        return Status::OK();
79
87
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
129
                        uint32_t result, size_t input_rows_count) const override {
61
129
        auto& column_left = block.get_by_position(arguments[0]).column;
62
129
        auto& column_right = block.get_by_position(arguments[1]).column;
63
129
        bool is_const_left = is_column_const(*column_left);
64
129
        bool is_const_right = is_column_const(*column_right);
65
66
129
        ColumnPtr column_result = nullptr;
67
129
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
129
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
129
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
129
        } else {
74
129
            column_result = vector_vector(column_left, column_right);
75
129
        }
76
129
        block.replace_by_position(result, std::move(column_result));
77
78
129
        return Status::OK();
79
129
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
3.21k
                        uint32_t result, size_t input_rows_count) const override {
61
3.21k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3.21k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3.21k
        bool is_const_left = is_column_const(*column_left);
64
3.21k
        bool is_const_right = is_column_const(*column_right);
65
66
3.21k
        ColumnPtr column_result = nullptr;
67
3.21k
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
3.21k
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
3.21k
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
3.21k
        } else {
74
3.21k
            column_result = vector_vector(column_left, column_right);
75
3.21k
        }
76
3.21k
        block.replace_by_position(result, std::move(column_result));
77
78
3.21k
        return Status::OK();
79
3.21k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
311
                        uint32_t result, size_t input_rows_count) const override {
61
311
        auto& column_left = block.get_by_position(arguments[0]).column;
62
311
        auto& column_right = block.get_by_position(arguments[1]).column;
63
311
        bool is_const_left = is_column_const(*column_left);
64
311
        bool is_const_right = is_column_const(*column_right);
65
66
311
        ColumnPtr column_result = nullptr;
67
311
        if (is_const_left && is_const_right) {
68
9
            column_result = constant_constant(column_left, column_right);
69
302
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
302
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
302
        } else {
74
302
            column_result = vector_vector(column_left, column_right);
75
302
        }
76
311
        block.replace_by_position(result, std::move(column_result));
77
78
311
        return Status::OK();
79
311
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
79
                        uint32_t result, size_t input_rows_count) const override {
61
79
        auto& column_left = block.get_by_position(arguments[0]).column;
62
79
        auto& column_right = block.get_by_position(arguments[1]).column;
63
79
        bool is_const_left = is_column_const(*column_left);
64
79
        bool is_const_right = is_column_const(*column_right);
65
66
79
        ColumnPtr column_result = nullptr;
67
79
        if (is_const_left && is_const_right) {
68
14
            column_result = constant_constant(column_left, column_right);
69
65
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
65
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
65
        } else {
74
65
            column_result = vector_vector(column_left, column_right);
75
65
        }
76
79
        block.replace_by_position(result, std::move(column_result));
77
78
79
        return Status::OK();
79
79
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
86
                        uint32_t result, size_t input_rows_count) const override {
61
86
        auto& column_left = block.get_by_position(arguments[0]).column;
62
86
        auto& column_right = block.get_by_position(arguments[1]).column;
63
86
        bool is_const_left = is_column_const(*column_left);
64
86
        bool is_const_right = is_column_const(*column_right);
65
66
86
        ColumnPtr column_result = nullptr;
67
86
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
86
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
86
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
86
        } else {
74
86
            column_result = vector_vector(column_left, column_right);
75
86
        }
76
86
        block.replace_by_position(result, std::move(column_result));
77
78
86
        return Status::OK();
79
86
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
123
                        uint32_t result, size_t input_rows_count) const override {
61
123
        auto& column_left = block.get_by_position(arguments[0]).column;
62
123
        auto& column_right = block.get_by_position(arguments[1]).column;
63
123
        bool is_const_left = is_column_const(*column_left);
64
123
        bool is_const_right = is_column_const(*column_right);
65
66
123
        ColumnPtr column_result = nullptr;
67
123
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
123
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
123
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
123
        } else {
74
123
            column_result = vector_vector(column_left, column_right);
75
123
        }
76
123
        block.replace_by_position(result, std::move(column_result));
77
78
123
        return Status::OK();
79
123
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
3.20k
                        uint32_t result, size_t input_rows_count) const override {
61
3.20k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3.20k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3.20k
        bool is_const_left = is_column_const(*column_left);
64
3.20k
        bool is_const_right = is_column_const(*column_right);
65
66
3.20k
        ColumnPtr column_result = nullptr;
67
3.20k
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
3.20k
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
3.20k
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
3.20k
        } else {
74
3.20k
            column_result = vector_vector(column_left, column_right);
75
3.20k
        }
76
3.20k
        block.replace_by_position(result, std::move(column_result));
77
78
3.20k
        return Status::OK();
79
3.20k
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
303
                        uint32_t result, size_t input_rows_count) const override {
61
303
        auto& column_left = block.get_by_position(arguments[0]).column;
62
303
        auto& column_right = block.get_by_position(arguments[1]).column;
63
303
        bool is_const_left = is_column_const(*column_left);
64
303
        bool is_const_right = is_column_const(*column_right);
65
66
303
        ColumnPtr column_result = nullptr;
67
303
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
303
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
303
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
303
        } else {
74
303
            column_result = vector_vector(column_left, column_right);
75
303
        }
76
303
        block.replace_by_position(result, std::move(column_result));
77
78
303
        return Status::OK();
79
303
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
75
                        uint32_t result, size_t input_rows_count) const override {
61
75
        auto& column_left = block.get_by_position(arguments[0]).column;
62
75
        auto& column_right = block.get_by_position(arguments[1]).column;
63
75
        bool is_const_left = is_column_const(*column_left);
64
75
        bool is_const_right = is_column_const(*column_right);
65
66
75
        ColumnPtr column_result = nullptr;
67
75
        if (is_const_left && is_const_right) {
68
9
            column_result = constant_constant(column_left, column_right);
69
66
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
66
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
66
        } else {
74
66
            column_result = vector_vector(column_left, column_right);
75
66
        }
76
75
        block.replace_by_position(result, std::move(column_result));
77
78
75
        return Status::OK();
79
75
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
87
                        uint32_t result, size_t input_rows_count) const override {
61
87
        auto& column_left = block.get_by_position(arguments[0]).column;
62
87
        auto& column_right = block.get_by_position(arguments[1]).column;
63
87
        bool is_const_left = is_column_const(*column_left);
64
87
        bool is_const_right = is_column_const(*column_right);
65
66
87
        ColumnPtr column_result = nullptr;
67
87
        if (is_const_left && is_const_right) {
68
2
            column_result = constant_constant(column_left, column_right);
69
85
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
85
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
85
        } else {
74
85
            column_result = vector_vector(column_left, column_right);
75
85
        }
76
87
        block.replace_by_position(result, std::move(column_result));
77
78
87
        return Status::OK();
79
87
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
124
                        uint32_t result, size_t input_rows_count) const override {
61
124
        auto& column_left = block.get_by_position(arguments[0]).column;
62
124
        auto& column_right = block.get_by_position(arguments[1]).column;
63
124
        bool is_const_left = is_column_const(*column_left);
64
124
        bool is_const_right = is_column_const(*column_right);
65
66
124
        ColumnPtr column_result = nullptr;
67
124
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
123
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
123
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
123
        } else {
74
123
            column_result = vector_vector(column_left, column_right);
75
123
        }
76
124
        block.replace_by_position(result, std::move(column_result));
77
78
124
        return Status::OK();
79
124
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
3.20k
                        uint32_t result, size_t input_rows_count) const override {
61
3.20k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3.20k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3.20k
        bool is_const_left = is_column_const(*column_left);
64
3.20k
        bool is_const_right = is_column_const(*column_right);
65
66
3.20k
        ColumnPtr column_result = nullptr;
67
3.20k
        if (is_const_left && is_const_right) {
68
2
            column_result = constant_constant(column_left, column_right);
69
3.20k
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
3.20k
        } else if (is_const_right) {
72
2
            column_result = vector_constant(column_left, column_right);
73
3.20k
        } else {
74
3.20k
            column_result = vector_vector(column_left, column_right);
75
3.20k
        }
76
3.20k
        block.replace_by_position(result, std::move(column_result));
77
78
3.20k
        return Status::OK();
79
3.20k
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
301
                        uint32_t result, size_t input_rows_count) const override {
61
301
        auto& column_left = block.get_by_position(arguments[0]).column;
62
301
        auto& column_right = block.get_by_position(arguments[1]).column;
63
301
        bool is_const_left = is_column_const(*column_left);
64
301
        bool is_const_right = is_column_const(*column_right);
65
66
301
        ColumnPtr column_result = nullptr;
67
301
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
301
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
301
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
301
        } else {
74
301
            column_result = vector_vector(column_left, column_right);
75
301
        }
76
301
        block.replace_by_position(result, std::move(column_result));
77
78
301
        return Status::OK();
79
301
    }
80
81
private:
82
44
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
44
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
44
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
44
        ColumnPtr column_result = nullptr;
86
87
44
        auto res = Impl::ColumnType::create(1);
88
44
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
44
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
44
        column_result = std::move(res);
91
44
        return ColumnConst::create(std::move(column_result), column_left->size());
92
44
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
4
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
4
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
4
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
4
        ColumnPtr column_result = nullptr;
86
87
4
        auto res = Impl::ColumnType::create(1);
88
4
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
4
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
4
        column_result = std::move(res);
91
4
        return ColumnConst::create(std::move(column_result), column_left->size());
92
4
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
1
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
1
        ColumnPtr column_result = nullptr;
86
87
1
        auto res = Impl::ColumnType::create(1);
88
1
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
1
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
1
        column_result = std::move(res);
91
1
        return ColumnConst::create(std::move(column_result), column_left->size());
92
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
1
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
1
        ColumnPtr column_result = nullptr;
86
87
1
        auto res = Impl::ColumnType::create(1);
88
1
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
1
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
1
        column_result = std::move(res);
91
1
        return ColumnConst::create(std::move(column_result), column_left->size());
92
1
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
9
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
9
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
9
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
9
        ColumnPtr column_result = nullptr;
86
87
9
        auto res = Impl::ColumnType::create(1);
88
9
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
9
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
9
        column_result = std::move(res);
91
9
        return ColumnConst::create(std::move(column_result), column_left->size());
92
9
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
14
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
14
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
14
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
14
        ColumnPtr column_result = nullptr;
86
87
14
        auto res = Impl::ColumnType::create(1);
88
14
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
14
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
14
        column_result = std::move(res);
91
14
        return ColumnConst::create(std::move(column_result), column_left->size());
92
14
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
1
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
1
        ColumnPtr column_result = nullptr;
86
87
1
        auto res = Impl::ColumnType::create(1);
88
1
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
1
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
1
        column_result = std::move(res);
91
1
        return ColumnConst::create(std::move(column_result), column_left->size());
92
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
9
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
9
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
9
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
9
        ColumnPtr column_result = nullptr;
86
87
9
        auto res = Impl::ColumnType::create(1);
88
9
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
9
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
9
        column_result = std::move(res);
91
9
        return ColumnConst::create(std::move(column_result), column_left->size());
92
9
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
2
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
2
        ColumnPtr column_result = nullptr;
86
87
2
        auto res = Impl::ColumnType::create(1);
88
2
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
2
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
2
        column_result = std::move(res);
91
2
        return ColumnConst::create(std::move(column_result), column_left->size());
92
2
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
1
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
1
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
1
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
1
        ColumnPtr column_result = nullptr;
86
87
1
        auto res = Impl::ColumnType::create(1);
88
1
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
1
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
1
        column_result = std::move(res);
91
1
        return ColumnConst::create(std::move(column_result), column_left->size());
92
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
82
2
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
2
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
2
        ColumnPtr column_result = nullptr;
86
87
2
        auto res = Impl::ColumnType::create(1);
88
2
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
2
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
2
        column_result = std::move(res);
91
2
        return ColumnConst::create(std::move(column_result), column_left->size());
92
2
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
93
94
2
    ColumnPtr vector_constant(ColumnPtr column_left, ColumnPtr column_right) const {
95
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
96
2
        const auto* column_left_ptr =
97
2
                assert_cast<const typename Impl::ColumnType*>(column_left.get());
98
2
        auto column_result = Impl::ColumnType::create(column_left->size());
99
100
2
        auto& a = column_left_ptr->get_data();
101
2
        auto& c = column_result->get_data();
102
2
        size_t size = a.size();
103
12
        for (size_t i = 0; i < size; ++i) {
104
10
            c[i] = Impl::apply(a[i], column_right_ptr->template get_value<Impl::ArgPType>());
105
10
        }
106
2
        return column_result;
107
2
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
94
2
    ColumnPtr vector_constant(ColumnPtr column_left, ColumnPtr column_right) const {
95
2
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
96
2
        const auto* column_left_ptr =
97
2
                assert_cast<const typename Impl::ColumnType*>(column_left.get());
98
2
        auto column_result = Impl::ColumnType::create(column_left->size());
99
100
2
        auto& a = column_left_ptr->get_data();
101
2
        auto& c = column_result->get_data();
102
2
        size_t size = a.size();
103
12
        for (size_t i = 0; i < size; ++i) {
104
10
            c[i] = Impl::apply(a[i], column_right_ptr->template get_value<Impl::ArgPType>());
105
10
        }
106
2
        return column_result;
107
2
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
108
109
0
    ColumnPtr constant_vector(ColumnPtr column_left, ColumnPtr column_right) const {
110
0
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
111
112
0
        const auto* column_right_ptr =
113
0
                assert_cast<const typename Impl::ColumnType*>(column_right.get());
114
0
        auto column_result = Impl::ColumnType::create(column_right->size());
115
116
0
        auto& b = column_right_ptr->get_data();
117
0
        auto& c = column_result->get_data();
118
0
        size_t size = b.size();
119
0
        for (size_t i = 0; i < size; ++i) {
120
0
            c[i] = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(), b[i]);
121
0
        }
122
0
        return column_result;
123
0
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE15constant_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
124
125
11.3k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
11.3k
        const auto* column_left_ptr =
127
11.3k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
11.3k
        const auto* column_right_ptr =
129
11.3k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
11.3k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
11.3k
        auto& a = column_left_ptr->get_data();
134
11.3k
        auto& b = column_right_ptr->get_data();
135
11.3k
        auto& c = column_result->get_data();
136
11.3k
        size_t size = a.size();
137
80.7k
        for (size_t i = 0; i < size; ++i) {
138
69.4k
            c[i] = Impl::apply(a[i], b[i]);
139
69.4k
        }
140
11.3k
        return column_result;
141
11.3k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
66
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
66
        const auto* column_left_ptr =
127
66
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
66
        const auto* column_right_ptr =
129
66
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
66
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
66
        auto& a = column_left_ptr->get_data();
134
66
        auto& b = column_right_ptr->get_data();
135
66
        auto& c = column_result->get_data();
136
66
        size_t size = a.size();
137
461
        for (size_t i = 0; i < size; ++i) {
138
395
            c[i] = Impl::apply(a[i], b[i]);
139
395
        }
140
66
        return column_result;
141
66
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
86
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
86
        const auto* column_left_ptr =
127
86
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
86
        const auto* column_right_ptr =
129
86
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
86
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
86
        auto& a = column_left_ptr->get_data();
134
86
        auto& b = column_right_ptr->get_data();
135
86
        auto& c = column_result->get_data();
136
86
        size_t size = a.size();
137
585
        for (size_t i = 0; i < size; ++i) {
138
499
            c[i] = Impl::apply(a[i], b[i]);
139
499
        }
140
86
        return column_result;
141
86
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
129
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
129
        const auto* column_left_ptr =
127
129
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
129
        const auto* column_right_ptr =
129
129
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
129
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
129
        auto& a = column_left_ptr->get_data();
134
129
        auto& b = column_right_ptr->get_data();
135
129
        auto& c = column_result->get_data();
136
129
        size_t size = a.size();
137
844
        for (size_t i = 0; i < size; ++i) {
138
715
            c[i] = Impl::apply(a[i], b[i]);
139
715
        }
140
129
        return column_result;
141
129
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
3.21k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
3.21k
        const auto* column_left_ptr =
127
3.21k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
3.21k
        const auto* column_right_ptr =
129
3.21k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
3.21k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
3.21k
        auto& a = column_left_ptr->get_data();
134
3.21k
        auto& b = column_right_ptr->get_data();
135
3.21k
        auto& c = column_result->get_data();
136
3.21k
        size_t size = a.size();
137
22.8k
        for (size_t i = 0; i < size; ++i) {
138
19.6k
            c[i] = Impl::apply(a[i], b[i]);
139
19.6k
        }
140
3.21k
        return column_result;
141
3.21k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
303
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
303
        const auto* column_left_ptr =
127
303
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
303
        const auto* column_right_ptr =
129
303
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
303
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
303
        auto& a = column_left_ptr->get_data();
134
303
        auto& b = column_right_ptr->get_data();
135
303
        auto& c = column_result->get_data();
136
303
        size_t size = a.size();
137
2.16k
        for (size_t i = 0; i < size; ++i) {
138
1.86k
            c[i] = Impl::apply(a[i], b[i]);
139
1.86k
        }
140
303
        return column_result;
141
303
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
65
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
65
        const auto* column_left_ptr =
127
65
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
65
        const auto* column_right_ptr =
129
65
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
65
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
65
        auto& a = column_left_ptr->get_data();
134
65
        auto& b = column_right_ptr->get_data();
135
65
        auto& c = column_result->get_data();
136
65
        size_t size = a.size();
137
460
        for (size_t i = 0; i < size; ++i) {
138
395
            c[i] = Impl::apply(a[i], b[i]);
139
395
        }
140
65
        return column_result;
141
65
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
86
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
86
        const auto* column_left_ptr =
127
86
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
86
        const auto* column_right_ptr =
129
86
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
86
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
86
        auto& a = column_left_ptr->get_data();
134
86
        auto& b = column_right_ptr->get_data();
135
86
        auto& c = column_result->get_data();
136
86
        size_t size = a.size();
137
585
        for (size_t i = 0; i < size; ++i) {
138
499
            c[i] = Impl::apply(a[i], b[i]);
139
499
        }
140
86
        return column_result;
141
86
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
123
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
123
        const auto* column_left_ptr =
127
123
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
123
        const auto* column_right_ptr =
129
123
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
123
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
123
        auto& a = column_left_ptr->get_data();
134
123
        auto& b = column_right_ptr->get_data();
135
123
        auto& c = column_result->get_data();
136
123
        size_t size = a.size();
137
828
        for (size_t i = 0; i < size; ++i) {
138
705
            c[i] = Impl::apply(a[i], b[i]);
139
705
        }
140
123
        return column_result;
141
123
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
3.20k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
3.20k
        const auto* column_left_ptr =
127
3.20k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
3.20k
        const auto* column_right_ptr =
129
3.20k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
3.20k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
3.20k
        auto& a = column_left_ptr->get_data();
134
3.20k
        auto& b = column_right_ptr->get_data();
135
3.20k
        auto& c = column_result->get_data();
136
3.20k
        size_t size = a.size();
137
22.8k
        for (size_t i = 0; i < size; ++i) {
138
19.6k
            c[i] = Impl::apply(a[i], b[i]);
139
19.6k
        }
140
3.20k
        return column_result;
141
3.20k
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
304
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
304
        const auto* column_left_ptr =
127
304
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
304
        const auto* column_right_ptr =
129
304
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
304
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
304
        auto& a = column_left_ptr->get_data();
134
304
        auto& b = column_right_ptr->get_data();
135
304
        auto& c = column_result->get_data();
136
304
        size_t size = a.size();
137
2.16k
        for (size_t i = 0; i < size; ++i) {
138
1.86k
            c[i] = Impl::apply(a[i], b[i]);
139
1.86k
        }
140
304
        return column_result;
141
304
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
66
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
66
        const auto* column_left_ptr =
127
66
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
66
        const auto* column_right_ptr =
129
66
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
66
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
66
        auto& a = column_left_ptr->get_data();
134
66
        auto& b = column_right_ptr->get_data();
135
66
        auto& c = column_result->get_data();
136
66
        size_t size = a.size();
137
461
        for (size_t i = 0; i < size; ++i) {
138
395
            c[i] = Impl::apply(a[i], b[i]);
139
395
        }
140
66
        return column_result;
141
66
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
85
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
85
        const auto* column_left_ptr =
127
85
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
85
        const auto* column_right_ptr =
129
85
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
85
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
85
        auto& a = column_left_ptr->get_data();
134
85
        auto& b = column_right_ptr->get_data();
135
85
        auto& c = column_result->get_data();
136
85
        size_t size = a.size();
137
584
        for (size_t i = 0; i < size; ++i) {
138
499
            c[i] = Impl::apply(a[i], b[i]);
139
499
        }
140
85
        return column_result;
141
85
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
123
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
123
        const auto* column_left_ptr =
127
123
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
123
        const auto* column_right_ptr =
129
123
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
123
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
123
        auto& a = column_left_ptr->get_data();
134
123
        auto& b = column_right_ptr->get_data();
135
123
        auto& c = column_result->get_data();
136
123
        size_t size = a.size();
137
828
        for (size_t i = 0; i < size; ++i) {
138
705
            c[i] = Impl::apply(a[i], b[i]);
139
705
        }
140
123
        return column_result;
141
123
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
3.20k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
3.20k
        const auto* column_left_ptr =
127
3.20k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
3.20k
        const auto* column_right_ptr =
129
3.20k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
3.20k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
3.20k
        auto& a = column_left_ptr->get_data();
134
3.20k
        auto& b = column_right_ptr->get_data();
135
3.20k
        auto& c = column_result->get_data();
136
3.20k
        size_t size = a.size();
137
22.8k
        for (size_t i = 0; i < size; ++i) {
138
19.6k
            c[i] = Impl::apply(a[i], b[i]);
139
19.6k
        }
140
3.20k
        return column_result;
141
3.20k
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
301
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
301
        const auto* column_left_ptr =
127
301
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
301
        const auto* column_right_ptr =
129
301
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
301
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
301
        auto& a = column_left_ptr->get_data();
134
301
        auto& b = column_right_ptr->get_data();
135
301
        auto& c = column_result->get_data();
136
301
        size_t size = a.size();
137
2.16k
        for (size_t i = 0; i < size; ++i) {
138
1.86k
            c[i] = Impl::apply(a[i], b[i]);
139
1.86k
        }
140
301
        return column_result;
141
301
    }
142
};
143
144
template <PrimitiveType PType>
145
struct BitAndImpl {
146
    static_assert(is_int(PType));
147
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
148
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
149
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
150
    static constexpr auto name = "bitand";
151
    static constexpr bool is_nullable = false;
152
    static constexpr PrimitiveType ArgPType = PType;
153
23.1k
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE3EE5applyEaa
Line
Count
Source
153
399
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
153
500
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
153
715
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE6EE5applyEll
Line
Count
Source
153
19.6k
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE7EE5applyEnn
Line
Count
Source
153
1.87k
    static inline Arg apply(Arg a, Arg b) { return a & b; }
154
};
155
156
template <PrimitiveType PType>
157
struct BitOrImpl {
158
    static_assert(is_int(PType));
159
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
160
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
161
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
162
    static constexpr auto name = "bitor";
163
    static constexpr bool is_nullable = false;
164
    static constexpr PrimitiveType ArgPType = PType;
165
23.1k
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE3EE5applyEaa
Line
Count
Source
165
409
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
165
499
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
165
705
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE6EE5applyEll
Line
Count
Source
165
19.6k
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE7EE5applyEnn
Line
Count
Source
165
1.86k
    static inline Arg apply(Arg a, Arg b) { return a | b; }
166
};
167
168
template <PrimitiveType PType>
169
struct BitXorImpl {
170
    static_assert(is_int(PType));
171
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
172
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
173
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
174
    static constexpr auto name = "bitxor";
175
    static constexpr bool is_nullable = false;
176
    static constexpr PrimitiveType ArgPType = PType;
177
23.1k
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE3EE5applyEaa
Line
Count
Source
177
404
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
177
501
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
177
706
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE6EE5applyEll
Line
Count
Source
177
19.6k
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE7EE5applyEnn
Line
Count
Source
177
1.86k
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
178
};
179
180
struct NameBitNot {
181
    static constexpr auto name = "bitnot";
182
};
183
184
template <typename A>
185
struct BitNotImpl {
186
    static constexpr PrimitiveType ResultType = NumberTraits::ResultOfBitNot<A>::Type;
187
188
10
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
189
10
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
190
10
    }
_ZN5doris10BitNotImplIaE5applyEa
Line
Count
Source
188
2
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
189
2
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
190
2
    }
Unexecuted instantiation: _ZN5doris10BitNotImplIsE5applyEs
_ZN5doris10BitNotImplIiE5applyEi
Line
Count
Source
188
5
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
189
5
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
190
5
    }
_ZN5doris10BitNotImplIlE5applyEl
Line
Count
Source
188
3
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
189
3
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
190
3
    }
Unexecuted instantiation: _ZN5doris10BitNotImplInE5applyEn
191
};
192
193
struct NameBitLength {
194
    static constexpr auto name = "bit_length";
195
};
196
197
struct BitLengthImpl {
198
    using ReturnType = DataTypeInt32;
199
    static constexpr auto PrimitiveTypeImpl = PrimitiveType::TYPE_STRING;
200
    using Type = String;
201
    using ReturnColumnType = ColumnInt32;
202
203
    static Status vector(const ColumnString::Chars& data, const ColumnString::Offsets& offsets,
204
35
                         PaddedPODArray<Int32>& res) {
205
35
        auto size = offsets.size();
206
35
        res.resize(size);
207
128
        for (int i = 0; i < size; ++i) {
208
93
            int str_size = offsets[i] - offsets[i - 1];
209
93
            res[i] = (str_size * 8);
210
93
        }
211
35
        return Status::OK();
212
35
    }
213
};
214
215
using FunctionBitNotTinyInt = FunctionUnaryArithmetic<BitNotImpl<Int8>, NameBitNot, TYPE_TINYINT>;
216
using FunctionBitNotSmallInt =
217
        FunctionUnaryArithmetic<BitNotImpl<Int16>, NameBitNot, TYPE_SMALLINT>;
218
using FunctionBitNotInt = FunctionUnaryArithmetic<BitNotImpl<Int32>, NameBitNot, TYPE_INT>;
219
using FunctionBitNotBigInt = FunctionUnaryArithmetic<BitNotImpl<Int64>, NameBitNot, TYPE_BIGINT>;
220
using FunctionBitNotLargeInt =
221
        FunctionUnaryArithmetic<BitNotImpl<Int128>, NameBitNot, TYPE_LARGEINT>;
222
223
using FunctionBitLength = FunctionUnaryToType<BitLengthImpl, NameBitLength>;
224
225
8
void register_function_bit(SimpleFunctionFactory& factory) {
226
8
    factory.register_function<FunctionBit<BitAndImpl<TYPE_TINYINT>>>();
227
8
    factory.register_function<FunctionBit<BitAndImpl<TYPE_SMALLINT>>>();
228
8
    factory.register_function<FunctionBit<BitAndImpl<TYPE_INT>>>();
229
8
    factory.register_function<FunctionBit<BitAndImpl<TYPE_BIGINT>>>();
230
8
    factory.register_function<FunctionBit<BitAndImpl<TYPE_LARGEINT>>>();
231
232
8
    factory.register_function<FunctionBit<BitOrImpl<TYPE_TINYINT>>>();
233
8
    factory.register_function<FunctionBit<BitOrImpl<TYPE_SMALLINT>>>();
234
8
    factory.register_function<FunctionBit<BitOrImpl<TYPE_INT>>>();
235
8
    factory.register_function<FunctionBit<BitOrImpl<TYPE_BIGINT>>>();
236
8
    factory.register_function<FunctionBit<BitOrImpl<TYPE_LARGEINT>>>();
237
238
8
    factory.register_function<FunctionBit<BitXorImpl<TYPE_TINYINT>>>();
239
8
    factory.register_function<FunctionBit<BitXorImpl<TYPE_SMALLINT>>>();
240
8
    factory.register_function<FunctionBit<BitXorImpl<TYPE_INT>>>();
241
8
    factory.register_function<FunctionBit<BitXorImpl<TYPE_BIGINT>>>();
242
8
    factory.register_function<FunctionBit<BitXorImpl<TYPE_LARGEINT>>>();
243
244
8
    factory.register_function<FunctionBitNotTinyInt>();
245
8
    factory.register_function<FunctionBitNotSmallInt>();
246
8
    factory.register_function<FunctionBitNotInt>();
247
8
    factory.register_function<FunctionBitNotBigInt>();
248
8
    factory.register_function<FunctionBitNotLargeInt>();
249
8
    factory.register_function<FunctionBitLength>();
250
8
}
251
} // namespace doris