fix: job cannot run when mysql user name is duplicate

This commit is contained in:
obdev
2024-03-05 03:14:26 +00:00
committed by ob-robot
parent fc624dde35
commit d87ab32ed3
8 changed files with 107 additions and 112 deletions

View File

@ -188,8 +188,8 @@ int ObDbmsStatsMaintenanceWindow::get_stat_window_job_sql(const bool is_oracle_m
OZ (dml.add_pk_column("tenant_id", share::schema::ObSchemaUtils::get_extract_tenant_id(tenant_id, tenant_id)));
OZ (dml.add_column("job_name", ObHexEscapeSqlStr(ObString(job_name))));
OZ (dml.add_pk_column("job", job_id));
OZ (dml.add_column("lowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root")));
OZ (dml.add_column("powner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root")));
OZ (dml.add_column("lowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root@%")));
OZ (dml.add_column("powner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root@%")));
OZ (dml.add_column("cowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("oceanbase")));
OZ (dml.add_time_column("next_date", start_usec));
OZ (dml.add_column("total", 0));
@ -233,8 +233,8 @@ int ObDbmsStatsMaintenanceWindow::get_stats_history_manager_job_sql(const bool i
OZ (dml.add_pk_column("tenant_id", share::schema::ObSchemaUtils::get_extract_tenant_id(tenant_id, tenant_id)));
OZ (dml.add_column("job_name", ObHexEscapeSqlStr(ObString(opt_stats_history_manager))));
OZ (dml.add_pk_column("job", job_id));
OZ (dml.add_column("lowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root")));
OZ (dml.add_column("powner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root")));
OZ (dml.add_column("lowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root@%")));
OZ (dml.add_column("powner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("root@%")));
OZ (dml.add_column("cowner", is_oracle_mode ? ObHexEscapeSqlStr("SYS") : ObHexEscapeSqlStr("oceanbase")));
OZ (dml.add_time_column("next_date", current));
OZ (dml.add_column("total", 0));
@ -567,31 +567,6 @@ int ObDbmsStatsMaintenanceWindow::check_date_validate(const ObString &job_name,
return ret;
}
int ObDbmsStatsMaintenanceWindow::reset_opt_stats_user_infos(ObIArray<const ObUserInfo *> &user_infos)
{
int ret = OB_SUCCESS;
if (user_infos.count() > 1) {
//bug:
//resver the minimum user id to execute
const ObUserInfo *minimum_user_info = user_infos.at(0);
for (int64_t i = 1; OB_SUCC(ret) && i < user_infos.count(); ++i) {
if (OB_ISNULL(minimum_user_info) || OB_ISNULL(user_infos.at(i))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("get unexpected error", K(ret), K(minimum_user_info), K(user_infos.at(i)));
} else if (minimum_user_info->get_user_id() > user_infos.at(i)->get_user_id()) {
minimum_user_info = user_infos.at(i);
} else {/*do nothing*/}
}
if (OB_SUCC(ret)) {
user_infos.reset();
if (OB_FAIL(user_infos.push_back(minimum_user_info))) {
LOG_WARN("failed to push back", K(ret));
}
}
}
return ret;
}
} // namespace common
} // namespace oceanbase

View File

@ -57,8 +57,6 @@ public:
static bool is_stats_job(const ObString &job_name);
static int reset_opt_stats_user_infos(ObIArray<const ObUserInfo *> &user_infos);
private:
static int get_window_job_info(const int64_t current_time,
const int64_t nth_window,