Commit 7a7296bd authored by Alexander Barkov's avatar Alexander Barkov

MDEV-31974 Remove global function normalize_db_name()

The function normalize_db_name() fully repeated the functionality
of the class DBNameBuffer. This patch  removes normalize_db_name()
and replaces it to a DBNameBuffer based code.
parent 495c32d9
......@@ -823,9 +823,6 @@ Events::show_create_event(THD *thd, const LEX_CSTRING *dbname,
int
Events::fill_schema_events(THD *thd, TABLE_LIST *tables, COND * /* cond */)
{
const char *db= NULL;
int ret;
char db_tmp[SAFE_NAME_LEN];
DBUG_ENTER("Events::fill_schema_events");
/*
......@@ -849,11 +846,11 @@ Events::fill_schema_events(THD *thd, TABLE_LIST *tables, COND * /* cond */)
if (!is_infoschema_db(lexdb) && !is_perfschema_db(lexdb) &&
check_access(thd, EVENT_ACL, lexdb->str, NULL, NULL, 0, 0))
DBUG_RETURN(1);
db= normalize_db_name(lexdb->str, db_tmp, sizeof(db_tmp));
const DBNameBuffer db_tmp(*lexdb, lower_case_table_names);
const char *db= db_tmp.to_lex_cstring().str;
DBUG_RETURN(db_repository->fill_schema_events(thd, tables, db));
}
ret= db_repository->fill_schema_events(thd, tables, db);
DBUG_RETURN(ret);
DBUG_RETURN(db_repository->fill_schema_events(thd, tables, NULL));
}
......
......@@ -744,10 +744,9 @@ mysql_create_db_internal(THD *thd, const LEX_CSTRING *db,
DBUG_RETURN(-1);
}
char db_tmp[SAFE_NAME_LEN+1];
const char *dbnorm= normalize_db_name(db->str, db_tmp, sizeof(db_tmp));
const DBNameBuffer db_tmp(*db, lower_case_table_names);
if (lock_schema_name(thd, dbnorm))
if (lock_schema_name(thd, db_tmp.to_lex_cstring().str))
DBUG_RETURN(-1);
/* Check directory */
......@@ -1047,16 +1046,13 @@ mysql_rm_db_internal(THD *thd, const LEX_CSTRING *db, bool if_exists,
TABLE_LIST *table;
DDL_LOG_STATE ddl_log_state;
Drop_table_error_handler err_handler;
LEX_CSTRING rm_db;
char db_tmp[SAFE_NAME_LEN+1];
const char *dbnorm;
DBUG_ENTER("mysql_rm_db");
dbnorm= normalize_db_name(db->str, db_tmp, sizeof(db_tmp));
lex_string_set(&rm_db, dbnorm);
const DBNameBuffer db_tmp(*db, lower_case_table_names);
const LEX_CSTRING rm_db= db_tmp.to_lex_cstring();
bzero(&ddl_log_state, sizeof(ddl_log_state));
if (lock_schema_name(thd, dbnorm))
if (lock_schema_name(thd, rm_db.str))
DBUG_RETURN(true);
path_length= build_table_filename(path, sizeof(path) - 1, db->str, "", "", 0);
......@@ -1079,7 +1075,7 @@ mysql_rm_db_internal(THD *thd, const LEX_CSTRING *db, bool if_exists,
}
}
if (find_db_tables_and_rm_known_files(thd, dirp, dbnorm, path, &tables))
if (find_db_tables_and_rm_known_files(thd, dirp, rm_db.str, path, &tables))
goto exit;
/*
......@@ -1097,7 +1093,7 @@ mysql_rm_db_internal(THD *thd, const LEX_CSTRING *db, bool if_exists,
/* Lock all tables and stored routines about to be dropped. */
if (lock_table_names(thd, tables, NULL, thd->variables.lock_wait_timeout,
0) ||
lock_db_routines(thd, dbnorm))
lock_db_routines(thd, rm_db.str))
goto exit;
if (!rm_mysql_schema)
......@@ -2139,14 +2135,3 @@ bool check_db_dir_existence(const char *db_name)
mysql_rwlock_unlock(&rmdir_lock);
return ret;
}
const char *normalize_db_name(const char *db, char *buffer, size_t buffer_size)
{
DBUG_ASSERT(buffer_size > 1);
if (!lower_case_table_names)
return db;
strmake(buffer, db, buffer_size - 1);
my_casedn_str(system_charset_info, buffer);
return buffer;
}
......@@ -44,9 +44,6 @@ CHARSET_INFO *get_default_db_collation(THD *thd, const char *db_name);
bool my_dbopt_init(void);
void my_dbopt_cleanup(void);
const char *normalize_db_name(const char *db, char *buffer,
size_t buffer_size);
void drop_database_objects(THD *thd, const LEX_CSTRING *path,
const LEX_CSTRING *db,
bool rm_mysql_schema);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment