mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
Bug#11228: DESC shows arbitrary column as "PRI"
An UNIQUE KEY consisting of NOT NULL columns was displayed as PRIMARY KEY in "DESC t1". According to the code, that was intentional behaviour for some reasons unknown to me. This code was written before bitkeeper time, so I cannot check who and why made this. After discussing on dev-public, a decision was made to remove this code
This commit is contained in:
parent
ef2860e8ff
commit
cfb08851f7
3 changed files with 21 additions and 21 deletions
|
@ -326,6 +326,16 @@ alter table t1 add key (c1,c1,c2);
|
|||
ERROR 42S21: Duplicate column name 'c1'
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
i1 INT NOT NULL,
|
||||
i2 INT NOT NULL,
|
||||
UNIQUE i1idx (i1),
|
||||
UNIQUE i2idx (i2));
|
||||
desc t1;
|
||||
Field Type Null Key Default Extra
|
||||
i1 int(11) UNI 0
|
||||
i2 int(11) UNI 0
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
c1 int,
|
||||
c2 varchar(20) not null,
|
||||
primary key (c1),
|
||||
|
|
|
@ -321,6 +321,17 @@ alter table t1 add key (c1,c2,c1);
|
|||
alter table t1 add key (c1,c1,c2);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#11228: DESC shows arbitrary column as "PRI"
|
||||
#
|
||||
create table t1 (
|
||||
i1 INT NOT NULL,
|
||||
i2 INT NOT NULL,
|
||||
UNIQUE i1idx (i1),
|
||||
UNIQUE i2idx (i2));
|
||||
desc t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#12565 - ERROR 1034 when running simple UPDATE or DELETE
|
||||
# on large MyISAM table
|
||||
|
|
21
sql/table.cc
21
sql/table.cc
|
@ -567,27 +567,6 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
|
|||
if (outparam->key_info[key].flags & HA_FULLTEXT)
|
||||
outparam->key_info[key].algorithm= HA_KEY_ALG_FULLTEXT;
|
||||
|
||||
if (primary_key >= MAX_KEY && (keyinfo->flags & HA_NOSAME))
|
||||
{
|
||||
/*
|
||||
If the UNIQUE key doesn't have NULL columns and is not a part key
|
||||
declare this as a primary key.
|
||||
*/
|
||||
primary_key=key;
|
||||
for (i=0 ; i < keyinfo->key_parts ;i++)
|
||||
{
|
||||
uint fieldnr= key_part[i].fieldnr;
|
||||
if (!fieldnr ||
|
||||
outparam->field[fieldnr-1]->null_ptr ||
|
||||
outparam->field[fieldnr-1]->key_length() !=
|
||||
key_part[i].length)
|
||||
{
|
||||
primary_key=MAX_KEY; // Can't be used
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0 ; i < keyinfo->key_parts ; key_part++,i++)
|
||||
{
|
||||
if (new_field_pack_flag <= 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue