Coverage Report

Created: 2026-03-14 06:50

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
        for (size_t i = 0; i < size; ++i) {
104
0
            c[i] = Impl::apply(a[i], column_right_ptr->template get_value<Impl::ArgPType>());
105
0
        }
106
0
        return column_result;
107
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_
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
3
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
3
        const auto* column_left_ptr =
127
3
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
3
        const auto* column_right_ptr =
129
3
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
3
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
3
        auto& a = column_left_ptr->get_data();
134
3
        auto& b = column_right_ptr->get_data();
135
3
        auto& c = column_result->get_data();
136
3
        size_t size = a.size();
137
15
        for (size_t i = 0; i < size; ++i) {
138
12
            c[i] = Impl::apply(a[i], b[i]);
139
12
        }
140
3
        return column_result;
141
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
125
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
1
        const auto* column_left_ptr =
127
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
1
        const auto* column_right_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
1
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
1
        auto& a = column_left_ptr->get_data();
134
1
        auto& b = column_right_ptr->get_data();
135
1
        auto& c = column_result->get_data();
136
1
        size_t size = a.size();
137
5
        for (size_t i = 0; i < size; ++i) {
138
4
            c[i] = Impl::apply(a[i], b[i]);
139
4
        }
140
1
        return column_result;
141
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
125
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
1
        const auto* column_left_ptr =
127
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
1
        const auto* column_right_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
1
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
1
        auto& a = column_left_ptr->get_data();
134
1
        auto& b = column_right_ptr->get_data();
135
1
        auto& c = column_result->get_data();
136
1
        size_t size = a.size();
137
5
        for (size_t i = 0; i < size; ++i) {
138
4
            c[i] = Impl::apply(a[i], b[i]);
139
4
        }
140
1
        return column_result;
141
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
125
1
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
1
        const auto* column_left_ptr =
127
1
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
1
        const auto* column_right_ptr =
129
1
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
1
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
1
        auto& a = column_left_ptr->get_data();
134
1
        auto& b = column_right_ptr->get_data();
135
1
        auto& c = column_result->get_data();
136
1
        size_t size = a.size();
137
5
        for (size_t i = 0; i < size; ++i) {
138
4
            c[i] = Impl::apply(a[i], b[i]);
139
4
        }
140
1
        return column_result;
141
1
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
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
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
153
4
    static inline Arg apply(Arg a, Arg b) { return a & b; }
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris10BitAndImplILNS_13PrimitiveTypeE7EE5applyEnn
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
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
165
4
    static inline Arg apply(Arg a, Arg b) { return a | b; }
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris9BitOrImplILNS_13PrimitiveTypeE7EE5applyEnn
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
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
177
4
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE6EE5applyEll
Unexecuted instantiation: _ZN5doris10BitXorImplILNS_13PrimitiveTypeE7EE5applyEnn
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
5
    static inline typename PrimitiveTypeTraits<ResultType>::CppType apply(A a) {
189
5
        return ~static_cast<typename PrimitiveTypeTraits<ResultType>::CppType>(a);
190
5
    }
Unexecuted instantiation: _ZN5doris10BitNotImplIaE5applyEa
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
    }
Unexecuted instantiation: _ZN5doris10BitNotImplIlE5applyEl
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
11
                         PaddedPODArray<Int32>& res) {
205
11
        auto size = offsets.size();
206
11
        res.resize(size);
207
32
        for (int i = 0; i < size; ++i) {
208
21
            int str_size = offsets[i] - offsets[i - 1];
209
21
            res[i] = (str_size * 8);
210
21
        }
211
11
        return Status::OK();
212
11
    }
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
1
void register_function_bit(SimpleFunctionFactory& factory) {
226
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_TINYINT>>>();
227
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_SMALLINT>>>();
228
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_INT>>>();
229
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_BIGINT>>>();
230
1
    factory.register_function<FunctionBit<BitAndImpl<TYPE_LARGEINT>>>();
231
232
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_TINYINT>>>();
233
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_SMALLINT>>>();
234
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_INT>>>();
235
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_BIGINT>>>();
236
1
    factory.register_function<FunctionBit<BitOrImpl<TYPE_LARGEINT>>>();
237
238
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_TINYINT>>>();
239
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_SMALLINT>>>();
240
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_INT>>>();
241
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_BIGINT>>>();
242
1
    factory.register_function<FunctionBit<BitXorImpl<TYPE_LARGEINT>>>();
243
244
1
    factory.register_function<FunctionBitNotTinyInt>();
245
1
    factory.register_function<FunctionBitNotSmallInt>();
246
1
    factory.register_function<FunctionBitNotInt>();
247
1
    factory.register_function<FunctionBitNotBigInt>();
248
1
    factory.register_function<FunctionBitNotLargeInt>();
249
1
    factory.register_function<FunctionBitLength>();
250
1
}
251
} // namespace doris