[FEAT MERGE] Add roaringbitmap type and relative expr

Co-authored-by: fkuner <784819644@qq.com>
This commit is contained in:
qijiax
2024-06-21 09:46:20 +00:00
committed by ob-robot
parent 3723b0f580
commit 3bfa3e2070
149 changed files with 7389 additions and 222 deletions

View File

@ -347,7 +347,7 @@ int ObCSEncodingTestBase::check_decode_vector(ObMicroBlockCSDecoder &decoder,
}
} else if (vector_format == VEC_DISCRETE || vector_format == VEC_UNIFORM) {
VecValueTypeClass var_tc_arr[] = {VEC_TC_NUMBER, VEC_TC_EXTEND, VEC_TC_STRING, VEC_TC_ENUM_SET_INNER,
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT};
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT, VEC_TC_ROARINGBITMAP};
VecValueTypeClass *vec = std::find(std::begin(var_tc_arr), std::end(var_tc_arr), vec_tc);
if (vec == std::end(var_tc_arr)) {
need_test_column = false;
@ -355,7 +355,7 @@ int ObCSEncodingTestBase::check_decode_vector(ObMicroBlockCSDecoder &decoder,
} else if (vector_format == VEC_CONTINUOUS) {
/* can't test now
VecValueTypeClass var_tc_arr[] = {VEC_TC_NUMBER, VEC_TC_EXTEND, VEC_TC_STRING, VEC_TC_ENUM_SET_INNER,
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT};
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT, VEC_TC_ROARINGBITMAP};
VecValueTypeClass *vec = std::find(std::begin(var_tc_arr), std::end(var_tc_arr), vec_tc);
if (vec == std::end(var_tc_arr)) {
need_test_column = false;

View File

@ -2258,7 +2258,7 @@ bool VectorDecodeTestUtil::need_test_vec_with_type(
}
} else if (vector_format == VEC_DISCRETE) {
VecValueTypeClass var_tc_arr[] = {VEC_TC_NUMBER, VEC_TC_EXTEND, VEC_TC_STRING, VEC_TC_ENUM_SET_INNER,
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT};
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT, VEC_TC_ROARINGBITMAP};
VecValueTypeClass *vec = std::find(std::begin(var_tc_arr), std::end(var_tc_arr), vec_tc);
if (vec == std::end(var_tc_arr)) {
need_test_column = false;

View File

@ -732,7 +732,7 @@ void TestRawDecoder::test_batch_decode_to_vector(
}
} else if (vector_format == VEC_DISCRETE) {
VecValueTypeClass var_tc_arr[] = {VEC_TC_NUMBER, VEC_TC_EXTEND, VEC_TC_STRING, VEC_TC_ENUM_SET_INNER,
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT};
VEC_TC_RAW, VEC_TC_ROWID, VEC_TC_LOB, VEC_TC_JSON, VEC_TC_GEO, VEC_TC_UDT, VEC_TC_ROARINGBITMAP};
VecValueTypeClass *vec = std::find(std::begin(var_tc_arr), std::end(var_tc_arr), vec_tc);
if (vec == std::end(var_tc_arr)) {
need_test_column = false;

View File

@ -508,7 +508,8 @@ int ObRowGenerate::set_obj(const ObObjType &column_type,
case ObMediumTextType:
case ObLongTextType:
case ObJsonType:
case ObGeometryType: {
case ObGeometryType:
case ObRoaringBitmapType: {
ObLobCommon *value = NULL;
void *buf = NULL;
if (OB_ISNULL(buf = p_allocator_->alloc(sizeof(ObLobCommon) + 10))) {
@ -521,7 +522,7 @@ int ObRowGenerate::set_obj(const ObObjType &column_type,
if (column_type == ObTinyTextType) {
byte_size = 2;
}
obj.meta_.set_collation_type(column_type == ObGeometryType ? CS_TYPE_BINARY
obj.meta_.set_collation_type(column_type == (ObGeometryType || ObRoaringBitmapType) ? CS_TYPE_BINARY
:CS_TYPE_UTF8MB4_GENERAL_CI);
obj.meta_.set_collation_level(CS_LEVEL_IMPLICIT);
obj.set_type(column_type);
@ -771,7 +772,8 @@ int ObRowGenerate::compare_obj(const ObObjType &column_type, const int64_t value
case ObMediumTextType:
case ObLongTextType:
case ObJsonType:
case ObGeometryType: {
case ObGeometryType:
case ObRoaringBitmapType: {
break;
}
case ObBitType: {