[CP] [OBCDC] Support heap table for OB4.x mark part_key or dep_col of part_key as primary_key

This commit is contained in:
SanmuWangZJU
2023-04-24 08:11:42 +00:00
committed by ob-robot
parent a58de12030
commit 229db2bb7b
16 changed files with 374 additions and 120 deletions

View File

@ -139,7 +139,7 @@ TEST(ObDataDictStorage, test_storage_in_palf)
} else {
DDLOG(ERROR, "next_dict_header failed", KR(ret), K(header));
}
} else if (OB_FAIL(iterator.next_dict_entry(tb_meta_after))) {
} else if (OB_FAIL(iterator.next_dict_entry(header, tb_meta_after))) {
DDLOG(ERROR, "next_dict_entry failed", KR(ret), K(header));
} else {
EXPECT_TRUE(*tb_meta == tb_meta_after);
@ -202,7 +202,7 @@ TEST(ObDataDictStorage, test_storage_in_dict)
} else {
DDLOG(ERROR, "next_dict_header failed", KR(ret), K(header));
}
} else if (OB_FAIL(iterator.next_dict_entry(tb_meta_after))) {
} else if (OB_FAIL(iterator.next_dict_entry(header, tb_meta_after))) {
DDLOG(ERROR, "next_dict_entry failed", KR(ret), K(header));
} else {
EXPECT_TRUE(*tb_meta == tb_meta_after);

View File

@ -62,6 +62,7 @@ TEST(ObDictTenantMeta, test_raw)
ObArenaAllocator allocator;
ObArenaAllocator allocator_for_deserialize;
ObDictTenantMeta tenant_meta(&allocator);
ObDictMetaHeader header(ObDictMetaType::TENANT_META);
tenant_meta.tenant_id_ = 1001;
tenant_meta.schema_version_=100003124341;
tenant_meta.tenant_name_ = "md_tenant";
@ -82,7 +83,7 @@ TEST(ObDictTenantMeta, test_raw)
ObDictTenantMeta tenant_meta_after(&allocator_for_deserialize);
int64_t deserialize_pos = 0;
EXPECT_EQ(OB_SUCCESS, tenant_meta_after.deserialize(buf, serialize_size, deserialize_pos));
EXPECT_EQ(OB_SUCCESS, tenant_meta_after.deserialize(header, buf, serialize_size, deserialize_pos));
DDLOG(INFO, "deserialized_meta", K(deserialize_pos), K(tenant_meta_after));
ob_free(buf);
@ -101,6 +102,7 @@ TEST(ObDictDatabaseMeta, test_raw)
ObArenaAllocator allocator;
ObArenaAllocator allocator_for_deserialize;
ObDictDatabaseMeta db_meta(&allocator);
ObDictMetaHeader header(ObDictMetaType::DATABASE_META);
db_meta.database_id_ = 1003030501;
db_meta.tenant_id_ = 23412;
db_meta.schema_version_ = 790134621334;
@ -119,7 +121,7 @@ TEST(ObDictDatabaseMeta, test_raw)
ObDictDatabaseMeta db_meta_after(&allocator_for_deserialize);
int64_t deserialize_pos = 0;
EXPECT_EQ(OB_SUCCESS, db_meta_after.deserialize(buf, serialize_size, deserialize_pos));
EXPECT_EQ(OB_SUCCESS, db_meta_after.deserialize(header, buf, serialize_size, deserialize_pos));
DDLOG(INFO, "deserialized_meta", K(deserialize_pos), K(db_meta_after));
ob_free(buf);
@ -143,6 +145,7 @@ TEST(ObDictColumnMeta, test_raw)
ObArenaAllocator allocator_for_deserialize;
DictTableMetaBuilder meta_builder;
ObDictColumnMeta col_meta(&allocator);
ObDictMetaHeader header(ObDictMetaType::TABLE_META);
meta_builder.build_column_meta(&col_meta);
DDLOG(INFO, "build_column_meta", K(col_meta));
@ -154,7 +157,7 @@ TEST(ObDictColumnMeta, test_raw)
ObDictColumnMeta col_meta_after(&allocator_for_deserialize);
int64_t deserialize_pos = 0;
EXPECT_EQ(OB_SUCCESS, col_meta_after.deserialize(buf, serialize_size, deserialize_pos));
EXPECT_EQ(OB_SUCCESS, col_meta_after.deserialize(header, buf, serialize_size, deserialize_pos));
DDLOG(INFO, "deserialized_meta", K(deserialize_pos), K(col_meta_after));
ob_free(buf);
@ -220,6 +223,7 @@ TEST(ObDictTableMeta, test_raw)
ObArenaAllocator allocator_for_deserialize;
DictTableMetaBuilder meta_builder;
ObDictTableMeta *tb_meta;
ObDictMetaHeader header(ObDictMetaType::TABLE_META);
const int64_t col_count = 4000;
const int64_t rowkey_count = 57;
const int64_t index_column_count = 1235;
@ -237,7 +241,7 @@ TEST(ObDictTableMeta, test_raw)
ObDictTableMeta tb_meta_after(&allocator_for_deserialize);
int64_t deserialize_pos = 0;
EXPECT_EQ(OB_SUCCESS, tb_meta_after.deserialize(buf, serialize_size, deserialize_pos));
EXPECT_EQ(OB_SUCCESS, tb_meta_after.deserialize(header, buf, serialize_size, deserialize_pos));
DDLOG(INFO, "deserialized_meta", K(deserialize_pos), K(tb_meta_after));
ob_free(buf);

View File

@ -318,12 +318,57 @@ TEST(utils, cstring_to_num)
EXPECT_EQ(OB_INVALID_ARGUMENT, ret);
}
TEST(utils, unique_arr_uint64)
{
auto fn = [](uint64_t &a, uint64_t &b) { return a < b; };
ObArray<uint64_t> arr;
EXPECT_EQ(OB_SUCCESS, arr.push_back(0));
EXPECT_EQ(OB_SUCCESS, arr.push_back(2));
EXPECT_EQ(OB_SUCCESS, arr.push_back(1));
EXPECT_EQ(OB_SUCCESS, arr.push_back(3));
EXPECT_EQ(OB_SUCCESS, arr.push_back(1));
EXPECT_EQ(OB_SUCCESS, arr.push_back(2));
EXPECT_EQ(OB_SUCCESS, arr.push_back(3));
EXPECT_EQ(OB_SUCCESS, arr.push_back(2));
EXPECT_EQ(OB_SUCCESS, sort_and_unique_array(arr, fn));
EXPECT_EQ(4, arr.count());
EXPECT_EQ(0, arr.at(0));
EXPECT_EQ(1, arr.at(1));
EXPECT_EQ(2, arr.at(2));
EXPECT_EQ(3, arr.at(3));
}
TEST(utils, unique_arr_lsn)
{
auto fn = [](palf::LSN &a, palf::LSN &b) { return a < b; };
ObSEArray<palf::LSN, 8> arr;
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(0)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(2)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(1)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(3)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(1)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(2)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(3)));
EXPECT_EQ(OB_SUCCESS, arr.push_back(palf::LSN(2)));
EXPECT_EQ(OB_SUCCESS, sort_and_unique_array(arr, fn));
EXPECT_EQ(4, arr.count());
EXPECT_EQ(palf::LSN(0), arr.at(0));
EXPECT_EQ(palf::LSN(1), arr.at(1));
EXPECT_EQ(palf::LSN(2), arr.at(2));
EXPECT_EQ(palf::LSN(3), arr.at(3));
}
}
}
int main(int argc, char **argv)
{
// ObLogger::get_logger().set_mod_log_levels("ALL.*:DEBUG, TLOG.*:DEBUG");
system("rm -f test_log_utils.log");
ObLogger &logger = ObLogger::get_logger();
bool not_output_obcdc_log = true;
logger.set_file_name("test_log_utils.log", not_output_obcdc_log, false);
logger.set_log_level(OB_LOG_LEVEL_DEBUG);
logger.set_mod_log_levels("ALL.*:DEBUG");
logger.set_enable_async_log(false);
testing::InitGoogleTest(&argc,argv);
// testing::FLAGS_gtest_filter = "DO_NOT_RUN";
return RUN_ALL_TESTS();