fix: job cannot run when mysql user name is duplicate
This commit is contained in:
@ -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
|
||||
|
||||
|
||||
@ -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,
|
||||
|
||||
Reference in New Issue
Block a user