diff options
author | unknown <vva@eagle.mysql.r18.ru> | 2004-03-14 01:33:16 +0400 |
---|---|---|
committer | unknown <vva@eagle.mysql.r18.ru> | 2004-03-14 01:33:16 +0400 |
commit | 4db4cb6665a0ab88f531da1ad6b4727ba0c95377 (patch) | |
tree | c056a2cc038a9bb7e90b926bd98c44a4cfa0508b /sql | |
parent | dcd3a0f2ea353fae2bab96888bccb8b3b2038ca0 (diff) | |
parent | b9793c5473f7a0b2a2b011d0897ba2667450a91c (diff) | |
download | mariadb-git-4db4cb6665a0ab88f531da1ad6b4727ba0c95377.tar.gz |
Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_856/mysql-4.1
mysql-test/r/create.result:
Auto merged
mysql-test/t/create.test:
Auto merged
sql/sql_table.cc:
Auto merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_table.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index e22d8f022da..9d1855ef936 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -687,6 +687,12 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, DBUG_RETURN(-1); } key_parts+=key->columns.elements; + if (key->name && !tmp_table && + !my_strcasecmp(system_charset_info,key->name,primary_key_name)) + { + my_error(ER_WRONG_NAME_FOR_INDEX, MYF(0), key->name); + DBUG_RETURN(-1); + } } tmp=min(file->max_keys(), MAX_KEY); if (key_count > tmp) @@ -1127,7 +1133,8 @@ make_unique_key_name(const char *field_name,KEY *start,KEY *end) { char buff[MAX_FIELD_NAME],*buff_end; - if (!check_if_keyname_exists(field_name,start,end)) + if (!check_if_keyname_exists(field_name,start,end) && + my_strcasecmp(system_charset_info,field_name,primary_key_name)) return (char*) field_name; // Use fieldname buff_end=strmake(buff,field_name,MAX_FIELD_NAME-4); for (uint i=2 ; ; i++) @@ -2451,6 +2458,12 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, { if (key->type != Key::FOREIGN_KEY) key_list.push_back(key); + if (key->name && + !my_strcasecmp(system_charset_info,key->name,primary_key_name)) + { + my_error(ER_WRONG_NAME_FOR_INDEX, MYF(0), key->name); + DBUG_RETURN(-1); + } } } |