[CP] to issue<2024090400104374409>:fix persistent routine evict issue

This commit is contained in:
hanr881 2024-10-12 05:01:56 +00:00 committed by ob-robot
parent 5e6f99659c
commit d62e5551f8
26 changed files with 1543 additions and 64 deletions

View File

@ -18,6 +18,7 @@
#include "observer/ob_inner_sql_result.h"
#include "ob_pl_code_generator.h"
#include "ob_pl_compile.h"
#include "share/ob_version.h"
namespace oceanbase
{
@ -310,11 +311,15 @@ int ObRoutinePersistentInfo::gen_routine_storage_dml(const uint64_t exec_tenant_
const ObString &binary)
{
int ret = OB_SUCCESS;
char build_version[common::OB_SERVER_VERSION_LENGTH] = {'\0'};
if (OB_FAIL(dml.add_pk_column("database_id", database_id_))
if (OB_FAIL(get_package_and_svn(build_version, sizeof(build_version)))) {
LOG_WARN("fail to get build_version", KR(ret));
} else if (OB_FAIL(dml.add_pk_column("database_id", database_id_))
|| OB_FAIL(dml.add_pk_column("key_id", key_id_))
|| OB_FAIL(dml.add_pk_column("compile_db_id", compile_db_id_))
|| OB_FAIL(dml.add_pk_column("arch_type", arch_type_))
|| OB_FAIL(dml.add_pk_column("build_version", build_version))
|| OB_FAIL(dml.add_column("merge_version", merge_version))
|| OB_FAIL(dml.add_column("dll", ObHexEscapeSqlStr(binary)))) {
LOG_WARN("add column failed", K(ret));
@ -387,8 +392,8 @@ int ObRoutinePersistentInfo::read_dll_from_disk(ObSQLSessionInfo *session_info,
uint64_t data_version = 0;
if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id_, data_version))) {
LOG_WARN("failed to get data version", K(ret));
} else if (!((GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_2_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_1_0) ||
!((data_version >= DATA_VERSION_4_2_2_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_1_0)) {
} else if (!((GET_MIN_CLUSTER_VERSION() >= MOCK_CLUSTER_VERSION_4_2_5_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_4_0) ||
!((data_version >= MOCK_DATA_VERSION_4_2_5_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_4_0)) {
// do nothing
} else {
uint64_t action = 0;
@ -397,6 +402,7 @@ int ObRoutinePersistentInfo::read_dll_from_disk(ObSQLSessionInfo *session_info,
ObSqlString query_inner_sql;
ObString binary;
int64_t merge_version;
char build_version[common::OB_SERVER_VERSION_LENGTH] = {'\0'};
if (OB_ISNULL(session_info)) {
ret = OB_INVALID_ARGUMENT;
@ -404,9 +410,12 @@ int ObRoutinePersistentInfo::read_dll_from_disk(ObSQLSessionInfo *session_info,
} else if (OB_ISNULL(sql_proxy = GCTX.sql_proxy_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("sql proxy must not null", K(ret), KP(GCTX.sql_proxy_));
} else if (OB_FAIL(get_package_and_svn(build_version, sizeof(build_version)))) {
LOG_WARN("fail to get build_version", K(ret));
} else if (OB_FAIL(query_inner_sql.assign_fmt(
"select merge_version, dll from OCEANBASE.%s where database_id = %ld and key_id = %ld and compile_db_id = %ld and arch_type = %d",
OB_ALL_NCOMP_DLL_TNAME, database_id_, key_id_, compile_db_id_, arch_type_))) {
"select merge_version, dll from OCEANBASE.%s where database_id = %ld and key_id = %ld "
"and compile_db_id = %ld and arch_type = '%s' and build_version = '%s'",
OB_ALL_NCOMP_DLL_V2_TNAME, database_id_, key_id_, compile_db_id_, arch_type_.ptr(), build_version))) {
LOG_WARN("assign format failed", K(ret));
} else {
SMART_VAR(ObMySQLProxy::MySQLResult, result) {
@ -495,11 +504,11 @@ int ObRoutinePersistentInfo::insert_or_update_dll_to_disk(schema::ObSchemaGetter
ObDMLExecHelper exec(*sql_proxy, exec_tenant_id);
int64_t affected_rows = 0;
if (ObPLOperation::UPDATE == op) {
if (OB_FAIL(exec.exec_update(OB_ALL_NCOMP_DLL_TNAME, dml, affected_rows))) {
if (OB_FAIL(exec.exec_update(OB_ALL_NCOMP_DLL_V2_TNAME, dml, affected_rows))) {
LOG_WARN("execute update failed", K(ret));
}
} else {
if (OB_FAIL(exec.exec_insert(OB_ALL_NCOMP_DLL_TNAME, dml, affected_rows))) {
if (OB_FAIL(exec.exec_insert(OB_ALL_NCOMP_DLL_V2_TNAME, dml, affected_rows))) {
LOG_WARN("execute insert failed", K(ret));
}
}
@ -527,8 +536,8 @@ int ObRoutinePersistentInfo::process_storage_dll(ObIAllocator &alloc,
uint64_t data_version = 0;
if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id_, data_version))) {
LOG_WARN("failed to get data version", K(ret));
} else if (!((GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_2_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_1_0) ||
!((data_version >= DATA_VERSION_4_2_2_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_1_0)) {
} else if (!((GET_MIN_CLUSTER_VERSION() >= MOCK_CLUSTER_VERSION_4_2_5_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_4_0) ||
!((data_version >= MOCK_DATA_VERSION_4_2_5_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_4_0)) {
// do nothing
} else if (!MTL_TENANT_ROLE_CACHE_IS_PRIMARY()) {
// do nothing
@ -572,8 +581,8 @@ int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
ObMySQLProxy *sql_proxy = nullptr;
if (OB_FAIL(GET_MIN_DATA_VERSION(tenant_id, data_version))) {
LOG_WARN("failed to get data version", K(ret));
} else if (!((GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_2_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_1_0) ||
!((data_version >= DATA_VERSION_4_2_2_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_1_0)) {
} else if (!((GET_MIN_CLUSTER_VERSION() >= MOCK_CLUSTER_VERSION_4_2_5_0 && GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_3_0_0) || GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_3_4_0) ||
!((data_version >= MOCK_DATA_VERSION_4_2_5_0 && data_version < DATA_VERSION_4_3_0_0) || data_version >= DATA_VERSION_4_3_4_0)) {
// do nothing
} else if (OB_ISNULL(sql_proxy = GCTX.sql_proxy_)) {
ret = OB_ERR_UNEXPECTED;
@ -593,7 +602,7 @@ int ObRoutinePersistentInfo::delete_dll_from_disk(common::ObISQLClient &trans,
if (OB_INVALID_ID == key_id) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected key id.", K(ret));
} else if (OB_FAIL(sql.assign_fmt("delete FROM %s where database_id = %ld and key_id = %ld", OB_ALL_NCOMP_DLL_TNAME, database_id, key_id))) {
} else if (OB_FAIL(sql.assign_fmt("delete FROM %s where database_id = %ld and key_id = %ld", OB_ALL_NCOMP_DLL_V2_TNAME, database_id, key_id))) {
LOG_WARN("delete from __all_ncomp_dll table failed.", K(ret), K(key_id));
} else {
if (OB_FAIL(trans.write(exec_tenant_id, sql.ptr(), affected_rows))) {

View File

@ -10,6 +10,12 @@
* See the Mulan PubL v2 for more details.
*/
#ifdef ARCH_DEF
ARCH_DEF(OB_X86_ARCH_TYPE, "X86")
ARCH_DEF(OB_ARM_ARCH_TYPE, "ARM")
#endif
#ifndef OCEANBASE_PL_ROUTINE_STORAGE_H_
#define OCEANBASE_PL_ROUTINE_STORAGE_H_
@ -39,8 +45,17 @@ namespace pl
enum ObPLArchType
{
OB_INVALID_ARCH_TYPE = -1,
OB_X86_ARCH_TYPE,
OB_ARM_ARCH_TYPE,
#define ARCH_DEF(type, name) type,
#include "pl/ob_pl_persistent.h"
#undef ARCH_DEF
ARCH_TYPE_IDX_NUM
};
static constexpr const char* ARCH_TYPE_DEF[ARCH_TYPE_IDX_NUM] =
{
#define ARCH_DEF(type, name) name,
#include "pl/ob_pl_persistent.h"
#undef ARCH_DEF
};
class ObRoutinePersistentInfo
@ -60,9 +75,9 @@ public:
compile_db_id_(OB_INVALID_ID),
key_id_(OB_INVALID_ID),
#if defined(__aarch64__)
arch_type_(ObPLArchType::OB_ARM_ARCH_TYPE),
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_ARM_ARCH_TYPE]),
#else
arch_type_(ObPLArchType::OB_X86_ARCH_TYPE),
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_X86_ARCH_TYPE]),
#endif
allocator_(ObMemAttr(MTL_ID() == OB_INVALID_TENANT_ID ? OB_SYS_TENANT_ID : MTL_ID(), GET_PL_MOD_STRING(OB_PL_JIT)))
{}
@ -75,9 +90,9 @@ public:
compile_db_id_(compile_db_id),
key_id_(key_id),
#if defined(__aarch64__)
arch_type_(ObPLArchType::OB_ARM_ARCH_TYPE),
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_ARM_ARCH_TYPE]),
#else
arch_type_(ObPLArchType::OB_X86_ARCH_TYPE),
arch_type_(ARCH_TYPE_DEF[ObPLArchType::OB_X86_ARCH_TYPE]),
#endif
allocator_(ObMemAttr(tenant_id_, GET_PL_MOD_STRING(OB_PL_JIT)))
{}
@ -141,7 +156,7 @@ private:
uint64_t database_id_;
uint64_t compile_db_id_;
uint64_t key_id_;
ObPLArchType arch_type_;
ObString arch_type_;
ObArenaAllocator allocator_;
};

View File

@ -1058,6 +1058,27 @@ int ObUpgradeExecutor::run_upgrade_all_post_action_(
return ret;
}
int ObUpgradeExecutor::run_upgrade_processor_(const uint64_t tenant_id,
ObBaseUpgradeProcessor *processor, int64_t &version)
{
int ret = OB_SUCCESS;
if (OB_FAIL(check_inner_stat_())) {
LOG_WARN("fail to check inner stat", KR(ret));
} else if (OB_ISNULL(processor) || !is_valid_tenant_id(tenant_id)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("invalid arguments", KR(ret), KP(processor), K(tenant_id));
} else {
processor->set_tenant_id(tenant_id);
version = processor->get_version();
if (OB_FAIL(check_schema_sync_(tenant_id))) {
LOG_WARN("fail to check schema sync", KR(ret), K(tenant_id));
} else if (OB_FAIL(processor->post_upgrade())) {
LOG_WARN("run post upgrade by version failed", KR(ret), K(tenant_id), KDV(version));
}
}
return ret;
}
int ObUpgradeExecutor::run_upgrade_all_post_action_(
const uint64_t tenant_id)
{
@ -1071,6 +1092,8 @@ int ObUpgradeExecutor::run_upgrade_all_post_action_(
int64_t start_idx = OB_INVALID_INDEX;
int64_t end_idx = OB_INVALID_INDEX;
ObGlobalStatProxy proxy(*sql_proxy_, tenant_id);
int64_t version = OB_INVALID_VERSION;
ObBaseUpgradeProcessor *processor = NULL;
if (OB_FAIL(proxy.get_current_data_version(current_data_version))) {
LOG_WARN("fail to get current data version",
KR(ret), K(tenant_id), KDV(current_data_version));
@ -1083,19 +1106,15 @@ int ObUpgradeExecutor::run_upgrade_all_post_action_(
start_idx, end_idx))) {
LOG_WARN("fail to get processor by version", KR(ret), KDV(current_data_version));
}
int64_t version = OB_INVALID_VERSION;
for (int64_t i = start_idx + 1; OB_SUCC(ret) && i <= end_idx; i++) {
ObBaseUpgradeProcessor *processor = NULL;
processor = NULL;
version = OB_INVALID_VERSION;
if (OB_FAIL(check_stop())) {
LOG_WARN("executor should stopped", KR(ret));
} else if (OB_FAIL(upgrade_processors_.get_processor_by_idx(i, processor))) {
LOG_WARN("fail to get processor", KR(ret), K(current_data_version), K(i));
} else if (FALSE_IT(version = processor->get_version())) {
} else if (FALSE_IT(processor->set_tenant_id(tenant_id))) {
} else if (OB_FAIL(check_schema_sync_(tenant_id))) {
LOG_WARN("fail to check schema sync", KR(ret), K(tenant_id));
} else if (OB_FAIL(processor->post_upgrade())) {
LOG_WARN("run post upgrade by version failed", KR(ret), K(tenant_id), KDV(version));
LOG_WARN("fail to get processor", KR(ret), KDV(current_data_version), K(i));
} else if (OB_FAIL(run_upgrade_processor_(tenant_id, processor, version))) {
LOG_WARN("failed to run upgrade processor", KR(ret), K(tenant_id), KDV(version));
} else if (OB_FAIL(check_schema_sync_(tenant_id))) {
LOG_WARN("fail to check schema sync", KR(ret), K(tenant_id));
} else if (i < end_idx) {
@ -1106,6 +1125,14 @@ int ObUpgradeExecutor::run_upgrade_all_post_action_(
LOG_WARN("fail to update final current data version", KR(ret), K(tenant_id), KDV(version));
}
} // end for
// finish to run processor for each version, begin to run processor for all version
processor = NULL;
version = OB_INVALID_VERSION;
if (FAILEDx(upgrade_processors_.get_all_version_processor(processor))) {
LOG_WARN("failed to get all version processor", KR(ret));
} else if (OB_FAIL(run_upgrade_processor_(tenant_id, processor, version))) {
LOG_WARN("failed to run all version processor", KR(ret), K(tenant_id));
}
}
return ret;
}

View File

@ -114,6 +114,8 @@ private:
const uint64_t current_data_version,
const int64_t buf_len,
char *buf);
int run_upgrade_processor_(const uint64_t tenant_id,
share::ObBaseUpgradeProcessor *processor, int64_t &version);
private:
bool inited_;
bool stopped_;

View File

@ -579,6 +579,11 @@ ob_set_subtarget(ob_share balance
balance/ob_balance_task_helper_operator.cpp
balance/ob_transfer_partition_task_table_operator.cpp
)
ob_set_subtarget(ob_share ncomp_dll
ncomp_dll/ob_flush_ncomp_dll_task.cpp
)
ob_set_subtarget(ob_share resource_limit_calculator
resource_limit_calculator/ob_resource_commmon.cpp
resource_limit_calculator/ob_resource_limit_calculator.cpp

View File

@ -1110,7 +1110,7 @@ def replace_agent_table_columns_def(columns):
t = "otimestamp"
elif t == "otimestamp":
pass
elif t == "longtext":
elif t in ("longtext", "longblob"):
pass
elif t.startswith("varchar:") or t.startswith("varbinary:"):
if len(column) >= 4 and "false" == column[2] and "" == column[3]:

View File

@ -953,6 +953,203 @@ int ObInnerTableSchema::all_virtual_temp_file_schema(ObTableSchema &table_schema
return ret;
}
int ObInnerTableSchema::all_virtual_ncomp_dll_v2_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_NCOMP_DLL_V2_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(6);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_NCOMP_DLL_V2_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("tenant_id", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("database_id", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("key_id", //column_name
++column_id, //column_id
3, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("compile_db_id", //column_name
++column_id, //column_id
4, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("arch_type", //column_name
++column_id, //column_id
5, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
128, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("build_version", //column_name
++column_id, //column_id
6, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
OB_SERVER_VERSION_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_TS("gmt_create", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(ObPreciseDateTime), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
false); //is_on_update_for_timestamp
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA_TS("gmt_modified", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(ObPreciseDateTime), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
false); //is_on_update_for_timestamp
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("merge_version", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("dll", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_BINARY, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -3195,6 +3195,186 @@ int ObInnerTableSchema::all_virtual_temp_file_ora_schema(ObTableSchema &table_sc
return ret;
}
int ObInnerTableSchema::all_virtual_ncomp_dll_v2_real_agent_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(5);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCollationType::CS_TYPE_UTF8MB4_BIN);
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("DATABASE_ID", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("KEY_ID", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("COMPILE_DB_ID", //column_name
++column_id, //column_id
3, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("ARCH_TYPE", //column_name
++column_id, //column_id
4, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
128, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("BUILD_VERSION", //column_name
++column_id, //column_id
5, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
OB_SERVER_VERSION_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("MERGE_VERSION", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("DLL", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_BINARY, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("GMT_CREATE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampLTZType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("GMT_MODIFIED", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampLTZType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -3795,6 +3795,204 @@ int ObInnerTableSchema::all_scheduler_job_run_detail_v2_schema(ObTableSchema &ta
return ret;
}
int ObInnerTableSchema::all_ncomp_dll_v2_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_SYS_TABLEGROUP_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_NCOMP_DLL_V2_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(5);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_NCOMP_DLL_V2_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ObObj gmt_create_default;
ObObj gmt_create_default_null;
gmt_create_default.set_ext(ObActionFlag::OP_DEFAULT_NOW_FLAG);
gmt_create_default_null.set_null();
ADD_COLUMN_SCHEMA_TS_T("gmt_create", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampType, //column_type
CS_TYPE_BINARY,//collation_type
0, //column length
-1, //column_precision
6, //column_scale
true,//is nullable
false, //is_autoincrement
false, //is_on_update_for_timestamp
gmt_create_default_null,
gmt_create_default)
}
if (OB_SUCC(ret)) {
ObObj gmt_modified_default;
ObObj gmt_modified_default_null;
gmt_modified_default.set_ext(ObActionFlag::OP_DEFAULT_NOW_FLAG);
gmt_modified_default_null.set_null();
ADD_COLUMN_SCHEMA_TS_T("gmt_modified", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObTimestampType, //column_type
CS_TYPE_BINARY,//collation_type
0, //column length
-1, //column_precision
6, //column_scale
true,//is nullable
false, //is_autoincrement
true, //is_on_update_for_timestamp
gmt_modified_default_null,
gmt_modified_default)
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("database_id", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("key_id", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("compile_db_id", //column_name
++column_id, //column_id
3, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("arch_type", //column_name
++column_id, //column_id
4, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
128, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("build_version", //column_name
++column_id, //column_id
5, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
OB_SERVER_VERSION_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("merge_version", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("dll", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_BINARY, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(OB_ALL_NCOMP_DLL_V2_TID);
table_schema.set_micro_index_clustered(false);
table_schema.set_aux_lob_meta_tid(OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID);
table_schema.set_aux_lob_piece_tid(OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -2337,6 +2337,142 @@ int ObInnerTableSchema::all_scheduler_job_run_detail_v2_aux_lob_meta_schema(ObTa
return ret;
}
int ObInnerTableSchema::all_ncomp_dll_v2_aux_lob_meta_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_SYS_TABLEGROUP_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(2);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(AUX_LOB_META);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("lob_id", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
16, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("seq_id", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
8192, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("binary_len", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObUInt32Type, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(uint32_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("char_len", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObUInt32Type, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(uint32_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("piece_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObUInt64Type, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(uint64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("lob_data", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
262144, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID);
table_schema.set_micro_index_clustered(false);
table_schema.set_data_table_id(OB_ALL_NCOMP_DLL_V2_TID);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -1572,6 +1572,97 @@ int ObInnerTableSchema::all_scheduler_job_run_detail_v2_aux_lob_piece_schema(ObT
return ret;
}
int ObInnerTableSchema::all_ncomp_dll_v2_aux_lob_piece_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_SYS_TABLEGROUP_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(1);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(AUX_LOB_PIECE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("piece_id", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
0, //part_key_pos
ObUInt64Type, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(uint64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("data_len", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObUInt32Type, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(uint32_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("lob_data", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
32, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID);
table_schema.set_micro_index_clustered(false);
table_schema.set_data_table_id(OB_ALL_NCOMP_DLL_V2_TID);
table_schema.set_max_used_column_id(column_id);
return ret;
}
} // end namespace share
} // end namespace oceanbase

View File

@ -636,6 +636,7 @@ public:
static int all_storage_io_usage_schema(share::schema::ObTableSchema &table_schema);
static int all_mview_dep_schema(share::schema::ObTableSchema &table_schema);
static int all_scheduler_job_run_detail_v2_schema(share::schema::ObTableSchema &table_schema);
static int all_ncomp_dll_v2_schema(share::schema::ObTableSchema &table_schema);
static int tenant_virtual_all_table_schema(share::schema::ObTableSchema &table_schema);
static int tenant_virtual_table_column_schema(share::schema::ObTableSchema &table_schema);
static int tenant_virtual_table_index_schema(share::schema::ObTableSchema &table_schema);
@ -1110,6 +1111,7 @@ public:
static int all_virtual_kv_client_info_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_function_io_stat_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_temp_file_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ncomp_dll_v2_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_sql_audit_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_plan_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_plan_cache_plan_explain_ora_schema(share::schema::ObTableSchema &table_schema);
@ -1394,6 +1396,7 @@ public:
static int all_virtual_vector_index_info_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_function_io_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_temp_file_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ncomp_dll_v2_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_stat_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_plan_stat_schema(share::schema::ObTableSchema &table_schema);
static int schemata_schema(share::schema::ObTableSchema &table_schema);
@ -2670,6 +2673,7 @@ public:
static int all_storage_io_usage_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_mview_dep_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_scheduler_job_run_detail_v2_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_ncomp_dll_v2_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_table_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_column_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_ddl_operation_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
@ -2978,6 +2982,7 @@ public:
static int all_storage_io_usage_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_mview_dep_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_scheduler_job_run_detail_v2_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_ncomp_dll_v2_aux_lob_piece_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ash_all_virtual_ash_i1_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_sql_plan_monitor_all_virtual_sql_plan_monitor_i1_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_sql_audit_all_virtual_sql_audit_i1_schema(share::schema::ObTableSchema &table_schema);
@ -3507,6 +3512,7 @@ const schema_create_func sys_table_schema_creators [] = {
ObInnerTableSchema::all_storage_io_usage_schema,
ObInnerTableSchema::all_mview_dep_schema,
ObInnerTableSchema::all_scheduler_job_run_detail_v2_schema,
ObInnerTableSchema::all_ncomp_dll_v2_schema,
NULL,};
const schema_create_func virtual_table_schema_creators [] = {
@ -3984,6 +3990,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_kv_client_info_schema,
ObInnerTableSchema::all_virtual_function_io_stat_schema,
ObInnerTableSchema::all_virtual_temp_file_schema,
ObInnerTableSchema::all_virtual_ncomp_dll_v2_schema,
ObInnerTableSchema::all_virtual_ash_all_virtual_ash_i1_schema,
ObInnerTableSchema::all_virtual_sql_plan_monitor_all_virtual_sql_plan_monitor_i1_schema,
ObInnerTableSchema::all_virtual_sql_audit_all_virtual_sql_audit_i1_schema,
@ -4278,6 +4285,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_vector_index_info_ora_schema,
ObInnerTableSchema::all_virtual_function_io_stat_ora_schema,
ObInnerTableSchema::all_virtual_temp_file_ora_schema,
ObInnerTableSchema::all_virtual_ncomp_dll_v2_real_agent_ora_schema,
ObInnerTableSchema::all_virtual_table_real_agent_ora_idx_data_table_id_real_agent_schema,
ObInnerTableSchema::all_virtual_table_real_agent_ora_idx_db_tb_name_real_agent_schema,
ObInnerTableSchema::all_virtual_table_real_agent_ora_idx_tb_name_real_agent_schema,
@ -5743,6 +5751,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_STORAGE_IO_USAGE_TID,
OB_ALL_MVIEW_DEP_TID,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_TID,
OB_ALL_NCOMP_DLL_V2_TID,
OB_TENANT_VIRTUAL_ALL_TABLE_TID,
OB_TENANT_VIRTUAL_TABLE_COLUMN_TID,
OB_TENANT_VIRTUAL_TABLE_INDEX_TID,
@ -6283,6 +6292,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID,
OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID,
OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TID,
OB_GV_OB_PLAN_CACHE_STAT_TID,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID,
OB_SCHEMATA_TID,
@ -7583,6 +7593,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_STORAGE_IO_USAGE_AUX_LOB_META_TID,
OB_ALL_MVIEW_DEP_AUX_LOB_META_TID,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_META_TID,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID,
OB_ALL_TABLE_AUX_LOB_PIECE_TID,
OB_ALL_COLUMN_AUX_LOB_PIECE_TID,
OB_ALL_DDL_OPERATION_AUX_LOB_PIECE_TID,
@ -7864,7 +7875,8 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_SERVICE_AUX_LOB_PIECE_TID,
OB_ALL_STORAGE_IO_USAGE_AUX_LOB_PIECE_TID,
OB_ALL_MVIEW_DEP_AUX_LOB_PIECE_TID,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TID, };
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TID,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID, };
const uint64_t all_ora_mapping_virtual_table_org_tables [] = {
OB_ALL_VIRTUAL_SQL_AUDIT_TID,
@ -8475,6 +8487,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_STORAGE_IO_USAGE_TNAME,
OB_ALL_MVIEW_DEP_TNAME,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_TNAME,
OB_ALL_NCOMP_DLL_V2_TNAME,
OB_TENANT_VIRTUAL_ALL_TABLE_TNAME,
OB_TENANT_VIRTUAL_TABLE_COLUMN_TNAME,
OB_TENANT_VIRTUAL_TABLE_INDEX_TNAME,
@ -9015,6 +9028,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TNAME,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TNAME,
OB_ALL_VIRTUAL_TEMP_FILE_ORA_TNAME,
OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TNAME,
OB_GV_OB_PLAN_CACHE_STAT_TNAME,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME,
OB_SCHEMATA_TNAME,
@ -10315,6 +10329,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_STORAGE_IO_USAGE_AUX_LOB_META_TNAME,
OB_ALL_MVIEW_DEP_AUX_LOB_META_TNAME,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_META_TNAME,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TNAME,
OB_ALL_TABLE_AUX_LOB_PIECE_TNAME,
OB_ALL_COLUMN_AUX_LOB_PIECE_TNAME,
OB_ALL_DDL_OPERATION_AUX_LOB_PIECE_TNAME,
@ -10596,7 +10611,8 @@ const char* const tenant_space_table_names [] = {
OB_ALL_SERVICE_AUX_LOB_PIECE_TNAME,
OB_ALL_STORAGE_IO_USAGE_AUX_LOB_PIECE_TNAME,
OB_ALL_MVIEW_DEP_AUX_LOB_PIECE_TNAME,
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TNAME, };
OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TNAME,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TNAME, };
const uint64_t only_rs_vtables [] = {
OB_ALL_VIRTUAL_CORE_META_TABLE_TID,
@ -13597,6 +13613,14 @@ LOBMapping const lob_aux_table_mappings [] = {
ObInnerTableSchema::all_scheduler_job_run_detail_v2_aux_lob_piece_schema
},
{
OB_ALL_NCOMP_DLL_V2_TID,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID,
OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID,
ObInnerTableSchema::all_ncomp_dll_v2_aux_lob_meta_schema,
ObInnerTableSchema::all_ncomp_dll_v2_aux_lob_piece_schema
},
};
static inline bool get_sys_table_lob_aux_table_id(const uint64_t tid, uint64_t& meta_tid, uint64_t& piece_tid)
@ -13634,12 +13658,12 @@ static inline int get_sys_table_lob_aux_schema(const uint64_t tid,
}
const int64_t OB_CORE_TABLE_COUNT = 4;
const int64_t OB_SYS_TABLE_COUNT = 305;
const int64_t OB_VIRTUAL_TABLE_COUNT = 852;
const int64_t OB_SYS_TABLE_COUNT = 306;
const int64_t OB_VIRTUAL_TABLE_COUNT = 854;
const int64_t OB_SYS_VIEW_COUNT = 968;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 2130;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 2133;
const int64_t OB_CORE_SCHEMA_VERSION = 1;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 2133;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 2136;
} // end namespace share
} // end namespace oceanbase

View File

@ -21,7 +21,7 @@ inner_lob_map_t inner_lob_map;
bool lob_mapping_init()
{
int ret = OB_SUCCESS;
if (OB_FAIL(inner_lob_map.create(308, ObModIds::OB_INNER_LOB_HASH_SET))) {
if (OB_FAIL(inner_lob_map.create(309, ObModIds::OB_INNER_LOB_HASH_SET))) {
SERVER_LOG(WARN, "fail to create inner lob map", K(ret));
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < ARRAYSIZEOF(lob_aux_table_mappings); ++i) {

View File

@ -427,6 +427,13 @@ bool vt_mapping_init()
tmp_vt_mapping.is_real_vt_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_NCOMP_DLL_V2_TID;
tmp_vt_mapping.is_real_vt_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_OPTSTAT_GLOBAL_PREFS_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];

View File

@ -336,6 +336,7 @@ const uint64_t OB_ALL_SERVICE_TID = 516; // "__all_service"
const uint64_t OB_ALL_STORAGE_IO_USAGE_TID = 517; // "__all_storage_io_usage"
const uint64_t OB_ALL_MVIEW_DEP_TID = 518; // "__all_mview_dep"
const uint64_t OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_TID = 519; // "__all_scheduler_job_run_detail_v2"
const uint64_t OB_ALL_NCOMP_DLL_V2_TID = 528; // "__all_ncomp_dll_v2"
const uint64_t OB_TENANT_VIRTUAL_ALL_TABLE_TID = 10001; // "__tenant_virtual_all_table"
const uint64_t OB_TENANT_VIRTUAL_TABLE_COLUMN_TID = 10002; // "__tenant_virtual_table_column"
const uint64_t OB_TENANT_VIRTUAL_TABLE_INDEX_TID = 10003; // "__tenant_virtual_table_index"
@ -810,6 +811,7 @@ const uint64_t OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TID = 12496; // "__all_virtual_v
const uint64_t OB_ALL_VIRTUAL_KV_CLIENT_INFO_TID = 12500; // "__all_virtual_kv_client_info"
const uint64_t OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID = 12504; // "__all_virtual_function_io_stat"
const uint64_t OB_ALL_VIRTUAL_TEMP_FILE_TID = 12505; // "__all_virtual_temp_file"
const uint64_t OB_ALL_VIRTUAL_NCOMP_DLL_V2_TID = 12506; // "__all_virtual_ncomp_dll_v2"
const uint64_t OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID = 15009; // "ALL_VIRTUAL_SQL_AUDIT_ORA"
const uint64_t OB_ALL_VIRTUAL_PLAN_STAT_ORA_TID = 15010; // "ALL_VIRTUAL_PLAN_STAT_ORA"
const uint64_t OB_ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA_TID = 15012; // "ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA"
@ -1094,6 +1096,7 @@ const uint64_t OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID = 15462; // "ALL_VIRTU
const uint64_t OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID = 15467; // "ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA"
const uint64_t OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID = 15484; // "ALL_VIRTUAL_FUNCTION_IO_STAT_ORA"
const uint64_t OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID = 15485; // "ALL_VIRTUAL_TEMP_FILE_ORA"
const uint64_t OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TID = 15486; // "ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA"
const uint64_t OB_GV_OB_PLAN_CACHE_STAT_TID = 20001; // "GV$OB_PLAN_CACHE_STAT"
const uint64_t OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID = 20002; // "GV$OB_PLAN_CACHE_PLAN_STAT"
const uint64_t OB_SCHEMATA_TID = 20003; // "SCHEMATA"
@ -2370,6 +2373,7 @@ const uint64_t OB_ALL_SERVICE_AUX_LOB_META_TID = 50516; // "__all_service_aux_lo
const uint64_t OB_ALL_STORAGE_IO_USAGE_AUX_LOB_META_TID = 50517; // "__all_storage_io_usage_aux_lob_meta"
const uint64_t OB_ALL_MVIEW_DEP_AUX_LOB_META_TID = 50518; // "__all_mview_dep_aux_lob_meta"
const uint64_t OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_META_TID = 50519; // "__all_scheduler_job_run_detail_v2_aux_lob_meta"
const uint64_t OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TID = 50528; // "__all_ncomp_dll_v2_aux_lob_meta"
const uint64_t OB_ALL_TABLE_AUX_LOB_PIECE_TID = 60003; // "__all_table_aux_lob_piece"
const uint64_t OB_ALL_COLUMN_AUX_LOB_PIECE_TID = 60004; // "__all_column_aux_lob_piece"
const uint64_t OB_ALL_DDL_OPERATION_AUX_LOB_PIECE_TID = 60005; // "__all_ddl_operation_aux_lob_piece"
@ -2678,6 +2682,7 @@ const uint64_t OB_ALL_SERVICE_AUX_LOB_PIECE_TID = 60516; // "__all_service_aux_l
const uint64_t OB_ALL_STORAGE_IO_USAGE_AUX_LOB_PIECE_TID = 60517; // "__all_storage_io_usage_aux_lob_piece"
const uint64_t OB_ALL_MVIEW_DEP_AUX_LOB_PIECE_TID = 60518; // "__all_mview_dep_aux_lob_piece"
const uint64_t OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TID = 60519; // "__all_scheduler_job_run_detail_v2_aux_lob_piece"
const uint64_t OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TID = 60528; // "__all_ncomp_dll_v2_aux_lob_piece"
const uint64_t OB_ALL_VIRTUAL_PLAN_CACHE_STAT_ALL_VIRTUAL_PLAN_CACHE_STAT_I1_TID = 14999; // "__all_virtual_plan_cache_stat"
const uint64_t OB_ALL_VIRTUAL_SESSION_EVENT_ALL_VIRTUAL_SESSION_EVENT_I1_TID = 14998; // "__all_virtual_session_event"
const uint64_t OB_ALL_VIRTUAL_SESSION_WAIT_ALL_VIRTUAL_SESSION_WAIT_I1_TID = 14997; // "__all_virtual_session_wait"
@ -3194,6 +3199,7 @@ const char *const OB_ALL_SERVICE_TNAME = "__all_service";
const char *const OB_ALL_STORAGE_IO_USAGE_TNAME = "__all_storage_io_usage";
const char *const OB_ALL_MVIEW_DEP_TNAME = "__all_mview_dep";
const char *const OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_TNAME = "__all_scheduler_job_run_detail_v2";
const char *const OB_ALL_NCOMP_DLL_V2_TNAME = "__all_ncomp_dll_v2";
const char *const OB_TENANT_VIRTUAL_ALL_TABLE_TNAME = "__tenant_virtual_all_table";
const char *const OB_TENANT_VIRTUAL_TABLE_COLUMN_TNAME = "__tenant_virtual_table_column";
const char *const OB_TENANT_VIRTUAL_TABLE_INDEX_TNAME = "__tenant_virtual_table_index";
@ -3668,6 +3674,7 @@ const char *const OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TNAME = "__all_virtual_vector
const char *const OB_ALL_VIRTUAL_KV_CLIENT_INFO_TNAME = "__all_virtual_kv_client_info";
const char *const OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TNAME = "__all_virtual_function_io_stat";
const char *const OB_ALL_VIRTUAL_TEMP_FILE_TNAME = "__all_virtual_temp_file";
const char *const OB_ALL_VIRTUAL_NCOMP_DLL_V2_TNAME = "__all_virtual_ncomp_dll_v2";
const char *const OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TNAME = "ALL_VIRTUAL_SQL_AUDIT";
const char *const OB_ALL_VIRTUAL_PLAN_STAT_ORA_TNAME = "ALL_VIRTUAL_PLAN_STAT";
const char *const OB_ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN_ORA_TNAME = "ALL_VIRTUAL_PLAN_CACHE_PLAN_EXPLAIN";
@ -3952,6 +3959,7 @@ const char *const OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TNAME = "ALL_VIRTUAL_SS
const char *const OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TNAME = "ALL_VIRTUAL_VECTOR_INDEX_INFO";
const char *const OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TNAME = "ALL_VIRTUAL_FUNCTION_IO_STAT";
const char *const OB_ALL_VIRTUAL_TEMP_FILE_ORA_TNAME = "ALL_VIRTUAL_TEMP_FILE";
const char *const OB_ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT";
const char *const OB_GV_OB_PLAN_CACHE_STAT_TNAME = "GV$OB_PLAN_CACHE_STAT";
const char *const OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME = "GV$OB_PLAN_CACHE_PLAN_STAT";
const char *const OB_SCHEMATA_TNAME = "SCHEMATA";
@ -5228,6 +5236,7 @@ const char *const OB_ALL_SERVICE_AUX_LOB_META_TNAME = "__all_service_aux_lob_met
const char *const OB_ALL_STORAGE_IO_USAGE_AUX_LOB_META_TNAME = "__all_storage_io_usage_aux_lob_meta";
const char *const OB_ALL_MVIEW_DEP_AUX_LOB_META_TNAME = "__all_mview_dep_aux_lob_meta";
const char *const OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_META_TNAME = "__all_scheduler_job_run_detail_v2_aux_lob_meta";
const char *const OB_ALL_NCOMP_DLL_V2_AUX_LOB_META_TNAME = "__all_ncomp_dll_v2_aux_lob_meta";
const char *const OB_ALL_TABLE_AUX_LOB_PIECE_TNAME = "__all_table_aux_lob_piece";
const char *const OB_ALL_COLUMN_AUX_LOB_PIECE_TNAME = "__all_column_aux_lob_piece";
const char *const OB_ALL_DDL_OPERATION_AUX_LOB_PIECE_TNAME = "__all_ddl_operation_aux_lob_piece";
@ -5536,6 +5545,7 @@ const char *const OB_ALL_SERVICE_AUX_LOB_PIECE_TNAME = "__all_service_aux_lob_pi
const char *const OB_ALL_STORAGE_IO_USAGE_AUX_LOB_PIECE_TNAME = "__all_storage_io_usage_aux_lob_piece";
const char *const OB_ALL_MVIEW_DEP_AUX_LOB_PIECE_TNAME = "__all_mview_dep_aux_lob_piece";
const char *const OB_ALL_SCHEDULER_JOB_RUN_DETAIL_V2_AUX_LOB_PIECE_TNAME = "__all_scheduler_job_run_detail_v2_aux_lob_piece";
const char *const OB_ALL_NCOMP_DLL_V2_AUX_LOB_PIECE_TNAME = "__all_ncomp_dll_v2_aux_lob_piece";
const char *const OB_ALL_VIRTUAL_PLAN_CACHE_STAT_ALL_VIRTUAL_PLAN_CACHE_STAT_I1_TNAME = "__idx_11003_all_virtual_plan_cache_stat_i1";
const char *const OB_ALL_VIRTUAL_SESSION_EVENT_ALL_VIRTUAL_SESSION_EVENT_I1_TNAME = "__idx_11013_all_virtual_session_event_i1";
const char *const OB_ALL_VIRTUAL_SESSION_WAIT_ALL_VIRTUAL_SESSION_WAIT_I1_TNAME = "__idx_11014_all_virtual_session_wait_i1";

View File

@ -7517,7 +7517,28 @@ def_table_schema(
# 525: __wr_sql_plan
# 526: __wr_res_mgr_sysstat
# 527: __all_kv_redis_table
# 528: __all_ncomp_dll_v2
all_ncomp_dll_v2 = dict(
owner = 'hr351303',
table_name = '__all_ncomp_dll_v2',
table_id = '528',
table_type = 'SYSTEM_TABLE',
gm_columns = ['gmt_create', 'gmt_modified'],
rowkey_columns = [
('database_id', 'int', 'false'),
('key_id', 'int'),
('compile_db_id', 'int'),
('arch_type', 'varchar:128'),
('build_version', 'varchar:OB_SERVER_VERSION_LENGTH'),
],
in_tenant_space = True,
normal_columns = [
('merge_version', 'int'),
('dll', 'longblob', 'false'),
],
)
def_table_schema(**all_ncomp_dll_v2)
# 余留位置(此行之前占位)
# 本区域占位建议:采用真实表名进行占位
@ -15160,7 +15181,10 @@ def_table_schema(
vtable_route_policy = 'distributed',
)
# 12506: __all_virtual_ncomp_dll_v2
def_table_schema(**gen_iterate_virtual_table_def(
table_id = '12506',
table_name = '__all_virtual_ncomp_dll_v2',
keywords = all_def_keywords['__all_ncomp_dll_v2']))
# 12507: __all_virtual_logstore_service_status
# 12508: __all_virtual_logstore_service_info
@ -15680,7 +15704,7 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15467'
# 15483: __all_virtual_wr_res_mgr_sysstat
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15484', all_def_keywords['__all_virtual_function_io_stat'])))
def_table_schema(**gen_oracle_mapping_virtual_table_def('15485', all_def_keywords['__all_virtual_temp_file']))
# 15486: __all_ncomp_dll_v2
def_table_schema(**gen_oracle_mapping_real_virtual_table_def('15486', all_def_keywords['__all_ncomp_dll_v2']))
# 余留位置(此行之前占位)
# 本区域定义的Oracle表名比较复杂,一般都采用gen_xxx_table_def()方式定义,占位建议采用基表表名占位

View File

@ -1936,6 +1936,7 @@ case OB_ALL_VIRTUAL_MVIEW_REFRESH_STATS_TID:
case OB_ALL_VIRTUAL_MVIEW_REFRESH_STATS_PARAMS_TID:
case OB_ALL_VIRTUAL_MVIEW_REFRESH_STATS_SYS_DEFAULTS_TID:
case OB_ALL_VIRTUAL_MVIEW_REFRESH_STMT_STATS_TID:
case OB_ALL_VIRTUAL_NCOMP_DLL_V2_TID:
case OB_ALL_VIRTUAL_OBJAUTH_TID:
case OB_ALL_VIRTUAL_OBJAUTH_HISTORY_TID:
case OB_ALL_VIRTUAL_OBJECT_TYPE_TID:
@ -3154,6 +3155,21 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
break;
}
case OB_ALL_VIRTUAL_NCOMP_DLL_V2_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
SERVER_LOG(WARN, "create virtual table iterator failed", K(ret));
} else if (OB_FAIL(iter->init(OB_ALL_NCOMP_DLL_V2_TID, index_schema, params))) {
SERVER_LOG(WARN, "virtual table iter init failed", K(ret));
iter->~ObIterateVirtualTable();
allocator.free(iter);
iter = NULL;
} else {
vt_iter = iter;
}
break;
}
case OB_ALL_VIRTUAL_OBJAUTH_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3243,7 +3259,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_OUTLINE_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3258,9 +3276,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_OUTLINE_HISTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3545,7 +3561,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_RLS_POLICY_HISTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3560,9 +3578,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_RLS_SECURITY_COLUMN_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3847,7 +3863,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_SYNONYM_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -3862,9 +3880,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_SYNONYM_HISTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4149,7 +4165,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_TENANT_CONTEXT_HISTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4164,9 +4182,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_TENANT_DIRECTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4451,7 +4467,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_TENANT_SCHEDULER_PROGRAM_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4466,9 +4484,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_TENANT_SCHEDULER_PROGRAM_ARGUMENT_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4753,7 +4769,9 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_USER_PROXY_INFO_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {
@ -4768,9 +4786,7 @@ case OB_ALL_VIRTUAL_USER_PROXY_ROLE_INFO_HISTORY_TID:
}
break;
}
END_CREATE_VT_ITER_SWITCH_LAMBDA
BEGIN_CREATE_VT_ITER_SWITCH_LAMBDA
case OB_ALL_VIRTUAL_USER_PROXY_INFO_HISTORY_TID: {
ObIterateVirtualTable *iter = NULL;
if (OB_FAIL(NEW_VIRTUAL_TABLE(ObIterateVirtualTable, iter))) {

View File

@ -365,6 +365,7 @@
# 517: __all_storage_io_usage
# 518: __all_mview_dep
# 519: __all_scheduler_job_run_detail_v2
# 528: __all_ncomp_dll_v2
# 10001: __tenant_virtual_all_table
# 10002: __tenant_virtual_table_column
# 10003: __tenant_virtual_table_index
@ -1162,6 +1163,8 @@
# 12500: __all_virtual_kv_client_info
# 12504: __all_virtual_function_io_stat
# 12505: __all_virtual_temp_file
# 12506: __all_virtual_ncomp_dll_v2
# 12506: __all_ncomp_dll_v2 # BASE_TABLE_NAME
# 15009: ALL_VIRTUAL_SQL_AUDIT
# 15009: __all_virtual_sql_audit # BASE_TABLE_NAME
# 15010: ALL_VIRTUAL_PLAN_STAT
@ -1790,6 +1793,8 @@
# 15484: __all_virtual_function_io_stat # BASE_TABLE_NAME
# 15485: ALL_VIRTUAL_TEMP_FILE
# 15485: __all_virtual_temp_file # BASE_TABLE_NAME
# 15486: ALL_VIRTUAL_NCOMP_DLL_V2_REAL_AGENT
# 15486: __all_ncomp_dll_v2 # BASE_TABLE_NAME
# 20001: GV$OB_PLAN_CACHE_STAT
# 20002: GV$OB_PLAN_CACHE_PLAN_STAT
# 20003: SCHEMATA

View File

@ -0,0 +1,284 @@
/**
* Copyright (c) 2024 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#define USING_LOG_PREFIX SHARE
#include "ob_flush_ncomp_dll_task.h"
#include "share/ob_version.h"
#include "share/ob_tenant_info_proxy.h"
#include "share/ob_define.h"
#include "share/ob_all_server_tracer.h"
#include "share/stat/ob_dbms_stats_maintenance_window.h" // ObDbmsStatsMaintenanceWindow
#include "observer/dbms_scheduler/ob_dbms_sched_table_operator.h" // ObDBMSSchedTableOperator
namespace oceanbase
{
namespace share
{
using namespace common;
#define USEC_OF_HOUR (60 * 60 * 1000000LL)
int ObFlushNcompDll::check_flush_ncomp_dll_job_exists(ObMySQLTransaction &trans,
const uint64_t tenant_id,
const ObString &job_name,
bool &is_job_exists)
{
int ret = OB_SUCCESS;
is_job_exists = false;
ObSqlString select_sql;
int64_t row_count = 0;
if (OB_FAIL(select_sql.append_fmt("SELECT count(*) FROM %s WHERE tenant_id = %ld and job_name = '%.*s';",
share::OB_ALL_TENANT_SCHEDULER_JOB_TNAME,
share::schema::ObSchemaUtils::get_extract_tenant_id(tenant_id, tenant_id),
job_name.length(), job_name.ptr()))) {
LOG_WARN("failed to append fmt", K(ret));
} else {
SMART_VAR(ObMySQLProxy::MySQLResult, proxy_result) {
sqlclient::ObMySQLResult *client_result = NULL;
if (OB_FAIL(trans.read(proxy_result, tenant_id, select_sql.ptr()))) {
LOG_WARN("failed to execute sql", K(ret), K(select_sql));
} else if (OB_ISNULL(client_result = proxy_result.get_result())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("failed to execute sql", K(ret));
} else {
while (OB_SUCC(ret) && OB_SUCC(client_result->next())) {
int64_t idx = 0;
ObObj obj;
if (OB_FAIL(client_result->get_obj(idx, obj))) {
LOG_WARN("failed to get object", K(ret));
} else if (OB_FAIL(obj.get_int(row_count))) {
LOG_WARN("failed to get int", K(ret), K(obj));
} else if (OB_UNLIKELY(row_count != 2 && row_count != 0)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("get unexpected error", K(ret), K(row_count));
} else {
is_job_exists = row_count > 0;
}
}
ret = OB_ITER_END == ret ? OB_SUCCESS : ret;
}
int tmp_ret = OB_SUCCESS;
if (NULL != client_result) {
if (OB_SUCCESS != (tmp_ret = client_result->close())) {
LOG_WARN("close result set failed", K(ret), K(tmp_ret));
ret = COVER_SUCC(tmp_ret);
}
}
}
LOG_INFO("succeed to check flush ncomp dll job exists", K(ret), K(select_sql), K(is_job_exists), K(row_count));
}
return ret;
}
int ObFlushNcompDll::get_job_id(const uint64_t tenant_id,
ObMySQLTransaction &trans,
int64_t &job_id)
{
int ret = OB_SUCCESS;
ObSqlString sql;
job_id = OB_INVALID_INDEX;
if (OB_FAIL(sql.assign_fmt("select max(job) + 1 as new_job_id from %s where job <= %ld",
OB_ALL_TENANT_SCHEDULER_JOB_TNAME,
dbms_scheduler::ObDBMSSchedTableOperator::JOB_ID_OFFSET))) {
LOG_WARN("assign fmt failed", KR(ret), K(tenant_id));
} else {
HEAP_VAR(ObMySQLProxy::MySQLResult, res) {
common::sqlclient::ObMySQLResult *result = NULL;
if (OB_FAIL(trans.read(res, tenant_id, sql.ptr()))) {
LOG_WARN("failed to read", KR(ret), K(tenant_id), K(sql));
} else if (OB_ISNULL(result = res.get_result())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("failed to get sql result", KR(ret));
} else if (OB_FAIL(result->next())) {
LOG_WARN("failed to get job", KR(ret), K(sql));
} else if (OB_FAIL(result->get_int("new_job_id", job_id))) {
LOG_WARN("get int failed", KR(ret), K(tenant_id), K(sql));
} else {
LOG_INFO("get new job_id successfully", KR(ret), K(tenant_id), K(job_id));
}
}
}
return ret;
}
int ObFlushNcompDll::get_job_action(ObSqlString &job_action)
{
int ret = OB_SUCCESS;
common::ObZone zone;
ObArray<ObServerInfoInTable> servers_info;
common::hash::ObHashSet<ObServerInfoInTable::ObBuildVersion> observer_version_set;
bool need_comma = false;
job_action.reset();
OZ (observer_version_set.create((4)));
OZ (share::ObAllServerTracer::get_instance().get_servers_info(zone, servers_info));
for (int64_t i = 0; OB_SUCC(ret) && i < servers_info.count(); ++i) {
OZ (observer_version_set.set_refactored(servers_info.at(i).get_build_version()));
}
//OZ (get_package_and_svn(build_version, sizeof(build_version)));
//OZ (job_action.assign_fmt("delete FROM %s where build_version != '%s'", OB_ALL_NCOMP_DLL_V2_TNAME, build_version));
OZ (job_action.append_fmt("delete FROM %s where build_version not in (", OB_ALL_NCOMP_DLL_V2_TNAME));
for (common::hash::ObHashSet<ObServerInfoInTable::ObBuildVersion>::const_iterator iter = observer_version_set.begin();
OB_SUCC(ret) && iter != observer_version_set.end();
iter++) {
OZ(job_action.append_fmt("%s'%s'", need_comma ? ", " : "", iter->first.ptr()));
OX (need_comma = true);
}
OZ(job_action.append(")"));
if (observer_version_set.created()) {
observer_version_set.destroy();
}
return ret;
}
int ObFlushNcompDll::create_flush_ncomp_dll_job_for_425(const ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
ObMySQLTransaction &trans)
{
int ret = OB_SUCCESS;
bool is_job_exists = false;
ObSqlString job_action;
if (OB_UNLIKELY(!is_user_tenant(tenant_id))) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("must be user tenant", KR(ret), K(tenant_id));
} else if (OB_FAIL(check_flush_ncomp_dll_job_exists(trans, tenant_id, async_flush_ncomp_dll_for_425, is_job_exists))) {
LOG_WARN("fail to check ncomp dll job", K(ret));
} else if (is_job_exists) {
// do nothing
} else if (OB_FAIL(job_action.assign_fmt("delete FROM %s", OB_ALL_NCOMP_DLL_TNAME))) {
LOG_WARN("fail to get job action", K(ret));
} else if (OB_FAIL(create_flush_ncomp_dll_job_common(sys_variable,
tenant_id,
is_enabled,
trans,
job_action,
async_flush_ncomp_dll_for_425))) {
LOG_WARN("fail to create flush ncomp dll job", K(ret));
}
return ret;
}
int ObFlushNcompDll::create_flush_ncomp_dll_job(const ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
ObMySQLTransaction &trans)
{
int ret = OB_SUCCESS;
bool is_job_exists = false;
ObSqlString job_action;
if (OB_UNLIKELY(!is_user_tenant(tenant_id))) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("must be user tenant", KR(ret), K(tenant_id));
} else if (OB_FAIL(check_flush_ncomp_dll_job_exists(trans, tenant_id, async_flush_ncomp_dll, is_job_exists))) {
LOG_WARN("fail to check ncomp dll job", K(ret));
} else if (is_job_exists) {
// do nothing
} else if (OB_FAIL(get_job_action(job_action))) {
LOG_WARN("fail to get job action", K(ret));
} else if (OB_FAIL(create_flush_ncomp_dll_job_common(sys_variable,
tenant_id,
is_enabled,
trans,
job_action,
async_flush_ncomp_dll))) {
LOG_WARN("fail to create flush ncomp dll job", K(ret));
}
return ret;
}
int ObFlushNcompDll::create_flush_ncomp_dll_job_common(const ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
ObMySQLTransaction &trans,
const ObSqlString &job_action,
const ObString &job_name)
{
int ret = OB_SUCCESS;
ObDMLSqlSplicer dml;
ObDMLExecHelper exec(trans, tenant_id);
bool is_oracle_mode = false;
char buf[OB_MAX_PROC_ENV_LENGTH] = {0};
int64_t pos = 0;
int32_t offset_sec = 0;
ObTime ob_time;
int64_t job_id = OB_INVALID_INDEX;
int64_t affected_rows = 0;
int64_t current_time = ObTimeUtility::current_time();
if (OB_FAIL(sys_variable.get_oracle_mode(is_oracle_mode))) {
LOG_WARN("failed to get oracle mode", KR(ret));
} else if (OB_FAIL(sql::ObExecEnv::gen_exec_env(sys_variable, buf, OB_MAX_PROC_ENV_LENGTH, pos))) {
LOG_WARN("failed to gen exec env", KR(ret));
} else if (OB_FAIL(ObDbmsStatsMaintenanceWindow::get_time_zone_offset(sys_variable,
tenant_id,
offset_sec))) {
LOG_WARN("failed to get time zone offset", KR(ret), K(tenant_id));
} else if (OB_FAIL(ObTimeConverter::usec_to_ob_time(current_time + offset_sec * USECS_PER_SEC,
ob_time))) {
LOG_WARN("failed to usec to ob time", KR(ret), K(current_time), K(offset_sec));
} else if (OB_FAIL(get_job_id(tenant_id, trans, job_id))) {
LOG_WARN("get new job_id failed", KR(ret), K(tenant_id));
} else {
ObString exec_env(pos, buf);
int64_t current_hour = ob_time.parts_[DT_HOUR];
int64_t hours_to_next_day = HOURS_PER_DAY - current_hour;
const int64_t start_usec = (current_time / USEC_OF_HOUR + hours_to_next_day) * USEC_OF_HOUR; // next day 00:00:00
HEAP_VAR(dbms_scheduler::ObDBMSSchedJobInfo, job_info) {
job_info.tenant_id_ = tenant_id;
job_info.job_ = job_id;
job_info.job_name_ = job_name;
job_info.job_action_ = job_action.ptr();
job_info.lowner_ = is_oracle_mode ? ObString("SYS") : ObString("root@%");
job_info.powner_ = is_oracle_mode ? ObString("SYS") : ObString("root@%");
job_info.cowner_ = is_oracle_mode ? ObString("SYS") : ObString("oceanbase");
job_info.job_style_ = ObString("regular");
job_info.job_type_ = ObString("PLSQL_BLOCK");
job_info.job_class_ = ObString("DEFAULT_JOB_CLASS");
job_info.what_ = job_action.ptr();
job_info.start_date_ = start_usec;
job_info.end_date_ = 64060560000000000; // 4000-01-01 00:00:00.000000
job_info.interval_ = ObString();
job_info.repeat_interval_ = ObString();
job_info.enabled_ = is_enabled;
job_info.auto_drop_ = true;
job_info.max_run_duration_ = SECS_PER_HOUR * 2;
job_info.exec_env_ = exec_env;
job_info.comments_ = ObString("used to auto flush ncomp dll table expired data");
if (OB_FAIL(dbms_scheduler::ObDBMSSchedJobUtils::create_dbms_sched_job(trans,
tenant_id,
job_id,
job_info))) {
LOG_WARN("failed to create flush ncomp dll job", KR(ret), K(job_action));
} else {
LOG_INFO("finish create flush ncomp dll job", K(tenant_id), K(is_enabled),
K(offset_sec), K(job_id), K(exec_env),
K(start_usec), K(affected_rows), K(job_action));
}
}
}
return ret;
}
}//end namespace rootserver
}//end namespace oceanbase

View File

@ -0,0 +1,61 @@
/**
* Copyright (c) 2024 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#ifndef OCEANBASE_ROOTSERVER_OB_FLUSH_NCOMP_DLL_TASK_H_
#define OCEANBASE_ROOTSERVER_OB_FLUSH_NCOMP_DLL_TASK_H_
#include "share/schema/ob_schema_struct.h"
#include "lib/mysqlclient/ob_mysql_transaction.h"
namespace oceanbase
{
namespace share
{
static const char *async_flush_ncomp_dll = "ASYNC_FLUSH_NCOMP_DLL_V2_EXPIRED_DATA";
static const char *async_flush_ncomp_dll_for_425 = "ASYNC_FLUSH_NCOMP_DLL_EXPIRED_DATA";
class ObFlushNcompDll
{
public:
static int create_flush_ncomp_dll_job(
const schema::ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
common::ObMySQLTransaction &trans);
static int create_flush_ncomp_dll_job_for_425(
const schema::ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
common::ObMySQLTransaction &trans);
private:
static int check_flush_ncomp_dll_job_exists(ObMySQLTransaction &trans,
const uint64_t tenant_id,
const ObString &job_name,
bool &is_job_exists);
static int get_job_id(const uint64_t tenant_id,
ObMySQLTransaction &trans,
int64_t &job_id);
static int get_job_action(ObSqlString &job_action);
static int create_flush_ncomp_dll_job_common(const schema::ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
const bool is_enabled,
ObMySQLTransaction &trans,
const ObSqlString &job_action,
const ObString &job_name);
};
}
}//end namespace oceanbase
#endif

View File

@ -28,6 +28,7 @@
#include "share/config/ob_config_helper.h"
#include "share/stat/ob_dbms_stats_maintenance_window.h"
#include "share/stat/ob_dbms_stats_preferences.h"
#include "share/ncomp_dll/ob_flush_ncomp_dll_task.h"
namespace oceanbase
{
@ -596,8 +597,8 @@ int ObUpgradeUtils::filter_sys_stat(
ObUpgradeProcesserSet::ObUpgradeProcesserSet()
: inited_(false), allocator_(ObMemAttr(MTL_CTX() ? MTL_ID() : OB_SERVER_TENANT_ID,
"UpgProcSet")),
processor_list_(OB_MALLOC_NORMAL_BLOCK_SIZE,
ModulePageAllocator(allocator_))
processor_list_(OB_MALLOC_NORMAL_BLOCK_SIZE, ModulePageAllocator(allocator_)),
all_version_upgrade_processor_(NULL)
{
}
@ -608,6 +609,9 @@ ObUpgradeProcesserSet::~ObUpgradeProcesserSet()
processor_list_.at(i)->~ObBaseUpgradeProcessor();
}
}
if (OB_NOT_NULL(all_version_upgrade_processor_)) {
all_version_upgrade_processor_->~ObBaseUpgradeProcessor();
}
}
int ObUpgradeProcesserSet::init(
@ -624,22 +628,19 @@ int ObUpgradeProcesserSet::init(
ret = OB_INIT_TWICE;
LOG_WARN("init twice", KR(ret));
} else {
#define INIT_PROCESSOR_BY_VERSION(MAJOR, MINOR, MAJOR_PATCH, MINOR_PATCH) \
#define INIT_PROCESSOR_BY_NAME_AND_VERSION(PROCESSOR_NAME, VERSION, processor) \
if (OB_SUCC(ret)) { \
void *buf = NULL; \
ObBaseUpgradeProcessor *processor = NULL; \
int64_t version = static_cast<int64_t>(cal_version((MAJOR), (MINOR), (MAJOR_PATCH), (MINOR_PATCH))); \
if (OB_ISNULL(buf = allocator_.alloc(sizeof(ObUpgradeFor##MAJOR##MINOR##MAJOR_PATCH##MINOR_PATCH##Processor)))) { \
int64_t version = VERSION; \
if (OB_ISNULL(buf = allocator_.alloc(sizeof(PROCESSOR_NAME)))) { \
ret = OB_ALLOCATE_MEMORY_FAILED; \
LOG_WARN("fail to alloc upgrade processor", KR(ret)); \
} else if (OB_ISNULL(processor = new(buf)ObUpgradeFor##MAJOR##MINOR##MAJOR_PATCH##MINOR_PATCH##Processor)) { \
} else if (OB_ISNULL(processor = new(buf)PROCESSOR_NAME)) { \
ret = OB_NOT_INIT; \
LOG_WARN("fail to new upgrade processor", KR(ret)); \
} else if (OB_FAIL(processor->init(version, mode, sql_proxy, oracle_sql_proxy, rpc_proxy, common_proxy, \
schema_service, check_server_provider))) { \
LOG_WARN("fail to init processor", KR(ret), KDV(version)); \
} else if (OB_FAIL(processor_list_.push_back(processor))) { \
LOG_WARN("fail to push back processor", KR(ret), KDV(version)); \
} \
if (OB_FAIL(ret)) { \
if (OB_NOT_NULL(processor)) { \
@ -654,6 +655,20 @@ int ObUpgradeProcesserSet::init(
} \
}
#define INIT_PROCESSOR_BY_VERSION(MAJOR, MINOR, MAJOR_PATCH, MINOR_PATCH) \
if (OB_SUCC(ret)) { \
ObBaseUpgradeProcessor *processor = NULL; \
int64_t data_version = cal_version(MAJOR, MINOR, MAJOR_PATCH, MINOR_PATCH); \
INIT_PROCESSOR_BY_NAME_AND_VERSION(ObUpgradeFor##MAJOR##MINOR##MAJOR_PATCH##MINOR_PATCH##Processor, \
data_version, processor); \
if (FAILEDx(processor_list_.push_back(processor))) { \
LOG_WARN("fail to push back processor", KR(ret), KDV(data_version)); \
} \
}
INIT_PROCESSOR_BY_NAME_AND_VERSION(ObUpgradeForAllVersionProcessor, DATA_CURRENT_VERSION,
all_version_upgrade_processor_);
// order by data version asc
INIT_PROCESSOR_BY_VERSION(4, 0, 0, 0);
INIT_PROCESSOR_BY_VERSION(4, 1, 0, 0);
@ -676,6 +691,8 @@ int ObUpgradeProcesserSet::init(
INIT_PROCESSOR_BY_VERSION(4, 3, 2, 1);
INIT_PROCESSOR_BY_VERSION(4, 3, 3, 0);
INIT_PROCESSOR_BY_VERSION(4, 3, 4, 0);
#undef INIT_PROCESSOR_BY_NAME_AND_VERSION
#undef INIT_PROCESSOR_BY_VERSION
inited_ = true;
}
@ -733,6 +750,21 @@ int ObUpgradeProcesserSet::get_processor_by_version(
return ret;
}
int ObUpgradeProcesserSet::get_all_version_processor(ObBaseUpgradeProcessor *&processor) const
{
int ret = OB_SUCCESS;
if (OB_FAIL(check_inner_stat())) {
LOG_WARN("check inner stat failed", KR(ret));
} else if (OB_ISNULL(all_version_upgrade_processor_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("processor is NULL", KR(ret), KP(all_version_upgrade_processor_));
} else {
processor = all_version_upgrade_processor_;
processor->set_tenant_id(OB_INVALID_ID); // reset
}
return ret;
}
// run upgrade processor by (start_version, end_version]
int ObUpgradeProcesserSet::get_processor_idx_by_range(
const int64_t start_version,
@ -856,6 +888,54 @@ int ObBaseUpgradeProcessor::init(
#undef FORMAT_STR
/* =========== special upgrade processor start ============= */
int ObUpgradeForAllVersionProcessor::post_upgrade() {
int ret = OB_SUCCESS;
if (OB_FAIL(check_inner_stat())) {
LOG_WARN("fail to check inner stat", KR(ret));
} else if (OB_FAIL(flush_ncomp_dll_job())) {
LOG_WARN("fail to flush ncomp dll job", KR(ret));
}
return ret;
}
int ObUpgradeForAllVersionProcessor::flush_ncomp_dll_job()
{
int ret = OB_SUCCESS;
bool is_primary_tenant= false;
ObSchemaGetterGuard schema_guard;
const ObSysVariableSchema *sys_variable_schema = NULL;
if (OB_ISNULL(sql_proxy_) || OB_ISNULL(schema_service_) || !is_valid_tenant_id(tenant_id_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected error", KR(ret), KP(sql_proxy_), KP(schema_service_), K(tenant_id_));
} else if (!is_user_tenant(tenant_id_)) {
LOG_INFO("not user tenant, ignore", K(tenant_id_));
} else if (OB_FAIL(ObAllTenantInfoProxy::is_primary_tenant(sql_proxy_, tenant_id_, is_primary_tenant))) {
LOG_WARN("check is standby tenant failed", KR(ret), K(tenant_id_));
} else if (!is_primary_tenant) {
LOG_INFO("not primary tenant, ignore", K(tenant_id_));
} else if (OB_FAIL(schema_service_->get_tenant_schema_guard(tenant_id_, schema_guard))) {
LOG_WARN("failed to get tenant schema guard", KR(ret), K(tenant_id_));
} else if (OB_FAIL(schema_guard.get_sys_variable_schema(tenant_id_, sys_variable_schema))) {
LOG_WARN("get sys variable schema failed", KR(ret), K(tenant_id_));
} else if (OB_ISNULL(sys_variable_schema)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("sys variable schema is null", KR(ret));
} else {
START_TRANSACTION(sql_proxy_, tenant_id_);
if (FAILEDx(ObFlushNcompDll::create_flush_ncomp_dll_job(
*sys_variable_schema,
tenant_id_,
false/*is_enabled*/,
trans))) { // insert ignore
LOG_WARN("create flush ncomp dll job failed", KR(ret), K(tenant_id_));
}
END_TRANSACTION(trans);
LOG_INFO("post upgrade for create flush ncomp dll finished", KR(ret), K(tenant_id_));
}
return ret;
}
int ObUpgradeFor4100Processor::post_upgrade()
{
@ -1541,6 +1621,58 @@ int ObUpgradeFor4330Processor::post_upgrade_for_optimizer_stats()
return ret;
}
int ObUpgradeFor4340Processor::post_upgrade()
{
int ret = OB_SUCCESS;
if (OB_FAIL(check_inner_stat())) {
LOG_WARN("fail to check inner stat", KR(ret));
} else if (OB_FAIL(post_upgrade_for_persitent_routine())) {
LOG_WARN("fail to create standby replication role in oracle", KR(ret));
}
return ret;
}
int ObUpgradeFor4340Processor::post_upgrade_for_persitent_routine()
{
int ret = OB_SUCCESS;
bool is_primary_tenant= false;
ObSchemaGetterGuard schema_guard;
const ObSysVariableSchema *sys_variable_schema = NULL;
if (OB_ISNULL(sql_proxy_) || OB_ISNULL(schema_service_) || !is_valid_tenant_id(tenant_id_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected error", KR(ret), KP(sql_proxy_), KP(schema_service_), K(tenant_id_));
} else if (!is_user_tenant(tenant_id_)) {
LOG_INFO("not user tenant, ignore", K(tenant_id_));
} else if (OB_FAIL(ObAllTenantInfoProxy::is_primary_tenant(sql_proxy_, tenant_id_, is_primary_tenant))) {
LOG_WARN("check is standby tenant failed", KR(ret), K(tenant_id_));
} else if (!is_primary_tenant) {
LOG_INFO("not primary tenant, ignore", K(tenant_id_));
} else if (OB_FAIL(schema_service_->get_tenant_schema_guard(tenant_id_, schema_guard))) {
LOG_WARN("failed to get tenant schema guard", KR(ret), K(tenant_id_));
} else if (OB_FAIL(schema_guard.get_sys_variable_schema(tenant_id_, sys_variable_schema))) {
LOG_WARN("get sys variable schema failed", KR(ret), K(tenant_id_));
} else if (OB_ISNULL(sys_variable_schema)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("sys variable schema is null", KR(ret));
} else {
START_TRANSACTION(sql_proxy_, tenant_id_);
if (FAILEDx(ObFlushNcompDll::create_flush_ncomp_dll_job_for_425(
*sys_variable_schema,
tenant_id_,
false/*is_enabled*/,
trans))) { // insert ignore
LOG_WARN("create flush ncomp dll job failed", KR(ret), K(tenant_id_));
}
END_TRANSACTION(trans);
LOG_INFO("post upgrade for create flush ncomp dll finished", KR(ret), K(tenant_id_));
}
return ret;
}
/* =========== 4250 upgrade processor end ============= */
/* =========== 4330 upgrade processor end ============= */
} // end share

View File

@ -136,6 +136,7 @@ public:
const int64_t end_version,
int64_t &start_idx,
int64_t &end_idx);
int get_all_version_processor(ObBaseUpgradeProcessor *&processor) const;
private:
virtual int check_inner_stat() const;
int get_processor_idx_by_version(
@ -145,6 +146,7 @@ private:
bool inited_;
common::ObArenaAllocator allocator_;
common::ObArray<ObBaseUpgradeProcessor *> processor_list_;
ObBaseUpgradeProcessor *all_version_upgrade_processor_;
DISALLOW_COPY_AND_ASSIGN(ObUpgradeProcesserSet);
};
@ -179,6 +181,17 @@ public:
};
/* =========== special upgrade processor start ============= */
class ObUpgradeForAllVersionProcessor : public ObBaseUpgradeProcessor
{
public:
ObUpgradeForAllVersionProcessor() : ObBaseUpgradeProcessor() {}
virtual ~ObUpgradeForAllVersionProcessor() {}
virtual int pre_upgrade() override { return common::OB_SUCCESS; }
virtual int post_upgrade() override;
private:
int flush_ncomp_dll_job();
};
DEF_SIMPLE_UPGRARD_PROCESSER(4, 0, 0, 0)
class ObUpgradeFor4100Processor : public ObBaseUpgradeProcessor
@ -274,7 +287,16 @@ private:
int post_upgrade_for_optimizer_stats();
};
DEF_SIMPLE_UPGRARD_PROCESSER(4, 3, 4, 0)
class ObUpgradeFor4340Processor : public ObBaseUpgradeProcessor
{
public:
ObUpgradeFor4340Processor() : ObBaseUpgradeProcessor() {}
virtual ~ObUpgradeFor4340Processor() {}
virtual int pre_upgrade() override { return common::OB_SUCCESS; }
virtual int post_upgrade() override;
private:
int post_upgrade_for_persitent_routine();
};
/* =========== special upgrade processor end ============= */

View File

@ -61,6 +61,9 @@ public:
static int get_async_gather_stats_job_for_upgrade(common::ObMySQLProxy *sql_proxy,
const uint64_t tenant_id,
ObSqlString &sql);
static int get_time_zone_offset(const share::schema::ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
int32_t &offset_sec);
private:
static int get_window_job_info(const int64_t current_time,
@ -90,9 +93,6 @@ private:
static bool is_work_day(int64_t now_wday) { return now_wday >= 1 && now_wday <= MAX_OF_WORK_DAY; }
static int get_time_zone_offset(const share::schema::ObSysVariableSchema &sys_variable,
const uint64_t tenant_id,
int32_t &offset_sec);
static int check_date_validate(const ObString &job_name,
const int64_t specify_time,
const int64_t current_time,

View File

@ -633,6 +633,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | __all_mview_refresh_stats_sys_defaults | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_mview_refresh_stmt_stats | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ncomp_dll | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ncomp_dll_v2 | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_optstat_global_prefs | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_optstat_user_prefs | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ori_schema_version | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
@ -1277,6 +1278,11 @@ select * from information_schema.statistics where table_schema in ('oceanbase',
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 1 | database_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 5 | build_version | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_global_prefs | 0 | oceanbase | PRIMARY | 1 | sname | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 1 | tenant_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 2 | table_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
@ -2210,6 +2216,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | __all_mview_refresh_stats_sys_defaults | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_mview_refresh_stmt_stats | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ncomp_dll | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ncomp_dll_v2 | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_optstat_global_prefs | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_optstat_user_prefs | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
| def | oceanbase | __all_ori_schema_version | SYSTEM TABLE | InnoDB | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | | FALSE | 0 |
@ -3060,6 +3067,11 @@ select * from information_schema.statistics where table_schema in ('oceanbase',
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 1 | database_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 5 | build_version | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_global_prefs | 0 | oceanbase | PRIMARY | 1 | sname | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 1 | tenant_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 2 | table_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
@ -3968,6 +3980,11 @@ select * from information_schema.statistics where table_schema in ('oceanbase',
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 1 | database_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 2 | key_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 3 | compile_db_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 4 | arch_type | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_ncomp_dll_v2 | 0 | oceanbase | PRIMARY | 5 | build_version | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_global_prefs | 0 | oceanbase | PRIMARY | 1 | sname | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 1 | tenant_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |
| def | oceanbase | __all_optstat_user_prefs | 0 | oceanbase | PRIMARY | 2 | table_id | A | NULL | NULL | NULL | | BTREE | VALID | | YES | NULL |

View File

@ -10069,3 +10069,18 @@ IF(count(*) >= 0, 1, 0)
"oceanbase.__all_virtual_temp_file runs in single server"
IF(count(*) >= 0, 1, 0)
1
desc oceanbase.__all_virtual_ncomp_dll_v2;
Field Type Null Key Default Extra
tenant_id bigint(20) NO PRI NULL
database_id bigint(20) NO PRI NULL
key_id bigint(20) NO PRI NULL
compile_db_id bigint(20) NO PRI NULL
arch_type varchar(128) NO PRI NULL
build_version varchar(256) NO PRI NULL
gmt_create timestamp(6) NO NULL
gmt_modified timestamp(6) NO NULL
merge_version bigint(20) NO NULL
dll longblob NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_ncomp_dll_v2;
IF(count(*) >= 0, 1, 0)
1

View File

@ -308,6 +308,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
517 __all_storage_io_usage 0 201001 1
518 __all_mview_dep 0 201001 1
519 __all_scheduler_job_run_detail_v2 0 201001 1
528 __all_ncomp_dll_v2 0 201001 1
10001 __tenant_virtual_all_table 2 201001 1
10002 __tenant_virtual_table_column 2 201001 1
10003 __tenant_virtual_table_index 2 201001 1
@ -782,6 +783,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12500 __all_virtual_kv_client_info 2 201001 1
12504 __all_virtual_function_io_stat 2 201001 1
12505 __all_virtual_temp_file 2 201001 1
12506 __all_virtual_ncomp_dll_v2 2 201001 1
20001 GV$OB_PLAN_CACHE_STAT 1 201001 1
20002 GV$OB_PLAN_CACHE_PLAN_STAT 1 201001 1
20003 SCHEMATA 1 201002 1