[Function] Add BE udf bitmap_not (#5346) (#5357)

this function will return the not result of inputs two bitmap.
This commit is contained in:
HappenLee
2021-02-07 22:39:17 +08:00
committed by GitHub
parent fd81499fbc
commit a1808c1a71
9 changed files with 216 additions and 0 deletions

View File

@ -497,6 +497,25 @@ StringVal BitmapFunctions::bitmap_xor(FunctionContext* ctx, const StringVal& lhs
return serialize(ctx, &bitmap);
}
StringVal BitmapFunctions::bitmap_not(FunctionContext* ctx, const StringVal& lhs,
const StringVal& rhs) {
if (lhs.is_null || rhs.is_null) {
return StringVal::null();
}
BitmapValue bitmap;
if (lhs.len == 0) {
bitmap |= *reinterpret_cast<BitmapValue*>(lhs.ptr);
} else {
bitmap |= BitmapValue((char*)lhs.ptr);
}
if (rhs.len == 0) {
bitmap -= *reinterpret_cast<BitmapValue*>(rhs.ptr);
} else {
bitmap -= BitmapValue((char*)rhs.ptr);
}
return serialize(ctx, &bitmap);
}
StringVal BitmapFunctions::bitmap_to_string(FunctionContext* ctx, const StringVal& input) {
if (input.is_null) {