summaryrefslogtreecommitdiff
path: root/sql/sql_db.cc
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2010-01-19 13:03:40 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2010-01-19 13:03:40 +0400
commitbaacdf1dae688fc148967acf20bf1ef79b3f7c01 (patch)
tree4e5206090a5587437984eb53af8aaa3622c76dd1 /sql/sql_db.cc
parent22cff392741e4bdce19d53a57fa2530a7eac9894 (diff)
downloadmariadb-git-baacdf1dae688fc148967acf20bf1ef79b3f7c01.tar.gz
Bug#49501 Inefficient information_schema check (system collation)
added check_length optimization for I_S_NAME comparison
Diffstat (limited to 'sql/sql_db.cc')
-rw-r--r--sql/sql_db.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index e760fae41f6..22ecaa17a0c 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -618,7 +618,7 @@ int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
DBUG_ENTER("mysql_create_db");
/* do not create 'information_schema' db */
- if (!my_strcasecmp(system_charset_info, db, INFORMATION_SCHEMA_NAME.str))
+ if (is_schema_db(db, strlen(db)))
{
my_error(ER_DB_CREATE_EXISTS, MYF(0), db);
DBUG_RETURN(-1);
@@ -1557,8 +1557,7 @@ bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, bool force_switch)
}
}
- if (my_strcasecmp(system_charset_info, new_db_name->str,
- INFORMATION_SCHEMA_NAME.str) == 0)
+ if (is_schema_db(new_db_name->str, new_db_name->length))
{
/* Switch the current database to INFORMATION_SCHEMA. */