[FEAT MERGE] Roaringbitmap type phase-2, performance optimization

This commit is contained in:
qijiax
2024-08-28 03:45:02 +00:00
committed by ob-robot
parent e7cd603e19
commit c76fda0bef
25 changed files with 1958 additions and 770 deletions

View File

@ -113,7 +113,7 @@ TEST_F(TestRoaringBitmap, serialize_deserialize)
}
ObString bin_bitmap;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_bitmap, rb));
ASSERT_EQ(ObRbBinType::BITMAP_32, static_cast<ObRbBinType>(*(bin_bitmap.ptr() + 1)));
ASSERT_EQ(ObRbBinType::BITMAP_64, static_cast<ObRbBinType>(*(bin_bitmap.ptr() + 1)));
ObRoaringBitmap *rb_bitmap;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, bin_bitmap, rb_bitmap));
ASSERT_EQ(rb->get_version(), rb_bitmap->get_version());
@ -267,7 +267,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_empty, rb));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_empty, roaring_bin_empty));
ObRbBinType bin_type_empty;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_empty, bin_type_empty));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_empty, bin_type_empty));
ASSERT_EQ(ObRbBinType::BITMAP_32, bin_type_empty);
ObRoaringBitmap *rb_roaring_empty;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_empty, rb_roaring_empty));
@ -282,7 +282,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_single, rb));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_single, roaring_bin_single));
ObRbBinType bin_type_single;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_single, bin_type_single));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_single, bin_type_single));
ASSERT_EQ(ObRbBinType::BITMAP_32, bin_type_single);
ObRoaringBitmap *rb_roaring_single;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_single, rb_roaring_single));
@ -298,7 +298,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_set, rb));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_set, roaring_bin_set));
ObRbBinType bin_type_set;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_set, bin_type_set));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_set, bin_type_set));
ASSERT_EQ(ObRbBinType::BITMAP_32, bin_type_set);
ObRoaringBitmap *rb_roaring_set;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_set, rb_roaring_set));
@ -317,7 +317,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_bitmap, rb));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_bitmap, roaring_bin_bitmap));
ObRbBinType bin_type_bitmap;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_bitmap, bin_type_bitmap));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_bitmap, bin_type_bitmap));
ASSERT_EQ(ObRbBinType::BITMAP_32, bin_type_bitmap);
ObRoaringBitmap *rb_roaring_bitmap;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_bitmap, rb_roaring_bitmap));
@ -335,7 +335,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_single64, rb64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_single64, roaring_bin_single64));
ObRbBinType bin_type_single64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_single64, bin_type_single64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_single64, bin_type_single64));
ASSERT_EQ(ObRbBinType::BITMAP_64, bin_type_single64);
ObRoaringBitmap *rb_roaring_single64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_single64, rb_roaring_single64));
@ -351,7 +351,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_set64, rb64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_set64, roaring_bin_set64));
ObRbBinType bin_type_set64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_set64, bin_type_set64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_set64, bin_type_set64));
ASSERT_EQ(ObRbBinType::BITMAP_64, bin_type_set64);
ObRoaringBitmap *rb_roaring_set64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_set64, rb_roaring_set64));
@ -370,7 +370,7 @@ TEST_F(TestRoaringBitmap, to_roaring_bin)
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_serialize(allocator, bin_bitmap64, rb64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::binary_format_convert(allocator, bin_bitmap64, roaring_bin_bitmap64));
ObRbBinType bin_type_bitmap64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::check_get_bin_type(roaring_bin_bitmap64, bin_type_bitmap64));
ASSERT_EQ(OB_SUCCESS, ObRbUtils::get_bin_type(roaring_bin_bitmap64, bin_type_bitmap64));
ASSERT_EQ(ObRbBinType::BITMAP_64, bin_type_bitmap64);
ObRoaringBitmap *rb_roaring_bitmap64;
ASSERT_EQ(OB_SUCCESS, ObRbUtils::rb_deserialize(allocator, roaring_bin_bitmap64, rb_roaring_bitmap64));