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 | 826 | 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 | 825 | 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 | 830 | 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.95k | DataTypePtr get_return_type_impl(const DataTypes& arguments) const override { |
52 | 2.95k | return std::make_shared<typename Impl::DataType>(); |
53 | 2.95k | } _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 | 815 | DataTypePtr get_return_type_impl(const DataTypes& arguments) const override { | 52 | 815 | return std::make_shared<typename Impl::DataType>(); | 53 | 815 | } |
_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.95k | 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 | 814 | 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 | 816 | 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 | 821 | 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 | 203 | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE4EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 264 | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE5EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 405 | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 9.65k | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_10BitAndImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 833 | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE3EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 229 | 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 | 379 | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE6EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 9.63k | bool use_default_implementation_for_constants() const final { return false; } |
_ZNK5doris11FunctionBitINS_9BitOrImplILNS_13PrimitiveTypeE7EEEE40use_default_implementation_for_constantsEv Line | Count | Source | 57 | 834 | 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 | 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.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 | 72 | uint32_t result, size_t input_rows_count) const override { | 61 | 72 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 72 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 72 | bool is_const_left = is_column_const(*column_left); | 64 | 72 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 72 | ColumnPtr column_result = nullptr; | 67 | 72 | if (is_const_left && is_const_right) { | 68 | 4 | 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 | 72 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 72 | return Status::OK(); | 79 | 72 | } |
_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 | 137 | uint32_t result, size_t input_rows_count) const override { | 61 | 137 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 137 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 137 | bool is_const_left = is_column_const(*column_left); | 64 | 137 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 137 | ColumnPtr column_result = nullptr; | 67 | 137 | if (is_const_left && is_const_right) { | 68 | 0 | column_result = constant_constant(column_left, column_right); | 69 | 137 | } else if (is_const_left) { | 70 | 0 | column_result = constant_vector(column_left, column_right); | 71 | 137 | } else if (is_const_right) { | 72 | 0 | column_result = vector_constant(column_left, column_right); | 73 | 137 | } else { | 74 | 137 | column_result = vector_vector(column_left, column_right); | 75 | 137 | } | 76 | 137 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 137 | return Status::OK(); | 79 | 137 | } |
_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.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 | 0 | column_result = vector_constant(column_left, column_right); | 73 | 3.23k | } else { | 74 | 3.23k | column_result = vector_vector(column_left, column_right); | 75 | 3.23k | } | 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 | 300 | uint32_t result, size_t input_rows_count) const override { | 61 | 300 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 300 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 300 | bool is_const_left = is_column_const(*column_left); | 64 | 300 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 300 | ColumnPtr column_result = nullptr; | 67 | 300 | if (is_const_left && is_const_right) { | 68 | 0 | column_result = constant_constant(column_left, column_right); | 69 | 300 | } else if (is_const_left) { | 70 | 0 | column_result = constant_vector(column_left, column_right); | 71 | 300 | } else if (is_const_right) { | 72 | 0 | column_result = vector_constant(column_left, column_right); | 73 | 300 | } else { | 74 | 300 | column_result = vector_vector(column_left, column_right); | 75 | 300 | } | 76 | 300 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 300 | return Status::OK(); | 79 | 300 | } |
_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 | 133 | uint32_t result, size_t input_rows_count) const override { | 61 | 133 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 133 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 133 | bool is_const_left = is_column_const(*column_left); | 64 | 133 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 133 | ColumnPtr column_result = nullptr; | 67 | 133 | if (is_const_left && is_const_right) { | 68 | 0 | 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 | 133 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 133 | return Status::OK(); | 79 | 133 | } |
_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 | 303 | uint32_t result, size_t input_rows_count) const override { | 61 | 303 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 303 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 303 | bool is_const_left = is_column_const(*column_left); | 64 | 303 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 303 | ColumnPtr column_result = nullptr; | 67 | 303 | if (is_const_left && is_const_right) { | 68 | 0 | column_result = constant_constant(column_left, column_right); | 69 | 303 | } else if (is_const_left) { | 70 | 0 | column_result = constant_vector(column_left, column_right); | 71 | 303 | } else if (is_const_right) { | 72 | 0 | column_result = vector_constant(column_left, column_right); | 73 | 303 | } else { | 74 | 303 | column_result = vector_vector(column_left, column_right); | 75 | 303 | } | 76 | 303 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 303 | return Status::OK(); | 79 | 303 | } |
_ZNK5doris11FunctionBitINS_10BitXorImplILNS_13PrimitiveTypeE3EEEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Line | Count | Source | 60 | 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 | 94 | uint32_t result, size_t input_rows_count) const override { | 61 | 94 | auto& column_left = block.get_by_position(arguments[0]).column; | 62 | 94 | auto& column_right = block.get_by_position(arguments[1]).column; | 63 | 94 | bool is_const_left = is_column_const(*column_left); | 64 | 94 | bool is_const_right = is_column_const(*column_right); | 65 | | | 66 | 94 | ColumnPtr column_result = nullptr; | 67 | 94 | if (is_const_left && is_const_right) { | 68 | 2 | 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 | 94 | block.replace_by_position(result, std::move(column_result)); | 77 | | | 78 | 94 | return Status::OK(); | 79 | 94 | } |
_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.23k | } else { | 74 | 3.23k | column_result = vector_vector(column_left, column_right); | 75 | 3.23k | } | 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 | 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 | 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 | 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_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 | 137 | ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const { | 126 | 137 | const auto* column_left_ptr = | 127 | 137 | assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get()); | 128 | 137 | const auto* column_right_ptr = | 129 | 137 | assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get()); | 130 | | | 131 | 137 | auto column_result = Impl::ColumnType::create(column_left->size()); | 132 | | | 133 | 137 | auto& a = column_left_ptr->get_data(); | 134 | 137 | auto& b = column_right_ptr->get_data(); | 135 | 137 | auto& c = column_result->get_data(); | 136 | 137 | size_t size = a.size(); | 137 | 867 | for (size_t i = 0; i < size; ++i) { | 138 | 730 | c[i] = Impl::apply(a[i], b[i]); | 139 | 730 | } | 140 | 137 | return column_result; | 141 | 137 | } |
_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 | 302 | ColumnPtr vector_vector(ColumnPtr column_left, ColumnPtr column_right) const { | 126 | 302 | const auto* column_left_ptr = | 127 | 302 | assert_cast<const typename Impl::ColumnType*>(column_left->get_ptr().get()); | 128 | 302 | const auto* column_right_ptr = | 129 | 302 | assert_cast<const typename Impl::ColumnType*>(column_right->get_ptr().get()); | 130 | | | 131 | 302 | auto column_result = Impl::ColumnType::create(column_left->size()); | 132 | | | 133 | 302 | auto& a = column_left_ptr->get_data(); | 134 | 302 | auto& b = column_right_ptr->get_data(); | 135 | 302 | auto& c = column_result->get_data(); | 136 | 302 | 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 | 302 | return column_result; | 141 | 302 | } |
_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 | 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_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 | 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_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 | 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_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.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.7k | c[i] = Impl::apply(a[i], b[i]); | 139 | 19.7k | } | 140 | 3.23k | return column_result; | 141 | 3.23k | } |
_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 | 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 |