[CP] Allow tenant=all_user when setting archive_lag_target
This commit is contained in:
@ -2265,12 +2265,29 @@ int ObSetConfigResolver::resolve(const ParseNode &parse_tree)
|
||||
affect_all_user,
|
||||
affect_all_meta))) {
|
||||
LOG_WARN("fail to get reslove tenant", K(ret), "exec_tenant_id", tenant_id);
|
||||
} else if (affect_all || affect_all_user || affect_all_meta) {
|
||||
} else if (affect_all || affect_all_meta) {
|
||||
ret = OB_NOT_SUPPORTED;
|
||||
LOG_WARN("all/all_user/all_meta is not supported by ALTER SYSTEM SET ARCHILVE_LAG_TARGET",
|
||||
LOG_WARN("all/all_meta is not supported by ALTER SYSTEM SET ARCHIVE_LAG_TARGET",
|
||||
KR(ret), K(affect_all), K(affect_all_user), K(affect_all_meta));
|
||||
LOG_USER_ERROR(OB_NOT_SUPPORTED,
|
||||
"use all/all_user/all_meta in 'ALTER SYSTEM SET ARCHILVE_LAG_TARGET' syntax is");
|
||||
"use all/all_meta in 'ALTER SYSTEM SET ARCHIVE_LAG_TARGET' syntax is");
|
||||
} else if (affect_all_user) {
|
||||
ObSchemaGetterGuard schema_guard;
|
||||
ObSArray <uint64_t> all_tenant_ids;
|
||||
if (OB_FAIL(GCTX.schema_service_->get_tenant_schema_guard(tenant_id, schema_guard))) {
|
||||
LOG_WARN("get_schema_guard failed", K(ret));
|
||||
} else if (OB_FAIL(schema_guard.get_tenant_ids(all_tenant_ids))) {
|
||||
LOG_WARN("fail to get tenant id from schema guard", K(ret));
|
||||
} else {
|
||||
ARRAY_FOREACH_X(all_tenant_ids, i, cnt, OB_SUCC(ret)) {
|
||||
const uint64_t tmp_tenant_id = all_tenant_ids.at(i);
|
||||
if (is_user_tenant(tmp_tenant_id)) {
|
||||
if (OB_FAIL(tenant_ids.push_back(tmp_tenant_id))) {
|
||||
LOG_WARN("fail to push back", K(ret), K(tmp_tenant_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (tenant_ids.empty()) {
|
||||
if (OB_FAIL(tenant_ids.push_back(tenant_id))) {
|
||||
LOG_WARN("fail to push back", K(ret), K(tenant_id));
|
||||
|
||||
Reference in New Issue
Block a user