Coverage Report

Created: 2026-07-29 16:14

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
33
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
3
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
3
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
3
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
2
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
46
47
15
    DataTypes get_variadic_argument_types_impl() const override {
48
15
        return {std::make_shared<typename Impl::DataType>(),
49
15
                std::make_shared<typename Impl::DataType>()};
50
15
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE32get_variadic_argument_types_implEv
Line
Count
Source
47
1
    DataTypes get_variadic_argument_types_impl() const override {
48
1
        return {std::make_shared<typename Impl::DataType>(),
49
1
                std::make_shared<typename Impl::DataType>()};
50
1
    }
51
3
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
3
        return std::make_shared<typename Impl::DataType>();
53
3
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
1
        return std::make_shared<typename Impl::DataType>();
53
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
1
        return std::make_shared<typename Impl::DataType>();
53
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
1
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
1
        return std::make_shared<typename Impl::DataType>();
53
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
54
55
3
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
1
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
1
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
1
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
56
57
6
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
2
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
2
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
2
    bool use_default_implementation_for_constants() const final { return false; }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
58
59
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
60
3
                        uint32_t result, size_t input_rows_count) const override {
61
3
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3
        bool is_const_left = is_column_const(*column_left);
64
3
        bool is_const_right = is_column_const(*column_right);
65
66
3
        ColumnPtr column_result = nullptr;
67
3
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
3
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
3
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
3
        } else {
74
3
            column_result = vector_vector(column_left, column_right);
75
3
        }
76
3
        block.replace_by_position(result, std::move(column_result));
77
78
3
        return Status::OK();
79
3
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
1
                        uint32_t result, size_t input_rows_count) const override {
61
1
        auto& column_left = block.get_by_position(arguments[0]).column;
62
1
        auto& column_right = block.get_by_position(arguments[1]).column;
63
1
        bool is_const_left = is_column_const(*column_left);
64
1
        bool is_const_right = is_column_const(*column_right);
65
66
1
        ColumnPtr column_result = nullptr;
67
1
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
1
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
1
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
1
        } else {
74
1
            column_result = vector_vector(column_left, column_right);
75
1
        }
76
1
        block.replace_by_position(result, std::move(column_result));
77
78
1
        return Status::OK();
79
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
1
                        uint32_t result, size_t input_rows_count) const override {
61
1
        auto& column_left = block.get_by_position(arguments[0]).column;
62
1
        auto& column_right = block.get_by_position(arguments[1]).column;
63
1
        bool is_const_left = is_column_const(*column_left);
64
1
        bool is_const_right = is_column_const(*column_right);
65
66
1
        ColumnPtr column_result = nullptr;
67
1
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
1
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
1
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
1
        } else {
74
1
            column_result = vector_vector(column_left, column_right);
75
1
        }
76
1
        block.replace_by_position(result, std::move(column_result));
77
78
1
        return Status::OK();
79
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
1
                        uint32_t result, size_t input_rows_count) const override {
61
1
        auto& column_left = block.get_by_position(arguments[0]).column;
62
1
        auto& column_right = block.get_by_position(arguments[1]).column;
63
1
        bool is_const_left = is_column_const(*column_left);
64
1
        bool is_const_right = is_column_const(*column_right);
65
66
1
        ColumnPtr column_result = nullptr;
67
1
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
1
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
1
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
1
        } else {
74
1
            column_result = vector_vector(column_left, column_right);
75
1
        }
76
1
        block.replace_by_position(result, std::move(column_result));
77
78
1
        return Status::OK();
79
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
80
81
private:
82
0
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
0
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
0
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
0
        ColumnPtr column_result = nullptr;
86
87
0
        auto res = Impl::ColumnType::create(1);
88
0
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
0
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
0
        column_result = std::move(res);
91
0
        return ColumnConst::create(std::move(column_result), column_left->size());
