Coverage Report

Created: 2026-03-13 09:37

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.09k
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
31
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
36
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
50
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
827
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE6createEv
Line
Count
Source
45
85
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE6createEv
Line
Count
Source
45
35
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
35
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
48
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
826
    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
36
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE6createEv
Line
Count
Source
45
37
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE6createEv
Line
Count
Source
45
49
    static FunctionPtr create() { return std::make_shared<FunctionBit<Impl>>(); }
_ZN5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE6createEv
Line
Count
Source
45
831
    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.96k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
2.96k
        return std::make_shared<typename Impl::DataType>();
53
2.96k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
22
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
22
        return std::make_shared<typename Impl::DataType>();
53
22
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
27
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
27
        return std::make_shared<typename Impl::DataType>();
53
27
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
41
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
41
        return std::make_shared<typename Impl::DataType>();
53
41
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
817
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
817
        return std::make_shared<typename Impl::DataType>();
53
817
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_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_9BitOrImplILNS_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_9BitOrImplILNS_13PrimitiveTypeE4EEEE20get_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_9BitOrImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
39
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
39
        return std::make_shared<typename Impl::DataType>();
53
39
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
817
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
817
        return std::make_shared<typename Impl::DataType>();
53
817
    }
_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
27
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
27
        return std::make_shared<typename Impl::DataType>();
53
27
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
28
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
28
        return std::make_shared<typename Impl::DataType>();
53
28
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
40
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
40
        return std::make_shared<typename Impl::DataType>();
53
40
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
51
822
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
52
822
        return std::make_shared<typename Impl::DataType>();
53
822
    }
_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.96k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Line
Count
Source
55
22
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
27
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
41
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
817
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE23get_number_of_argumentsEv
Line
Count
Source
55
76
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE23get_number_of_argumentsEv
Line
Count
Source
55
26
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
26
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
39
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
817
    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
27
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE23get_number_of_argumentsEv
Line
Count
Source
55
28
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE23get_number_of_argumentsEv
Line
Count
Source
55
40
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE23get_number_of_argumentsEv
Line
Count
Source
55
822
    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
34.0k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
201
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
262
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
409
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.64k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
836
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
228
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
262
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
380
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.64k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
835
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
221
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
268
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
386
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
9.66k
    bool use_default_implementation_for_constants() const final { return false; }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv
Line
Count
Source
57
833
    bool use_default_implementation_for_constants() const final { return false; }
58
59
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
60
11.5k
                        uint32_t result, size_t input_rows_count) const override {
61
11.5k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
11.5k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
11.5k
        bool is_const_left = is_column_const(*column_left);
64
11.5k
        bool is_const_right = is_column_const(*column_right);
65
66
11.5k
        ColumnPtr column_result = nullptr;
67
11.5k
        if (is_const_left && is_const_right) {
68
35
            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.5k
        block.replace_by_position(result, std::move(column_result));
77
78
11.5k
        return Status::OK();
79
11.5k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
69
                        uint32_t result, size_t input_rows_count) const override {
61
69
        auto& column_left = block.get_by_position(arguments[0]).column;
62
69
        auto& column_right = block.get_by_position(arguments[1]).column;
63
69
        bool is_const_left = is_column_const(*column_left);
64
69
        bool is_const_right = is_column_const(*column_right);
65
66
69
        ColumnPtr column_result = nullptr;
67
69
        if (is_const_left && is_const_right) {
68
4
            column_result = constant_constant(column_left, column_right);
69
65
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
65
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
65
        } else {
74
65
            column_result = vector_vector(column_left, column_right);
75
65
        }
76
69
        block.replace_by_position(result, std::move(column_result));
77
78
69
        return Status::OK();
79
69
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
92
                        uint32_t result, size_t input_rows_count) const override {
61
92
        auto& column_left = block.get_by_position(arguments[0]).column;
62
92
        auto& column_right = block.get_by_position(arguments[1]).column;
63
92
        bool is_const_left = is_column_const(*column_left);
64
92
        bool is_const_right = is_column_const(*column_right);
65
66
92
        ColumnPtr column_result = nullptr;
67
92
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
91
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
91
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
91
        } else {
74
91
            column_result = vector_vector(column_left, column_right);
75
91
        }
76
92
        block.replace_by_position(result, std::move(column_result));
77
78
92
        return Status::OK();
79
92
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
138
                        uint32_t result, size_t input_rows_count) const override {
61
138
        auto& column_left = block.get_by_position(arguments[0]).column;
62
138
        auto& column_right = block.get_by_position(arguments[1]).column;
63
138
        bool is_const_left = is_column_const(*column_left);
64
138
        bool is_const_right = is_column_const(*column_right);
65
66
138
        ColumnPtr column_result = nullptr;
67
138
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
138
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
138
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
138
        } else {
74
138
            column_result = vector_vector(column_left, column_right);
75
138
        }
