mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
a fix (bug #2361: ALTER TABLE ... DROP PRIMARY KEY drops a non-primary key).
This commit is contained in:
@ -412,3 +412,12 @@ t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a int UNIQUE);
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) default NULL,
|
||||
UNIQUE KEY `a` (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
|
@ -244,3 +244,12 @@ LOCK TABLES t1 WRITE;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug 2361
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int UNIQUE);
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
@ -2242,13 +2242,15 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
||||
KEY *key_info=table->key_info;
|
||||
for (uint i=0 ; i < table->keys ; i++,key_info++)
|
||||
{
|
||||
if (drop_primary && (key_info->flags & HA_NOSAME))
|
||||
char *key_name= key_info->name;
|
||||
|
||||
if (drop_primary && !my_strcasecmp(system_charset_info, key_name,
|
||||
"PRIMARY"))
|
||||
{
|
||||
drop_primary=0;
|
||||
drop_primary= 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
char *key_name=key_info->name;
|
||||
Alter_drop *drop;
|
||||
drop_it.rewind();
|
||||
while ((drop=drop_it++))
|
||||
|
Reference in New Issue
Block a user