92
0
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
93
94
0
    ColumnPtr vector_constant(ColumnPtr column_left, ColumnPtr column_right) const {
95
0
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
96
0
        const auto* column_left_ptr =
97
0
                assert_cast<const typename Impl::ColumnType*>(column_left.get());
98
0
        auto column_result = Impl::ColumnType::create(column_left->size());
99
100
0
        auto& a = column_left_ptr->get_data();
101
0
        auto& c = column_result->get_data();
102
0
        size_t size = a.size();
103
0
        const auto right_value = column_right_ptr->template get_value<Impl::ArgPType>();
104
0
        for (size_t i = 0; i < size; ++i) {
105
0
            c[i] = Impl::apply(a[i], right_value);
106
0
        }
107
0
        return column_result;
108
0
    }
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_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE15vector_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
109
110
0
    ColumnPtr constant_vector(ColumnPtr column_left, ColumnPtr column_right) const {
111
0
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
112
113
0
        const auto* column_right_ptr =
114
0
                assert_cast<const typename Impl::ColumnType*>(column_right.get());
115
0
        auto column_result = Impl::ColumnType::create(column_right->size());
116
117
0
        auto& b = column_right_ptr->get_data();
118
0
        auto& c = column_result->get_data();
119
0
        size_t size = b.size();
120
0
        const auto left_value = column_left_ptr->template get_value<Impl::ArgPType>();
121
0
        for (size_t i = 0; i < size; ++i) {
122
0
            c[i] = Impl::apply(left_value, b[i]);
123
0
        }
124
0
        return column_result;
125
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_
126
127
3
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
128
3
        const auto* column_left_ptr =
129
3
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
130
3
        const auto* column_right_ptr =
131
3
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
132
133
3
        auto column_result = Impl::ColumnType::create(column_left->size());
134
135
3
        auto& a = column_left_ptr->get_data();
136
3
        auto& b = column_right_ptr->get_data();
137
3
        auto& c = column_result->get_data();
138
3
        size_t size = a.size();
139
15
        for (size_t i = 0; i < size; ++i) {
140
12
            c[i] = Impl::apply(a[i], b[i]);
141
12
        }
142
3
        return column_result;
143
3
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
127
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
128
1
        const auto* column_left_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
130
1
        const auto* column_right_ptr =
131
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
132
133
1
        auto column_result = Impl::ColumnType::create(column_left->size());
134
135
1
        auto& a = column_left_ptr->get_data();
136
1
        auto& b = column_right_ptr->get_data();
137
1
        auto& c = column_result->get_data();
138
1
        size_t size = a.size();
139
5
        for (size_t i = 0; i < size; ++i) {
140
4
            c[i] = Impl::apply(a[i], b[i]);
141
4
        }
142
1
        return column_result;
143
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
127
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
128
1
        const auto* column_left_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
130
1
        const auto* column_right_ptr =
131
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
132
133
1
        auto column_result = Impl::ColumnType::create(column_left->size());
134
135
1
        auto& a = column_left_ptr->get_data();
136
1
        auto& b = column_right_ptr->get_data();
137
1
        auto& c = column_result->get_data();
138
1
        size_t size = a.size();
139
5
        for (size_t i = 0; i < size; ++i) {
140
4
            c[i] = Impl::apply(a[i], b[i]);
141
4
        }
142
1
        return column_result;
143
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
127
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
128
1
        const auto* column_left_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
130
1
        const auto* column_right_ptr =
131
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
132
133
1
        auto column_result = Impl::ColumnType::create(column_left->size());
134
135
1
        auto& a = column_left_ptr->get_data();
136
1
        auto& b = column_right_ptr->get_data();
137
1
        auto& c = column_result->get_data();
138
1
        size_t size = a.size();
139
5
        for (size_t i = 0; i < size; ++i) {
140
4
            c[i] = Impl::apply(a[i], b[i]);
141
4
        }
142
1
        return column_result;
143
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
144
};
145
146
template <PrimitiveType PType>
147
struct BitAndImpl {
148
    static_assert(is_int(PType));
149
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
150
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
151
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
152
    static constexpr auto name = "bitand";
153
    static constexpr bool is_nullable = false;
154
    static constexpr PrimitiveType ArgPType = PType;
155
4
    static inline Arg apply(Arg a, Arg b) { return a & b; }
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE3EE5applyEaa
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE4EE5applyEss
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
155
4
    static inline Arg apply(Arg a, Arg b) { return a & b; }
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE7EE5applyEnn
156
};
157
158
template <PrimitiveType PType>
159
struct BitOrImpl {
160
    static_assert(is_int(PType));
161
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
162
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
163
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
164
    static constexpr auto name = "bitor";
165
    static constexpr bool is_nullable = false;
166
    static constexpr PrimitiveType ArgPType = PType;
167
4
    static inline Arg apply(Arg a, Arg b) { return a | b; }
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE3EE5applyEaa
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE4EE5applyEss
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
167
4
    static inline Arg apply(Arg a, Arg b) { return a | b; }
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE7EE5applyEnn
168
};
169
170
template <PrimitiveType PType>
171
struct BitXorImpl {
172
    static_assert(is_int(PType));
173
    using Arg = typename PrimitiveTypeTraits<PType>::CppType;
174
    using DataType = typename PrimitiveTypeTraits<PType>::DataType;
175
    using ColumnType = typename PrimitiveTypeTraits<PType>::ColumnType;
176
    static constexpr auto name = "bitxor";
177
    static constexpr bool is_nullable = false;
178
    static constexpr PrimitiveType ArgPType = PType;
179
4
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE3EE5applyEaa
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE4EE5applyEss
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
179
4
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE7EE5applyEnn
180
};
181
182
struct NameBitNot {
183
    static constexpr auto name = "bitnot";
184
};
185
186
template <typename A>
187
struct BitNotImpl {
188
    static constexpr PrimitiveType ResultType = NumberTraits::ResultOfBitNot<A>::Type;
189
190
5
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
191
5
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
192
5
    }