76
138
        block.replace_by_position(result, std::move(column_result));
77
78
138
        return Status::OK();
79
138
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
3.23k
                        uint32_t result, size_t input_rows_count) const override {
61
3.23k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3.23k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3.23k
        bool is_const_left = is_column_const(*column_left);
64
3.23k
        bool is_const_right = is_column_const(*column_right);
65
66
3.23k
        ColumnPtr column_result = nullptr;
67
3.23k
        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.23k
        block.replace_by_position(result, std::move(column_result));
77
78
3.23k
        return Status::OK();
79
3.23k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_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_9BitOrImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
82
                        uint32_t result, size_t input_rows_count) const override {
61
82
        auto& column_left = block.get_by_position(arguments[0]).column;
62
82
        auto& column_right = block.get_by_position(arguments[1]).column;
63
82
        bool is_const_left = is_column_const(*column_left);
64
82
        bool is_const_right = is_column_const(*column_right);
65
66
82
        ColumnPtr column_result = nullptr;
67
82
        if (is_const_left && is_const_right) {
68
14
            column_result = constant_constant(column_left, column_right);
69
68
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
68
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
68
        } else {
74
68
            column_result = vector_vector(column_left, column_right);
75
68
        }
76
82
        block.replace_by_position(result, std::move(column_result));
77
78
82
        return Status::OK();
79
82
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
92
                        uint32_t result, size_t input_rows_count) const override {
61
92
        auto& column_left = block.get_by_position(arguments[0]).column;
62
92
        auto& column_right = block.get_by_position(arguments[1]).column;
63
92
        bool is_const_left = is_column_const(*column_left);
64
92
        bool is_const_right = is_column_const(*column_right);
65
66
92
        ColumnPtr column_result = nullptr;
67
92
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
92
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
92
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
92
        } else {
74
92
            column_result = vector_vector(column_left, column_right);
75
92
        }
76
92
        block.replace_by_position(result, std::move(column_result));
77
78
92
        return Status::OK();
79
92
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
132
                        uint32_t result, size_t input_rows_count) const override {
61
132
        auto& column_left = block.get_by_position(arguments[0]).column;
62
132
        auto& column_right = block.get_by_position(arguments[1]).column;
63
132
        bool is_const_left = is_column_const(*column_left);
64
132
        bool is_const_right = is_column_const(*column_right);
65
66
132
        ColumnPtr column_result = nullptr;
67
132
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
132
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
132
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
132
        } else {
74
132
            column_result = vector_vector(column_left, column_right);
75
132
        }
76
132
        block.replace_by_position(result, std::move(column_result));
77
78
132
        return Status::OK();
