[CodeFormat] Clang-format cpp sources (#4965)
Clang-format all c++ source files.
This commit is contained in:
@ -16,100 +16,100 @@
|
||||
// under the License.
|
||||
|
||||
#include "exprs/operators.h"
|
||||
#include "exprs/anyval_util.h"
|
||||
#include "runtime/string_value.h"
|
||||
#include "runtime/datetime_value.h"
|
||||
#include "util/debug_util.h"
|
||||
|
||||
#include <boost/cstdint.hpp>
|
||||
|
||||
#include "exprs/anyval_util.h"
|
||||
#include "runtime/datetime_value.h"
|
||||
#include "runtime/string_value.h"
|
||||
#include "util/debug_util.h"
|
||||
|
||||
namespace doris {
|
||||
|
||||
void Operators::init() {
|
||||
}
|
||||
void Operators::init() {}
|
||||
|
||||
#define BINARY_OP_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
TYPE Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(\
|
||||
FunctionContext* c, const TYPE& v1, const TYPE& v2) {\
|
||||
if (v1.is_null || v2.is_null) return TYPE::null();\
|
||||
return TYPE(v1.val OP v2.val);\
|
||||
}
|
||||
#define BINARY_OP_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
TYPE Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(FunctionContext* c, const TYPE& v1, \
|
||||
const TYPE& v2) { \
|
||||
if (v1.is_null || v2.is_null) return TYPE::null(); \
|
||||
return TYPE(v1.val OP v2.val); \
|
||||
}
|
||||
|
||||
#define BINARY_OP_CHECK_ZERO_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
TYPE Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(\
|
||||
FunctionContext* c, const TYPE& v1, const TYPE& v2) {\
|
||||
if (v1.is_null || v2.is_null || v2.val == 0) return TYPE::null();\
|
||||
return TYPE(v1.val OP v2.val);\
|
||||
}
|
||||
#define BINARY_OP_CHECK_ZERO_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
TYPE Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(FunctionContext* c, const TYPE& v1, \
|
||||
const TYPE& v2) { \
|
||||
if (v1.is_null || v2.is_null || v2.val == 0) return TYPE::null(); \
|
||||
return TYPE(v1.val OP v2.val); \
|
||||
}
|
||||
|
||||
#define BITNOT_FN(TYPE, TYPE_NAME)\
|
||||
TYPE Operators::bitnot_##TYPE_NAME(FunctionContext* c, const TYPE& v) {\
|
||||
if (v.is_null) return TYPE::null();\
|
||||
return TYPE(~v.val);\
|
||||
}
|
||||
#define BITNOT_FN(TYPE, TYPE_NAME) \
|
||||
TYPE Operators::bitnot_##TYPE_NAME(FunctionContext* c, const TYPE& v) { \
|
||||
if (v.is_null) return TYPE::null(); \
|
||||
return TYPE(~v.val); \
|
||||
}
|
||||
|
||||
// Return infinity if overflow.
|
||||
#define FACTORIAL_FN(TYPE)\
|
||||
BigIntVal Operators::Factorial_##TYPE(FunctionContext* c, const TYPE& v) {\
|
||||
if (v.is_null) return BigIntVal::null();\
|
||||
int64_t fact = ComputeFactorial(v.val); \
|
||||
if (fact < 0) { \
|
||||
return BigIntVal::null(); \
|
||||
} \
|
||||
return BigIntVal(fact); \
|
||||
}
|
||||
|
||||
#define BINARY_PREDICATE_NUMERIC_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
BooleanVal Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(\
|
||||
FunctionContext* c, const TYPE& v1, const TYPE& v2) {\
|
||||
if (v1.is_null || v2.is_null) return BooleanVal::null();\
|
||||
return BooleanVal(v1.val OP v2.val);\
|
||||
#define FACTORIAL_FN(TYPE) \
|
||||
BigIntVal Operators::Factorial_##TYPE(FunctionContext* c, const TYPE& v) { \
|
||||
if (v.is_null) return BigIntVal::null(); \
|
||||
int64_t fact = ComputeFactorial(v.val); \
|
||||
if (fact < 0) { \
|
||||
return BigIntVal::null(); \
|
||||
} \
|
||||
return BigIntVal(fact); \
|
||||
}
|
||||
|
||||
#define BINARY_PREDICATE_NONNUMERIC_FN(NAME, TYPE_NAME, FUNC_NAME, TYPE, DORIS_TYPE, OP) \
|
||||
BooleanVal Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(\
|
||||
FunctionContext* c, const TYPE& v1, const TYPE& v2) {\
|
||||
if (v1.is_null || v2.is_null) return BooleanVal::null();\
|
||||
DORIS_TYPE iv1 = DORIS_TYPE::from_##FUNC_NAME(v1);\
|
||||
DORIS_TYPE iv2 = DORIS_TYPE::from_##FUNC_NAME(v2);\
|
||||
return BooleanVal(iv1 OP iv2);\
|
||||
#define BINARY_PREDICATE_NUMERIC_FN(NAME, TYPE_NAME, TYPE, OP) \
|
||||
BooleanVal Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(FunctionContext* c, const TYPE& v1, \
|
||||
const TYPE& v2) { \
|
||||
if (v1.is_null || v2.is_null) return BooleanVal::null(); \
|
||||
return BooleanVal(v1.val OP v2.val); \
|
||||
}
|
||||
|
||||
#define BINARY_OP_NUMERIC_TYPES(NAME, OP) \
|
||||
BINARY_OP_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, small_int_val, SmallIntVal, OP);\
|
||||
BINARY_OP_FN(NAME, int_val, IntVal, OP);\
|
||||
BINARY_OP_FN(NAME, big_int_val, BigIntVal, OP);\
|
||||
BINARY_OP_FN(NAME, large_int_val, LargeIntVal, OP);\
|
||||
BINARY_OP_FN(NAME, float_val, FloatVal, OP);\
|
||||
#define BINARY_PREDICATE_NONNUMERIC_FN(NAME, TYPE_NAME, FUNC_NAME, TYPE, DORIS_TYPE, OP) \
|
||||
BooleanVal Operators::NAME##_##TYPE_NAME##_##TYPE_NAME(FunctionContext* c, const TYPE& v1, \
|
||||
const TYPE& v2) { \
|
||||
if (v1.is_null || v2.is_null) return BooleanVal::null(); \
|
||||
DORIS_TYPE iv1 = DORIS_TYPE::from_##FUNC_NAME(v1); \
|
||||
DORIS_TYPE iv2 = DORIS_TYPE::from_##FUNC_NAME(v2); \
|
||||
return BooleanVal(iv1 OP iv2); \
|
||||
}
|
||||
|
||||
#define BINARY_OP_NUMERIC_TYPES(NAME, OP) \
|
||||
BINARY_OP_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, small_int_val, SmallIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, int_val, IntVal, OP); \
|
||||
BINARY_OP_FN(NAME, big_int_val, BigIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, large_int_val, LargeIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, float_val, FloatVal, OP); \
|
||||
BINARY_OP_FN(NAME, double_val, DoubleVal, OP);
|
||||
|
||||
#define BINARY_OP_INT_TYPES(NAME, OP) \
|
||||
BINARY_OP_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, small_int_val, SmallIntVal, OP);\
|
||||
BINARY_OP_FN(NAME, int_val, IntVal, OP);\
|
||||
BINARY_OP_FN(NAME, big_int_val, BigIntVal, OP);\
|
||||
BINARY_OP_FN(NAME, large_int_val, LargeIntVal, OP);\
|
||||
#define BINARY_OP_INT_TYPES(NAME, OP) \
|
||||
BINARY_OP_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, small_int_val, SmallIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, int_val, IntVal, OP); \
|
||||
BINARY_OP_FN(NAME, big_int_val, BigIntVal, OP); \
|
||||
BINARY_OP_FN(NAME, large_int_val, LargeIntVal, OP);
|
||||
|
||||
#define BINARY_OP_CHECK_ZERO_INT_TYPES(NAME, OP) \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, small_int_val, SmallIntVal, OP);\
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, int_val, IntVal, OP);\
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, big_int_val, BigIntVal, OP);\
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, large_int_val, LargeIntVal, OP);\
|
||||
#define BINARY_OP_CHECK_ZERO_INT_TYPES(NAME, OP) \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, small_int_val, SmallIntVal, OP); \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, int_val, IntVal, OP); \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, big_int_val, BigIntVal, OP); \
|
||||
BINARY_OP_CHECK_ZERO_FN(NAME, large_int_val, LargeIntVal, OP);
|
||||
|
||||
#define BINARY_PREDICATE_ALL_TYPES(NAME, OP) \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, boolean_val, BooleanVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, small_int_val, SmallIntVal, OP);\
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, int_val, IntVal, OP);\
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, big_int_val, BigIntVal, OP);\
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, large_int_val, LargeIntVal, OP);\
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, float_val, FloatVal, OP);\
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, double_val, DoubleVal, OP);\
|
||||
BINARY_PREDICATE_NONNUMERIC_FN(NAME, string_val, string_val, StringVal, StringValue, OP);\
|
||||
BINARY_PREDICATE_NONNUMERIC_FN(\
|
||||
NAME, datetime_val, datetime_val, DateTimeVal, DateTimeValue, OP);
|
||||
#define BINARY_PREDICATE_ALL_TYPES(NAME, OP) \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, boolean_val, BooleanVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, tiny_int_val, TinyIntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, small_int_val, SmallIntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, int_val, IntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, big_int_val, BigIntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, large_int_val, LargeIntVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, float_val, FloatVal, OP); \
|
||||
BINARY_PREDICATE_NUMERIC_FN(NAME, double_val, DoubleVal, OP); \
|
||||
BINARY_PREDICATE_NONNUMERIC_FN(NAME, string_val, string_val, StringVal, StringValue, OP); \
|
||||
BINARY_PREDICATE_NONNUMERIC_FN(NAME, datetime_val, datetime_val, DateTimeVal, DateTimeValue, \
|
||||
OP);
|
||||
|
||||
BINARY_OP_NUMERIC_TYPES(add, +);
|
||||
BINARY_OP_NUMERIC_TYPES(subtract, -);
|
||||
@ -182,4 +182,3 @@ BINARY_PREDICATE_ALL_TYPES(lt, <);
|
||||
BINARY_PREDICATE_ALL_TYPES(ge, >=);
|
||||
BINARY_PREDICATE_ALL_TYPES(le, <=);
|
||||
} // namespace doris
|
||||
|
||||
|
||||
Reference in New Issue
Block a user