Coverage Report

Created: 2026-04-01 11:49

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