Unexecuted instantiation: _ZN5doris10BitNotImplIaE5applyEa
Unexecuted instantiation: _ZN5doris10BitNotImplIsE5applyEs
_ZN5doris10BitNotImplIiE5applyEi
Line
Count
Source
190
5
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
191
5
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
192
5
    }
Unexecuted instantiation: _ZN5doris10BitNotImplIlE5applyEl
Unexecuted instantiation: _ZN5doris10BitNotImplInE5applyEn
193
};
194
195
struct NameBitLength {
196
    static constexpr auto name = "bit_length";
197
};
198
199
struct BitLengthImpl {
200
    using ReturnType = DataTypeInt32;
201
    static constexpr auto PrimitiveTypeImpl = PrimitiveType::TYPE_STRING;
202
    using Type = String;
203
    using ReturnColumnType = ColumnInt32;
204
205
    static Status vector(const ColumnString::Chars& data, const ColumnString::Offsets& offsets,
206
11
                         PaddedPODArray<Int32>& res) {
207
11
        auto size = offsets.size();
208
11
        res.resize(size);
209
32
        for (int i = 0; i < size; ++i) {
210
21
            int str_size = offsets[i] - offsets[i - 1];
211
21
            res[i] = (str_size * 8);
212
21
        }
213
11
        return Status::OK();
214
11
    }
215
};
216
217
using FunctionBitNotTinyInt = FunctionUnaryArithmetic<BitNotImpl<Int8>, NameBitNot, TYPE_TINYINT>;
218
using FunctionBitNotSmallInt =
219
        FunctionUnaryArithmetic<BitNotImpl<Int16>, NameBitNot, TYPE_SMALLINT>;
220
using FunctionBitNotInt = FunctionUnaryArithmetic<BitNotImpl<Int32>, NameBitNot, TYPE_INT>;
221
using FunctionBitNotBigInt = FunctionUnaryArithmetic<BitNotImpl<Int64>, NameBitNot, TYPE_BIGINT>;
222
using FunctionBitNotLargeInt =
223
        FunctionUnaryArithmetic<BitNotImpl<Int128>, NameBitNot, TYPE_LARGEINT>;
224
225
using FunctionBitLength = FunctionUnaryToType<BitLengthImpl, NameBitLength>;
226
227
1
void register_function_bit(SimpleFunctionFactory& factory) {
228
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_TINYINT>>>();
229
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_SMALLINT>>>();
230
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_INT>>>();
231
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_BIGINT>>>();
232
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_LARGEINT>>>();
233
234
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_TINYINT>>>();
235
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_SMALLINT>>>();
236
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_INT>>>();
237
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_BIGINT>>>();
238
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_LARGEINT>>>();
239
240
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_TINYINT>>>();
241
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_SMALLINT>>>();
242
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_INT>>>();
243
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_BIGINT>>>();
244
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_LARGEINT>>>();
245
246
1
    factory.register_function<FunctionBitNotTinyInt>();
247
1
    factory.register_function<FunctionBitNotSmallInt>();
248
1
    factory.register_function<FunctionBitNotInt>();
249
1
    factory.register_function<FunctionBitNotBigInt>();
250
1
    factory.register_function<FunctionBitNotLargeInt>();
251
1
    factory.register_function<FunctionBitLength>();
252
1
}
253
} // namespace doris