79
132
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_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_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
77
                        uint32_t result, size_t input_rows_count) const override {
61
77
        auto& column_left = block.get_by_position(arguments[0]).column;
62
77
        auto& column_right = block.get_by_position(arguments[1]).column;
63
77
        bool is_const_left = is_column_const(*column_left);
64
77
        bool is_const_right = is_column_const(*column_right);
65
66
77
        ColumnPtr column_result = nullptr;
67
77
        if (is_const_left && is_const_right) {
68
9
            column_result = constant_constant(column_left, column_right);
69
68
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
68
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
68
        } else {
74
68
            column_result = vector_vector(column_left, column_right);
75
68
        }
76
77
        block.replace_by_position(result, std::move(column_result));
77
78
77
        return Status::OK();
79
77
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
93
                        uint32_t result, size_t input_rows_count) const override {
61
93
        auto& column_left = block.get_by_position(arguments[0]).column;
62
93
        auto& column_right = block.get_by_position(arguments[1]).column;
63
93
        bool is_const_left = is_column_const(*column_left);
64
93
        bool is_const_right = is_column_const(*column_right);
65
66
93
        ColumnPtr column_result = nullptr;
67
93
        if (is_const_left && is_const_right) {
68
2
            column_result = constant_constant(column_left, column_right);
69
91
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
91
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
91
        } else {
74
91
            column_result = vector_vector(column_left, column_right);
75
91
        }
76
93
        block.replace_by_position(result, std::move(column_result));
77
78
93
        return Status::OK();
79
93
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
134
                        uint32_t result, size_t input_rows_count) const override {
61
134
        auto& column_left = block.get_by_position(arguments[0]).column;
62
134
        auto& column_right = block.get_by_position(arguments[1]).column;
63
134
        bool is_const_left = is_column_const(*column_left);
64
134
        bool is_const_right = is_column_const(*column_right);
65
66
134
        ColumnPtr column_result = nullptr;
67
134
        if (is_const_left && is_const_right) {
68
1
            column_result = constant_constant(column_left, column_right);
69
133
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
133
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
133
        } else {
74
133
            column_result = vector_vector(column_left, column_right);
75
133
        }
76
134
        block.replace_by_position(result, std::move(column_result));
77
78
134
        return Status::OK();
79
134
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE6EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
3.23k
                        uint32_t result, size_t input_rows_count) const override {
61
3.23k
        auto& column_left = block.get_by_position(arguments[0]).column;
62
3.23k
        auto& column_right = block.get_by_position(arguments[1]).column;
63
3.23k
        bool is_const_left = is_column_const(*column_left);
64
3.23k
        bool is_const_right = is_column_const(*column_right);
65
66
3.23k
        ColumnPtr column_result = nullptr;
67
3.23k
        if (is_const_left && is_const_right) {
68
2
            column_result = constant_constant(column_left, column_right);
69
3.23k
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
3.23k
        } 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.23k
        block.replace_by_position(result, std::move(column_result));
77
78
3.23k
        return Status::OK();
79
3.23k
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE7EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
60
303
                        uint32_t result, size_t input_rows_count) const override {
61
303
        auto& column_left = block.get_by_position(arguments[0]).column;
62
303
        auto& column_right = block.get_by_position(arguments[1]).column;
63
303
        bool is_const_left = is_column_const(*column_left);
64
303
        bool is_const_right = is_column_const(*column_right);
65
66
303
        ColumnPtr column_result = nullptr;
67
303
        if (is_const_left && is_const_right) {
68
0
            column_result = constant_constant(column_left, column_right);
69
303
        } else if (is_const_left) {
70
0
            column_result = constant_vector(column_left, column_right);
71
303
        } else if (is_const_right) {
72
0
            column_result = vector_constant(column_left, column_right);
73
303
        } else {
74
303
            column_result = vector_vector(column_left, column_right);
75
303
        }
76
303
        block.replace_by_position(result, std::move(column_result));
77
78
303
        return Status::OK();
79
303
    }
