summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorram@gw.mysql.r18.ru <>2004-01-14 16:01:55 +0400
committerram@gw.mysql.r18.ru <>2004-01-14 16:01:55 +0400
commit7b652e9a29dbdb883b09c512e1552f492b402f4a (patch)
treea59a16934279171311c77c8d442a131b753866d8 /sql/sql_table.cc
parent4b91183cde023fa7d3b6fa5d785bea6243e09496 (diff)
downloadmariadb-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.cc8
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)),