Commit 2b380332 authored by unknown's avatar unknown
Browse files

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)


mysql-test/r/key.result:
  Manual transfer of the following fix into the 5.0.23 release clone:
     1.27 06/06/30 18:29:25 monty@mysql.com +9 -1
     Fixed result after removing wrong bug fix
mysql-test/t/key.test:
  Manual transfer of the following fix into the 5.0.23 release clone:
     1.24 06/06/30 18:29:25 monty@mysql.com +1 -0
     Added SHOW CREATE TABLE, which is the proper way to check for table definitions
sql/table.cc:
  Manual transfer of the following fix into the 5.0.23 release clone:
     1.135 06/06/30 18:29:25 monty@mysql.com +21 -0
     Reverted wrong bug fix.   ...
parent 4a6a237f
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -336,8 +336,16 @@ UNIQUE i1idx (i1),
UNIQUE i2idx (i2));
desc t1;
Field	Type	Null	Key	Default	Extra
i1	int(11)	NO	UNI		
i1	int(11)	NO	PRI		
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;
create table t1 (
c1 int,
+1 −0
Original line number Diff line number Diff line
@@ -334,6 +334,7 @@ create table t1 (
 UNIQUE i1idx (i1),
 UNIQUE i2idx (i2));
desc t1;
show create table t1;
drop table t1;

#
+21 −0
Original line number Diff line number Diff line
@@ -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)
	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)