Commit 34d5c36c authored by joerg@mysql.com's avatar joerg@mysql.com

Manual transfer of the following changeset into the 5.0.23 release clone:

   1.2525 06/06/30 18:29:27 monty@mysql.com +3 -0
   Reverted wrong bug fix (Bug#11228)
parent af48a16c
...@@ -336,8 +336,16 @@ UNIQUE i1idx (i1), ...@@ -336,8 +336,16 @@ UNIQUE i1idx (i1),
UNIQUE i2idx (i2)); UNIQUE i2idx (i2));
desc t1; desc t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
i1 int(11) NO UNI i1 int(11) NO PRI
i2 int(11) NO UNI i2 int(11) NO UNI
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i1` int(11) NOT NULL,
`i2` int(11) NOT NULL,
UNIQUE KEY `i1idx` (`i1`),
UNIQUE KEY `i2idx` (`i2`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1; drop table t1;
create table t1 ( create table t1 (
c1 int, c1 int,
......
...@@ -334,6 +334,7 @@ create table t1 ( ...@@ -334,6 +334,7 @@ create table t1 (
UNIQUE i1idx (i1), UNIQUE i1idx (i1),
UNIQUE i2idx (i2)); UNIQUE i2idx (i2));
desc t1; desc t1;
show create table t1;
drop table t1; drop table t1;
# #
......
...@@ -678,6 +678,27 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, ...@@ -678,6 +678,27 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
if (outparam->key_info[key].flags & HA_FULLTEXT) if (outparam->key_info[key].flags & HA_FULLTEXT)
outparam->key_info[key].algorithm= HA_KEY_ALG_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++) for (i=0 ; i < keyinfo->key_parts ; key_part++,i++)
{ {
if (new_field_pack_flag <= 1) if (new_field_pack_flag <= 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment