[4.1] Add previous check for arb service
This commit is contained in:
@ -5150,6 +5150,12 @@ def_table_schema(
|
||||
# 420 : __all_column_group_history
|
||||
# 421 : __all_column_group_mapping
|
||||
# 422 : __all_column_group_mapping_history
|
||||
# 423 : __all_transfer_task
|
||||
# 424 : __all_transfer_task_history
|
||||
# 425 : __all_balance_task
|
||||
# 426 : __all_balance_task_history
|
||||
# 427 : __all_ls_balance_job
|
||||
# 428 : __all_ls_balance_job_history
|
||||
|
||||
def_table_schema(
|
||||
owner = 'jingyu.cr',
|
||||
@ -5236,17 +5242,6 @@ def_table_schema(
|
||||
('comment', 'varchar:MAX_COLUMN_COMMENT_LENGTH', 'true'),
|
||||
],
|
||||
)
|
||||
# 423 : __all_transfer_task
|
||||
# 424 : __all_transfer_task_history
|
||||
# 425 : __all_balance_task
|
||||
# 426 : __all_balance_task_history
|
||||
# 427 : __all_ls_balance_job
|
||||
# 428 : __all_ls_balance_job_history
|
||||
|
||||
# 430 : __all_arbitration_service_replica_task
|
||||
# 431 : __all_meta_dictionary_location;
|
||||
|
||||
# 432 : __all_arbitration_service_replica_task_history
|
||||
|
||||
all_rls_policy_def = dict(
|
||||
owner = 'sean.yyj',
|
||||
@ -11302,8 +11297,6 @@ def_table_schema(**gen_iterate_virtual_table_def(
|
||||
|
||||
def_table_schema(**gen_mysql_sys_agent_virtual_table_def('12358', all_def_keywords['__all_tenant']))
|
||||
|
||||
# 12358: __all_virtual_tenant_mysql_sys_agent
|
||||
|
||||
def_table_schema(
|
||||
owner = 'zhenling.zzg',
|
||||
tablegroup_id = 'OB_INVALID_ID',
|
||||
@ -11488,11 +11481,6 @@ def_table_schema(
|
||||
('comment', 'varchar:262144')
|
||||
],
|
||||
)
|
||||
# 12364: __all_virtual_ls_arb_replica_task
|
||||
# 12365: __all_virtual_ls_arb_replica_task_history
|
||||
|
||||
|
||||
# 12366: __all_virtual_archive_dest_status
|
||||
|
||||
# 12367: __all_virtual_kv_hotkey_stat
|
||||
# 12368: __all_virtual_backup_transferring_tablets
|
||||
@ -11767,23 +11755,16 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_real_virtual_table_def('1
|
||||
def_table_schema(**gen_oracle_mapping_real_virtual_table_def('15281', all_def_keywords['__all_tenant_rewrite_rules']))
|
||||
def_table_schema(**no_direct_access(gen_sys_agent_virtual_table_def('15282', all_def_keywords['__all_tenant'])))
|
||||
|
||||
# 15282: ALL_VIRTUAL_TENANT_SYS_AGENT
|
||||
# 15283: __all_virtual_tenant_info_agent
|
||||
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15284', all_def_keywords['__all_virtual_sql_plan'])))
|
||||
def_table_schema(**gen_oracle_mapping_virtual_table_def('15285', all_def_keywords['__all_virtual_plan_table']))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15286', all_def_keywords['__all_virtual_plan_real_info'])))
|
||||
|
||||
# 15287: __all_virtual_trans_scheduler
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15287', all_def_keywords['__all_virtual_trans_scheduler'])))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15288', all_def_keywords['__all_virtual_ls_arb_replica_task'])))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15289', all_def_keywords['__all_virtual_ls_arb_replica_task_history'])))
|
||||
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15290', all_def_keywords['__all_virtual_archive_dest_status'])))
|
||||
|
||||
# 15288: __all_virtual_ls_arb_replica_task
|
||||
# 15289: __all_virtual_ls_arb_replica_task_history
|
||||
|
||||
# 15290: __all_virtual_archive_dest_status
|
||||
# 15291: __all_virtual_backup_transferring_tablets
|
||||
|
||||
################################################################################
|
||||
@ -25772,15 +25753,6 @@ def_table_schema(
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
|
||||
# 21357: DBA_OB_ARBITRATION_SERVICE
|
||||
# 21358: CDB_OB_LS_ARB_REPLICA_TASKS
|
||||
# 21359: DBA_OB_LS_ARB_REPLICA_TASKS
|
||||
# 21360: CDB_OB_LS_ARB_REPLICA_TASK_HISTORY
|
||||
# 21361: DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
|
||||
|
||||
# 21362: V$OB_ARCHIVE_DEST_STATUS
|
||||
# 21363: DBA_OB_LS_LOG_ARCHIVE_PROGRESS
|
||||
# 21364: CDB_OB_LS_LOG_ARCHIVE_PROGRESS
|
||||
# 21365: DBA_OB_LS_LOG_RESTORE_STAT
|
||||
# 21366: CDB_OB_LS_LOG_RESTORE_STAT
|
||||
|
||||
@ -42473,7 +42445,6 @@ LEFT JOIN SYS.ALL_VIRTUAL_TENANT_INFO B
|
||||
WHERE A.TENANT_ID = EFFECTIVE_TENANT_ID()
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
# 25208: DBA_OB_TENANTS
|
||||
|
||||
def_table_schema(
|
||||
owner = 'sean.yyj',
|
||||
@ -43041,8 +43012,6 @@ def_table_schema(
|
||||
TENANT_ID = EFFECTIVE_TENANT_ID()
|
||||
""".replace("\n", " "),
|
||||
)
|
||||
# 25221: DBA_OB_LS_ARB_REPLICA_TASKS
|
||||
# 25222: DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
|
||||
#### End Data Dictionary View
|
||||
################################################################################
|
||||
|
||||
@ -48483,8 +48452,6 @@ def_table_schema(
|
||||
WHERE TENANT_ID=EFFECTIVE_TENANT_ID();
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
# 28176: V$OB_ARCHIVE_DEST_STATUS
|
||||
# 28177: DBA_OB_LS_LOG_ARCHIVE_PROGRESS
|
||||
# 28178: DBA_OB_LS_LOG_RESTORE_STAT
|
||||
|
||||
|
||||
|
||||
@ -66,6 +66,17 @@ int ObCreateTenantExecutor::execute(ObExecContext &ctx, ObCreateTenantStmt &stmt
|
||||
const_cast<obrpc::ObCreateTenantArg&>(create_tenant_arg).ddl_stmt_str_ = first_stmt;
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (create_tenant_arg.tenant_schema_.get_arbitration_service_status() != ObArbitrationServiceStatus(ObArbitrationServiceStatus::DISABLED)) {
|
||||
bool is_compatible = false;
|
||||
if (OB_FAIL(ObShareUtil::check_compat_version_for_arbitration_service(OB_SYS_TENANT_ID, is_compatible))) {
|
||||
LOG_WARN("fail to check sys tenant compat version", KR(ret));
|
||||
} else if (!is_compatible) {
|
||||
ret = OB_OP_NOT_ALLOW;
|
||||
LOG_WARN("sys tenant data version is below 4.1, tenant with arbitration service not allow", KR(ret));
|
||||
LOG_USER_ERROR(OB_OP_NOT_ALLOW, "sys tenant data version is below 4.1, with arbitration service");
|
||||
}
|
||||
}
|
||||
if (OB_FAIL(ret)){
|
||||
} else if (OB_FAIL(check_sys_var_options(ctx,
|
||||
stmt.get_sys_var_nodes(),
|
||||
stmt.get_create_tenant_arg().tenant_schema_,
|
||||
@ -600,12 +611,24 @@ int ObModifyTenantExecutor::execute(ObExecContext &ctx, ObModifyTenantStmt &stmt
|
||||
obrpc::ObCommonRpcProxy *common_rpc_proxy = NULL;
|
||||
const obrpc::ObModifyTenantArg &modify_tenant_arg = stmt.get_modify_tenant_arg();
|
||||
ObString first_stmt;
|
||||
ObSchemaGetterGuard schema_guard;
|
||||
const ObTenantSchema *tenant_schema = nullptr;
|
||||
if (OB_FAIL(stmt.get_first_stmt(first_stmt))) {
|
||||
LOG_WARN("fail to get first stmt" , K(ret));
|
||||
} else {
|
||||
const_cast<obrpc::ObModifyTenantArg&>(modify_tenant_arg).ddl_stmt_str_ = first_stmt;
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_schema_guard(OB_SYS_TENANT_ID, schema_guard))) {
|
||||
LOG_WARN("fail to get tenant schema guard", K(ret));
|
||||
} else if (OB_FAIL(schema_guard.get_tenant_info(
|
||||
modify_tenant_arg.tenant_schema_.get_tenant_name_str(), tenant_schema))) {
|
||||
LOG_WARN("fail to get tenant info", K(ret));
|
||||
} else if (OB_ISNULL(tenant_schema)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("error unexpected, tenant schema must not be NULL", K(ret));
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (-1 != stmt.get_progressive_merge_num()) {
|
||||
if (modify_tenant_arg.tenant_schema_.get_tenant_name_str().case_compare("all") == 0) {
|
||||
ObSQLSessionInfo *session = NULL;
|
||||
@ -618,37 +641,26 @@ int ObModifyTenantExecutor::execute(ObExecContext &ctx, ObModifyTenantStmt &stmt
|
||||
} else if (OB_FAIL(modify_progressive_merge_num_for_all_tenants(ctx, stmt.get_progressive_merge_num()))) {
|
||||
LOG_WARN("modify_progressive_merge_num_for_tables failed", K(ret));
|
||||
}
|
||||
} else {
|
||||
ObSchemaGetterGuard schema_guard;
|
||||
const ObTenantSchema *tenant_schema = nullptr;
|
||||
if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_schema_guard(OB_SYS_TENANT_ID, schema_guard))) {
|
||||
LOG_WARN("fail to get tenant schema guard", K(ret));
|
||||
} else if (OB_FAIL(schema_guard.get_tenant_info(
|
||||
modify_tenant_arg.tenant_schema_.get_tenant_name_str(), tenant_schema))) {
|
||||
LOG_WARN("fail to get tenant info", K(ret));
|
||||
} else if (OB_ISNULL(tenant_schema)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("error unexpected, tenant schema must not be NULL", K(ret));
|
||||
} else if (OB_FAIL(modify_progressive_merge_num_for_tenant(ctx, tenant_schema->get_tenant_id(), stmt.get_progressive_merge_num()))) {
|
||||
LOG_WARN("fail to modify progressive merge num for tenant", K(ret), "tenant_id", tenant_schema->get_tenant_id());
|
||||
}
|
||||
}
|
||||
LOG_WARN("fail to modify progressive merge num for tenant", K(ret), "tenant_id", tenant_schema->get_tenant_id());
|
||||
}
|
||||
} else if (stmt.get_modify_tenant_arg().alter_option_bitset_.has_member(obrpc::ObModifyTenantArg::ENABLE_EXTENDED_ROWID)) {
|
||||
ObSchemaGetterGuard schema_guard;
|
||||
const ObTenantSchema *tenant_schema = nullptr;
|
||||
if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_schema_guard(OB_SYS_TENANT_ID, schema_guard))) {
|
||||
LOG_WARN("fail to get tenant schema guard", K(ret));
|
||||
} else if (OB_FAIL(schema_guard.get_tenant_info(
|
||||
modify_tenant_arg.tenant_schema_.get_tenant_name_str(), tenant_schema))) {
|
||||
LOG_WARN("fail to get tenant info", K(ret));
|
||||
} else if (OB_ISNULL(tenant_schema)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("error unexpected, tenant schema must not be NULL", K(ret));
|
||||
} else if (OB_FAIL(enable_extended_rowid_for_tenant_tables(ctx, tenant_schema->get_tenant_id()))) {
|
||||
if (OB_FAIL(enable_extended_rowid_for_tenant_tables(ctx, tenant_schema->get_tenant_id()))) {
|
||||
LOG_WARN("fail to enable extended rowid for tenant tables", K(ret), "tenant_id", tenant_schema->get_tenant_id());
|
||||
}
|
||||
} else {
|
||||
if (OB_FAIL(check_sys_var_options(ctx,
|
||||
if (stmt.get_modify_tenant_arg().alter_option_bitset_.has_member(obrpc::ObModifyTenantArg::ENABLE_ARBITRATION_SERVICE)) {
|
||||
bool is_compatible = false;
|
||||
if (OB_FAIL(ObShareUtil::check_compat_version_for_arbitration_service(tenant_schema->get_tenant_id(), is_compatible))) {
|
||||
LOG_WARN("fail to check sys tenant compat version", KR(ret), KPC(tenant_schema));
|
||||
} else if (!is_compatible) {
|
||||
ret = OB_OP_NOT_ALLOW;
|
||||
LOG_WARN("user tenant data version is below 4.1, tenant with arbitration service not allow", KR(ret), KPC(tenant_schema));
|
||||
LOG_USER_ERROR(OB_OP_NOT_ALLOW, "user tenant data version is below 4.1, with arbitration service");
|
||||
}
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_FAIL(check_sys_var_options(ctx,
|
||||
stmt.get_sys_var_nodes(),
|
||||
stmt.get_modify_tenant_arg().tenant_schema_,
|
||||
stmt.get_modify_tenant_arg().sys_var_list_))) {
|
||||
|
||||
Reference in New Issue
Block a user