diff options
author | ram@gw.mysql.r18.ru <> | 2004-01-14 16:01:55 +0400 |
---|---|---|
committer | ram@gw.mysql.r18.ru <> | 2004-01-14 16:01:55 +0400 |
commit | 7b652e9a29dbdb883b09c512e1552f492b402f4a (patch) | |
tree | a59a16934279171311c77c8d442a131b753866d8 /sql/sql_table.cc | |
parent | 4b91183cde023fa7d3b6fa5d785bea6243e09496 (diff) | |
download | mariadb-git-7b652e9a29dbdb883b09c512e1552f492b402f4a.tar.gz |
fix for the 2361 bug: ALTER TABLE ... DROP PRIMARY KEY drops a non-primary key
"PRIMARY" has been replaced by primary_key_name.
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index be42de34899..413fb77d929 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -29,7 +29,7 @@ #include <io.h> #endif -static const char *primary_key_name="PRIMARY"; +const char *primary_key_name= "PRIMARY"; static bool check_if_keyname_exists(const char *name,KEY *start, KEY *end); static char *make_unique_key_name(const char *field_name,KEY *start,KEY *end); @@ -2244,8 +2244,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, { char *key_name= key_info->name; - if (drop_primary && !my_strcasecmp(system_charset_info, key_name, - "PRIMARY")) + if (drop_primary && (key_info-> flags & HA_NOSAME) && + !my_strcasecmp(system_charset_info, key_name, primary_key_name)) { drop_primary= 0; continue; @@ -2305,7 +2305,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, key_list.push_back(new Key(key_info->flags & HA_SPATIAL ? Key::SPATIAL : (key_info->flags & HA_NOSAME ? (!my_strcasecmp(system_charset_info, - key_name, "PRIMARY") ? + key_name, primary_key_name) ? Key::PRIMARY : Key::UNIQUE) : (key_info->flags & HA_FULLTEXT ? Key::FULLTEXT : Key::MULTIPLE)), |