diff options
author | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2010-01-19 13:03:40 +0400 |
---|---|---|
committer | Sergey Glukhov <Sergey.Glukhov@sun.com> | 2010-01-19 13:03:40 +0400 |
commit | 81391bd00c5b3e577fc88e142406eb288a26a0ff (patch) | |
tree | 4e5206090a5587437984eb53af8aaa3622c76dd1 /sql/sql_show.cc | |
parent | d1d16f9c3f4310f3ab11fc85b47866d79243a471 (diff) | |
download | mariadb-git-81391bd00c5b3e577fc88e142406eb288a26a0ff.tar.gz |
Bug#49501 Inefficient information_schema check (system collation)
added check_length optimization for I_S_NAME comparison
sql/event_data_objects.cc:
added check_length optimization for I_S_NAME comparison
sql/events.cc:
added check_length optimization for I_S_NAME comparison
sql/mysql_priv.h:
added check_length optimization for I_S_NAME comparison
sql/repl_failsafe.cc:
added check_length optimization for I_S_NAME comparison
sql/sql_db.cc:
added check_length optimization for I_S_NAME comparison
sql/sql_parse.cc:
added check_length optimization for I_S_NAME comparison
sql/sql_show.cc:
added check_length optimization for I_S_NAME comparison
sql/sql_view.cc:
added check_length optimization for I_S_NAME comparison
sql/table.cc:
added check_length optimization for I_S_NAME comparison
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r-- | sql/sql_show.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc index e55000c0f65..d4da29085b5 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -826,8 +826,7 @@ bool mysqld_show_create_db(THD *thd, char *dbname, DBUG_RETURN(TRUE); } #endif - if (!my_strcasecmp(system_charset_info, dbname, - INFORMATION_SCHEMA_NAME.str)) + if (is_schema_db(dbname, strlen(dbname))) { dbname= INFORMATION_SCHEMA_NAME.str; create.default_table_charset= system_charset_info; @@ -2780,8 +2779,8 @@ int make_db_list(THD *thd, List<LEX_STRING> *files, */ if (lookup_field_vals->db_value.str) { - if (!my_strcasecmp(system_charset_info, INFORMATION_SCHEMA_NAME.str, - lookup_field_vals->db_value.str)) + if (is_schema_db(lookup_field_vals->db_value.str, + lookup_field_vals->db_value.length)) { *with_i_schema= 1; if (files->push_back(i_s_name_copy)) @@ -5228,7 +5227,7 @@ copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table) */ if (thd->lex->sql_command != SQLCOM_SHOW_EVENTS && check_access(thd, EVENT_ACL, et.dbname.str, 0, 0, 1, - is_schema_db(et.dbname.str))) + is_schema_db(et.dbname.str, et.dbname.length))) DBUG_RETURN(0); /* ->field[0] is EVENT_CATALOG and is by default NULL */ |