80
81
private:
82
35
    ColumnPtr constant_constant(ColumnPtr column_left, ColumnPtr column_right) const {
83
35
        const auto* column_left_ptr = assert_cast<const ColumnConst*>(column_left.get());
84
35
        const auto* column_right_ptr = assert_cast<const ColumnConst*>(column_right.get());
85
35
        ColumnPtr column_result = nullptr;
86
87
35
        auto res = Impl::ColumnType::create(1);
88
35
        res->get_element(0) = Impl::apply(column_left_ptr->template get_value<Impl::ArgPType>(),
89
35
                                          column_right_ptr->template get_value<Impl::ArgPType>());
90
35
        column_result = std::move(res);
91
35
        return ColumnConst::create(std::move(column_result), column_left->size());
92
35
    }
_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
    }
Unexecuted instantiation: _ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE17constant_constantENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
_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.4k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
11.4k
        const auto* column_left_ptr =
127
11.4k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
11.4k
        const auto* column_right_ptr =
129
11.4k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
11.4k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
11.4k
        auto& a = column_left_ptr->get_data();
134
11.4k
        auto& b = column_right_ptr->get_data();
135
11.4k
        auto& c = column_result->get_data();
136
11.4k
        size_t size = a.size();
137
81.0k
        for (size_t i = 0; i < size; ++i) {
138
69.5k
            c[i] = Impl::apply(a[i], b[i]);
139
69.5k
        }
140
11.4k
        return column_result;
141
11.4k
    }
_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
464
        for (size_t i = 0; i < size; ++i) {
138
398
            c[i] = Impl::apply(a[i], b[i]);
139
398
        }
140
66
        return column_result;
141
66
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
91
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
91
        const auto* column_left_ptr =
127
91
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
91
        const auto* column_right_ptr =
129
91
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
91
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
91
        auto& a = column_left_ptr->get_data();
134
91
        auto& b = column_right_ptr->get_data();
135
91
        auto& c = column_result->get_data();
136
91
        size_t size = a.size();
137
599
        for (size_t i = 0; i < size; ++i) {
138
508
            c[i] = Impl::apply(a[i], b[i]);
139
508
        }
140
91
        return column_result;
141
91
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
138
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
138
        const auto* column_left_ptr =
127
138
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
138
        const auto* column_right_ptr =
129
138
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
138
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
138
        auto& a = column_left_ptr->get_data();
134
138
        auto& b = column_right_ptr->get_data();
135
138
        auto& c = column_result->get_data();
136
138
        size_t size = a.size();
137
868
        for (size_t i = 0; i < size; ++i) {
138
730
            c[i] = Impl::apply(a[i], b[i]);
139
730
        }
140
138
        return column_result;
141
138
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
3.23k
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
3.23k
        const auto* column_left_ptr =
127
3.23k
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
3.23k
        const auto* column_right_ptr =
129
3.23k
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
3.23k
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
3.23k
        auto& a = column_left_ptr->get_data();
134
3.23k
        auto& b = column_right_ptr->get_data();
135
3.23k
        auto& c = column_result->get_data();
136
3.23k
        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.23k
        return column_result;
141
3.23k
    }
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_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_9BitOrImplILNS_13PrimitiveTypeE3EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
68
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
68
        const auto* column_left_ptr =
127
68
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
68
        const auto* column_right_ptr =
129
68
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
68
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
68
        auto& a = column_left_ptr->get_data();
134
68
        auto& b = column_right_ptr->get_data();
135
68
        auto& c = column_result->get_data();
136
68
        size_t size = a.size();
137
466
        for (size_t i = 0; i < size; ++i) {
138
398
            c[i] = Impl::apply(a[i], b[i]);
139
398
        }
140
68
        return column_result;
141
68
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
92
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
92
        const auto* column_left_ptr =
127
92
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
92
        const auto* column_right_ptr =
129
92
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
92
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
92
        auto& a = column_left_ptr->get_data();
134
92
        auto& b = column_right_ptr->get_data();
135
92
        auto& c = column_result->get_data();
136
92
        size_t size = a.size();
137
600
        for (size_t i = 0; i < size; ++i) {
138
508
            c[i] = Impl::apply(a[i], b[i]);
139
508
        }
140
92
        return column_result;
141
92
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
132
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
132
        const auto* column_left_ptr =
127
132
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
132
        const auto* column_right_ptr =
129
132
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
132
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
132
        auto& a = column_left_ptr->get_data();
134
132
        auto& b = column_right_ptr->get_data();
135
132
        auto& c = column_result->get_data();
136
132
        size_t size = a.size();
137
852
        for (size_t i = 0; i < size; ++i) {
138
720
            c[i] = Impl::apply(a[i], b[i]);
139
720
        }
140
132
        return column_result;
141
132
    }
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_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_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
68
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
68
        const auto* column_left_ptr =
127
68
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
68
        const auto* column_right_ptr =
129
68
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
68
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
68
        auto& a = column_left_ptr->get_data();
134
68
        auto& b = column_right_ptr->get_data();
135
68
        auto& c = column_result->get_data();
136
68
        size_t size = a.size();
137
466
        for (size_t i = 0; i < size; ++i) {
138
398
            c[i] = Impl::apply(a[i], b[i]);
139
398
        }
140
68
        return column_result;
141
68
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE4EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
91
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
91
        const auto* column_left_ptr =
127
91
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
91
        const auto* column_right_ptr =
129
91
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
91
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
91
        auto& a = column_left_ptr->get_data();
134
91
        auto& b = column_right_ptr->get_data();
135
91
        auto& c = column_result->get_data();
136
91
        size_t size = a.size();
137
599
        for (size_t i = 0; i < size; ++i) {
138
508
            c[i] = Impl::apply(a[i], b[i]);
139
508
        }
140
91
        return column_result;
141
91
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE5EEEE13vector_vectorENS_3COWINS_7IColumnEE13immutable_ptrIS6_EES9_
Line
Count
Source
125
133
    ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const {
126
133
        const auto* column_left_ptr =
127
133
                assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get());
128
133
        const auto* column_right_ptr =
129
133
                assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get());
130
131
133
        auto column_result = Impl::ColumnType::create(column_left->size());
132
133
133
        auto& a = column_left_ptr->get_data();
134
133
        auto& b = column_right_ptr->get_data();
135
133
        auto& c = column_result->get_data();
136
133
        size_t size = a.size();
137
853
        for (size_t i = 0; i < size; ++i) {
138
720
            c[i] = Impl::apply(a[i], b[i]);
139
720
        }
140
133
        return column_result;
141
133
    }
_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.7k
            c[i] = Impl::apply(a[i], b[i]);
139
19.7k
        }
140
3.22k
        return column_result;
141
3.22k
    }
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_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
    }
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
402
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
153
509
    static inline Arg apply(Arg a, Arg b) { return a & b; }
_ZN5doris10BitAndImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
153
730
    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.86k
    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
412
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
165
508
    static inline Arg apply(Arg a, Arg b) { return a | b; }
_ZN5doris9BitOrImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
165
720
    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.2k
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE3EE5applyEaa
Line
Count
Source
177
407
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE4EE5applyEss
Line
Count
Source
177
510
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE5EE5applyEii
Line
Count
Source
177
721
    static inline Arg apply(Arg a, Arg b) { return a ^ b; }
_ZN5doris10BitXorImplILNS_13PrimitiveTypeE6EE5applyEll
Line
Count
Source
177
19.7k
    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
30
                         PaddedPODArray<Int32>& res) {
205
30
        auto size = offsets.size();
206
30
        res.resize(size);
207
118
        for (int i = 0; i < size; ++i) {
208
88
            int str_size = offsets[i] - offsets[i - 1];
209
88
            res[i] = (str_size * 8);
210
88
        }
211
30
        return Status::OK();
212
30
    }
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