From 195d27f053afb15b95e9395840430cec39282ab1 Mon Sep 17 00:00:00 2001 From: yoruet <1559650411@qq.com> Date: Sun, 13 Oct 2024 13:39:02 +0800 Subject: [PATCH] fix bug in bitmap_count --- be/src/vec/functions/function_bitmap.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/be/src/vec/functions/function_bitmap.cpp b/be/src/vec/functions/function_bitmap.cpp index ad47b04532f4ce..f96559899f4c9b 100644 --- a/be/src/vec/functions/function_bitmap.cpp +++ b/be/src/vec/functions/function_bitmap.cpp @@ -494,7 +494,7 @@ class FunctionBitmapCount : public IFunction { size_t get_number_of_arguments() const override { return 1; } - bool use_default_implementation_for_nulls() const override { return true; } + bool use_default_implementation_for_nulls() const override { return false; } Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, size_t result, size_t input_rows_count) const override { @@ -506,7 +506,10 @@ class FunctionBitmapCount : public IFunction { auto column = block.get_by_position(arguments[0]).column; auto str_col = assert_cast(column.get()); const auto& col_data = str_col->get_data(); - + if (auto* nullable = check_and_get_column(*column)) { + VectorizedUtils::update_null_map(null_map, nullable->get_null_map_data()); + column = nullable->get_nested_column_ptr(); + } res.reserve(input_rows_count); for (size_t i = 0; i < input_rows_count; ++i) { if (null_map[i]) {